New USB device development

03 Aug 2012

I'm designing a monitoring system, sending data through USB to a computer.

By the amount of data, USB serial emulation can't handle it.

Which USB class do I need to use? I'm new in USB development also in mbed.

Anyone here did something like this? Can share information?

Don't know how to begin this, any information is welcome!

Thanks!

03 Aug 2012

Hi,

If you want to send raw data over USB, there are two solutions:

  • HID device. Take a look at the USB HID bindings webpage to see how to communicate with your mbed. This class allows you to send 1 packet of 64 bytes each ms.
  • USB virtual serial port. The bandwidth is higher than a HID communication because several packets can be sent each ms. I remember some tests I did where I was able to send until 8 packets each ms. But this number depends on the host, the traffic on the bus, the number of bytes in one packet (for the maximum bandwidth, use 64 bytes packets)... If you want to send 64 bytes (the maximum) packets of data, you can use the function writeBlock.

Don't hesitate to ask if you have more questions

Hope that helps

04 Aug 2012

USB Virtual Serial Port can't handle the required bandwidth.

By my research, I'll have to use Isochronous mode (time-critical application).

Do I have to implement the isochronous from zero or already exist a lib that does that?

Thank you for your time, sure I'll back with more questions!