We are trying to implement an embedded system with USB interface. What is the easy and cost efficient way to implement it? - Which chip set? Free USB stack? chip with USB implemented or stand alone USB chip interface?
I am pretty new to USB interface. I only use some 8051/z80 20 years ago.
If you need the high speed the only sensible solution I know of is the Cypress FX2 USB controller. With the Keil (or SDCC) the development environments are pretty straight forward. It is a pretty complicated chip so there is a learnig curve.
If you don't need high speed there are a lot more options. Most ARM vendors have a USB full (12Mbps) variant. Lots of availabe code etc. You will need a USB stack for these, the FX2 doesn't require much USB handling firmware.
There are other useful chips FTDI etc. but these are full speed. The FTDI have good driver support for quick c> We are trying to implement an embedded system with USB interface. What
Since nobody has pointed this out yet, it's worth noting that there is no easy way to implement USB unless you use a third-party module that's already got the software and drivers pre-configured and ready-to-go.
If your primary requirement is somewhat low speed (115K or slower) serial comm, then you can use one of the many USB-to-serial solutions and that would make your life much easier! Some companies also have SPI solutions that run a little faster.
There are several companies that will generate the software for you - like jungo. But it's not cheap.
I think Microchip and Silabs have some USB stacks that are low cost and royalty free. But most software stacks tend to be expensive.
As OP didn't mention what OS they want to target;-)
anyhow new driver generation for MS OSs (WDF Windows Driver Framework) is quite easy to get started. You don't even need to dig in kernel, they have introduced UMDF (user mode driver framework) for that.
With teh AT91SAM7S series you get a nice USB interface inside the controller and source code for HID, Mass Storage and CDC. No need to bother with external chips and Jungo (although Jungo now supports the AT91 as well)