Hi all, I've been dabbling in hardware hacking for a while, and currently am trying to reverse-engineer a little USB IR receiver made by Keyspan so as to write a Linux driver for it. But that's basically a side note. The point is that this device is based on the EZ-USB chip by Cypress Semiconductor.
What I don't really understand is *WHY* anyone actually designs products using this EZ-USB chips. They have a number of problems that I see: (1) They have onboard RAM instead of Flash EEPROM (does this really save much money??) so the driver must load the firmware every ... single ... time the device is plugged in. (2) An external 16-byte EEPROM is required to store the USB id of the dang thing so that the host can find the right driver. (3) It doesn't come in DIP packages, only surface-mount. (4) It's more expensive than the alternatives!!!
For example, the CY7C68013A (USB 2.0, 7 endpoints, 16 kB of RAM) costs about $7.80 in volume, while the PIC18F2450 from Microchip (USB 2.0, 16 endpoints, 16 kB of *Flash EEPROM*) costs about $2.99 in volume. I don't get it! The Microchip costs less than half as much, has flash memory, and supports more endpoints.
The only advantage I can see that EZ-USB has is the fact that it is based on an 8051 core, so there is a free software C compiler available. While the PIC18F2450 is not yet supported by any free software C compiler, although a nice assembler + linker suite is available.
So basically, is there any reason I might want to choose EZ-USB over a microcontroller from Microchip or Atmel? I personally have only done a project with the PIC in the past, and it wasn't too hard to program in assembly. Is there some advantage that EZ-USB has which I'm missing?
Thanks for any insight,
Dan Lenski