??? 04/02/07 08:19 Read: times Msg Score: +2 +1 Informative +1 Good Answer/Helpful |
#136394 - Depends on your requirement Responding to: ???'s previous message |
I'm kind of assuming that SiLabs provide drivers that make the USB on their chips as easy to use as the FTDI chips. Of course, depends on your requirement. Either SiLabs or other USB chip manufacturers, provide just a basic support on the firmware, device driver and host app for USB. You have to build up your application upon these support. The coding on these support is much easier than making it from scratch, but you'll still write fair amount of code comparing to the virtual COM port handling on the FTDI chips. USB MCU can provide so-called direct ports for multiple UARTs on the chip. If you expect more than single virtual COM ports on the PC by the USB MCU, it is hopeless. It involves a device driver development on the PC, the most terrible work. In this case, I recommend you FTDI FT2232 (dual UART/FIFO USB-serial converter). When replacing RS232 communication to USB, you should be aware of these differences. It may sometimes require to modify the structure of the application radically on both side, firmware and PC app. a) Device and PC are tightly related On USB application, firmware and device driver/ host app on the PC are tightly related more than RS232. It's desirable that the firmware and the host app is coded by a single person, until the communication protocol over USB is established. That is, learn USB handling on the both side, firmware and PC app. b) Transfer latency USB has much higher transfer speed than RS232, but its latency on the start of the transfer is not so good. You'll see at least 3-4 msec of round trip delay when the PC app sends a command to the device over USB, until it receives the reply from the device. This latency must be considered on a 'real time' application. c) Host centric USB devices cannot send any data to the host PC, until the host requests it. RS232 device can send data any time. Nowadays, USB chip manufacturers provide many examples for the basic transfer handling and USB class implementation. So, you don't need to realize the details of the USB protocol and enumeration at the introduction. You can jump start a simple data transfer application over USB. But when you want more performance, more speed, more control, you have to step into the maze of the USB and PC application details. Tsuneo |