As most of the work is going on at the SDR project right now, I guess I will start posting the status updates here in blog and do not litter the project page with my thoughts about the life, universe and everything.
Anyway, much-awaited Cypress EX-USB FX2LP kit arrived couple of days ago.
After playing around with it for two full days, I put it in my drawer and re-designed the schematic for using Atmel AT90USB1287 chip instead.
Dont get me wrong - its a nice little $29 development kit and does what its supposed to. It works allright with Cypress development tools. CY7C68013 chipset has been used in many different products all around the world (including several SDR designs commercially available) and I havent heard bad words about it. But ... Cypress EZ-USB FX2LP platform its tad too sophisticated for something I am doing here.
First and foremost, its compiler of choice for C/C++ is uVision2, what is included inside development package in its demo form, allowing only 4Kbytes of code maximum. Not only is it a very severe limitation, but the uVision2 tools provided are also two generations behind the current breed of uVision. The the default demo for uVision4 downloaded from their site is further limited to only 2Kbytes of code, so it is practically useless for production. And the full version costs $2-$3K. As I have noone else to write that bill than to myself, this is no go. The alternative is the freeware SDCC compiler for 8051 CPU, but I have seen mixed reports about the usage of it for FX2LP.
Second, equally severe, problem is the examples provided with the development tools. Yes, they did compile allright. Yes they did load on the $29 development board. Yes, I got USB devices appearing on my computer. But ... what devices? Is it too difficult to provide at least one meaningful example of the USB device what would appear as keyboard or mouse on windows?? Instead, the example folder is littered with all sorts of hardcore stuff about the block transfers and different I/O methods on CPU and whatever else. Very clever, I assume, but not too useful for somebody who wants to implement simple composite USB device consisting of USB audio and virtual serial port.
Cypress EZ-USB was one of the very first chips on the market capable of USB2.0 and very fast transfers, but its support and toolsets have not been updated much since. If I would have someone I could bill the hours working on it, I would probably consider it more seriously. At the moment its 1:0 to the Atmel.
Atmel has recently produced many chips natively capable for USB connection in its 8-bit AVR line. More importantly, they have gained a user community support for implementing the USB devices (and hosts) using these chips.
The tool of choice for me is a framework named LUFA (Lightweight USB Framework for AVRs, formerly known as MyUSB), created by Dean Camera. It has all the essential devices, like USB serial, audio in and audio out implemented in its examples folder, and the toolset it uses is Atmel mainstream tools, AVR Studio 4 and WinAVR.
So you need to install these two (you dont need to install AVR toolchain, as GCC tools usage by LUFA are better compatible with WinAVR), download the LUFA and here we go!
Fortunately, the 64-pin AT90USB1287 is relatively pin-compatible with Atmega325 what I use in many designs, so I am able to mount it on already existing board I have and should not worry about the development kit. Chips are supposed to be arriving on Tuesday ..