MCU + USB

Hi,

I don't know if there is a better group to ask about USB.

I want to create a device that will communicate with a PC via USB. I prefer USB to RS232 because I plan to power the device from the USB supply.

I guess I have (at least) two options:

1) I use an MCU with integrated USB interface. 2) I use any MCU, plus an FTDI FT232R (USB-UART device), or equivalent.

Option 2 makes programming very simple (I don't need to write firmware to manage USB), but its hardware is more expensive than that of option

1 (those FT232R's are quite expensive (2.50 GBP + taxes)).

Option 1 would allow the cheapest hardware, but coding would be harder. And here is where I start needing your help.

- Do I need to write a new USB windows driver, to communicate with my hardware? Are there predefined "classes" of drivers that already allow something so simple as asynchronously sending bytes back and forth?

- If I need to write a new driver, how difficult is this?

- Does anyone know of a MCU which includes: USB (even low speed would be ok) + ADC (8 ch x 10 bit, min) + PWM (4 ch x 8 bit, min) + flash + ISP?

For me, the best would be to find an MCU that connects directly to the USB bus, but including an USB-UART converter inside, so that I don't need to write USB code, but only UART code. That would really simplify things.

Thanks a lot, Mochuelo

Reply to
Mochuelo
Loading thread data ...

You missed out the most important critera to answer your question. How many units are you going to sell? How fast do you need to get it to the market place? What percentage of the final unit cost does the USB costs represent?

Reply to
cbarn24050

I uyse the cypress FX series of 8051/USB devices. FX2LP.. They give you the driver and the api. It does work. I have three products using it right now. Not _that_ hard to get up and running but not a simple task either. I chose not to go the FTDI route because in the end.. it would have simply been a slow serial interface. After the initial learning curve I can now implement USB anywhere.

I believe the cypress parts are actually cheaper than the FTDI part.

YOu can also get a little FX2 Usb development board from bitwise systems. google it.

Reply to
Nappy

I would gladly accept some learning curve. I do like challenges, but I would prefer taking them with a core newer than the 8051.

Yes, and so are some 8-bit (e.g. Freescale 908JBx) and 32-bit (e.g. Philips LPC214x) MCUs. I specially like the LPC214x option because those MCUs are cheap, powerful, and already include the other peripherals I mentioned I need. If someone tells me that Philips provides similar tools to develop the USB driver, I could go for option 1.

Is there anything similar to

formatting link
but for ARM7 LPC214x devices?

Reply to
Mochuelo

Also, is it true that if I go for option 1 I need to buy a (USB) vendor ID, and that this is expensive?

Reply to
Mochuelo

the

now.

chose

implement

4 clock/48Mhz device. Pretty quick for most things.
Reply to
Nappy

NOt necessarily. I am not sure what you are doing but a Vendor ID is $1500. Although you can run with the Cypress VID using their driver.. or you can fake your own for in-house use.

Reply to
Nappy

I'm using the PIC18F2455 for a USB interface. It's available in DIL, which makes it easy for prototyping, and includes the transceivers. I'm designing the PCB, so I won't know how easy or difficult it is until I have the prototype hardware working.

Leon

Reply to
Leon

SiLabs C8051F320 have FLASH + USB, and Atmel AT89C513x series have Flash/USB, but are light on the ADCs. Cypress have a number of choices, with good maturity.

.. but if the F232R WILL do all you need, without development times, you need to look at the volumes carefully to justify using something else. ( and then, FTDI caim $1.80/10K)

-jg

Reply to
Jim Granville

I should add the ST uPSD34xx series, with full speed USB, and Maxim have an interesting SPIUSB device, the MAX3420, if you want serial (low pin count), but faster than FT232R.

-jg

Reply to
Jim Granville

Lookup the "Communication device class" (or just CDC) on usb.org. This provides a standard way of providing a virtual COM port that is supported by Win98 onwards. No Windows side programming is required.

If you take a look at the SAM7X lwIP demo application in the FreeRTOS.org download (link below) you will find some sample source code. When you connect the USB to Windows it registers as a normal COM port so can be accessed just like a 232 port.

Regards, Richard.

formatting link

Reply to
Richard

Yes, I'm having a headache about this.

I'm curious. Where did you read that price? The WebShop at the FTDI page sells the FT232RL for 3.83 EUR, in units, but doesn't say any other price for larger volumes.

Reply to
Mochuelo

Sorry, it does say: US$4.5000/pc, in units. US$3.6024/pc, for 100 pcs.

Reply to
Mochuelo

Google on [FT232R price ], and near the top is

formatting link

Reply to
Jim Granville

You should also look at the ARM SAM7 CPUs from Atmel.

The USB ARM CPUs (LPC214? and SAM7) are very different from the

8051 based EZusb/FX2. In fact, they are so different, that you shouldn't even be considering them as alternatives for the same application.

The ARM chips are much more powerful CPUs, but they are only full-speed USB (12mbps) capable. The EZusb/FX2 is high-speed USB (480mbps), 40 times the bandwidth. The 8051 core is not a limitation, because the chip has integrated high speed FIFOs, and a programable interface, so the 8051 just sets everything up, and then gets out of the way. The data then moves between the GPIF, FIFOs and USB with no CPU intervention.

So if your application is very data intensive, with little need for computing power on the client end, the EZusb/FX2 is a good choice.

If your data bandwidth needs are more modest, but you want some CPU horsepower, or the convenience of a high level language, then the ARM CPUs (LPC214? or SAM7) would be good choices.

There is an active Yahoo group for LPC2???:

formatting link
Engineers from Philips participate in the group regularly.

Don't know. I am not a Windows guy. My desktop is running FreeBSD, so instead of going to jungo.com and paying $3000, I just type "cd /usr/ports/misc/ezload; make install".

Reply to
Bob

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.