This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Achieve 12Mbps using USB on TM4C

Hi every one, I have modified the usb_dev_bulk from "tiva-ware" in order to generate data from the MCU everytime it receives the specific word "hola", the Visual Studio code generate 1000 times the word "hola" and every time that the MCU receives this word it sends 512 bytes of data to the PC that store it in a buffer "receiverPC". Using the clock function on the visual studio code I can know how much time it takes to receive all this data. and I got that the speed is 1.7 Mbps (aprox.) each time I test it.

So my questions are:

-How can I achieve 12Mbps?

-Is the usb_dev_bulk example working at 12Mbps or it is working at low speed mode (1.5Mbps)?.

-The USB configuration must be changed to achieve full speed?.

-I tougth that using 64 bytes chunks means full speed.

-It is problem of the time out parameter on ReadUSBPacket()?;

Notes:

-The only operation that is made on the visual studio code, after  ReadUSBPacket() is executed, is the data storage.

-The data storage on the buffer receiverPC  does not affects the time consumption, using it or not using it gives me the same speed rate.

-Some time data is not readed because of the time outs, this is counted and displayed in (Veces mal: ),this occurs rarely in the 1000 times.

-The speed calculation is made only using the data that is received with no problem.

 

The codes:

If anyone wants to try the codes, overwrite this ones on the codes that are used on the USB bulk example from tivaware.

After the device is recognised by the PC code write the word "vaoarriba", this send 1000 times the word "hola"

mega.nz/

 MCU: TM4C129e

Code Composer Studio Version: 6.1.3.00033

  • Hello Josue

    First of all you cannot achieve 12Mbps. There is overhead on USB full speed which limit it to a maximum of ~8Mbps for bulk transfers. What is causing the lower throughput. Is it the Host controller not being able to use every frame: This can be ascertained by connecting a USB Bus Analyzer and seeing at what intervals does the USB host send the bulk out request and generated bulk in request for the USB device.
  • Hi Amit, thanks for your answer, can you explain me better this part:
    "The host controller not being able to use every frame".
    Can you help me with this questions too please?
    -How Can I achieve ~8Mbps?.
    -Is the usb_dev_bulk example working at low speed mode (1.5Mbps)?.
    -Something in the configuration of the MCU make it works at low speed? (registers or something)
    -What makes the USB in the TM4C129e works at a higher speed?
  • Hello Josue

    No. This is USB Full Speed. ~8Mbps is theoretical maximum. In actual implementations it is less. Others on the forum (past threads that require searching) have got 5-6 Mbps with a very optimized implementation. Higher speeds are possible with TM4C129x and external USB High Speed PHY.
  • I will search, please, I you have the links of those past threads, let me know, the only things that I have found for TM4C129 are for High Speed, not for full Speed.