Other Parts Discussed in Thread: TUSB1210, TM4C123GH6PM
Hi all,
we developed an osciloscope for students of our university to work with. The first version is running and students are able to measure signals with a sample rate of up to 500kHz. The osciloscope is communicating via USB with a host application running on their PCs/Laptops. All the measured data is sent over a Bulk Endpoint to the Host application.
The next upgrade should deliver a better samplerate of the osciloscope, which means to increase the speed of the USB-transmission. Right now we are reaching a transmission rate of 0,5 MByte/s (as we are only using the leading 8 bits of the ADC peripheral with a sample rate of 500kHz). We achieve to use the full speed of the ADC module, which is at a max. sample rate of 1MHz.
So far we tested the transmission rate of the USB-Bulk-Example. The transmission rate reached with the USB-Bulk-Example is at about 0,8 MByte/s. The tranmission rates reached with the osciloscope and w/in the example code are far away from the USB 2.0 rate (60MByte/s) and also the USB 1.0 rate (1.5 MByte/s).
Referring to the datasheet of the TM4C MCU it should be able to fulfill USB 2.0 standard, isn't that true?
In this thread I read about double-packet buffering (USB-Speed Thread) and followed Tsuneo Chinzeis advice/code snippet. Unfortunately it did not help to increase the transmission rate.
I've also tested the different usblib functions USBBufferWrite and USBBufferDataWritten. As expected the USBBufferDataWritten function was way faster, than the USBBufferWrite function. The next step would be to implement a USB-DMA-channel and test how this is increasing the USB-speed. But as we are so far below the possible max. transmission rate I am afraid, that this would not help as much as expected.
We'd like to achieve a transmission rate as high as possible, but at least at about 1 MByte/s.
Does anyone have an idea on how to increase the USB-speed?
Many thanks in advance,
Felix