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.

F28377D USB-Serial Speed

Other Parts Discussed in Thread: CONTROLSUITE

I've been using the USB port on a F28377D control card for a while (the USB port using the micro USB connector, not the UART / FTDI chip / mini connector) to transfer data between the F28377D and a terminal window on a PC. I modified the USB_dev_serial code from ControlSuite, and it works OK at the normal Baud rate of 115200.


My question is: is it possible to do anything to increase the speed of this, to get higher data throughput? As a USB port, I'd expect it to be capable of operating much faster than 115k, but it does seem to be limited by something in the DSP. The settings of the terminal window make no difference. Is there anything that can be done in code to increase speed, or is it controlled by the USB serial port driver?

  • Hi Gordon,

    Did you check by increasing the baud rate to 921600 or more than 115k?

    #define DEFAULT_BIT_RATE        921600  //230400 ; 460800;

    Regards,

    Gautam

  • Hi Gautam,

    as far as I can see, DEFAULT_BIT_RATE only applies to the UART in usb_dev_serial. It's the 'direct' USB port I'm using - the one that allows use of functions USBBufferRead() and USBBufferWrite() - so I don't think this is the issue here. I've stripped away all the UART-related stuff for the program I'm working on at the moment.

    Gordon.
  • Hi Gordon,

    What is the throughput you are able to achieve?

    The usb_dev_serial example uses bulk endpoints. Using usb_dev_serial example, I can see that my hose PC only sends two IN packets requesting data from the device per frame (1ms). This is a maximum of 128 bytes / ms. However, bulk transfers can have a maximum of 19 transfers per frame with a maximum of 64 bytes per packet. This is probably due to the driver on the host side which recognizes the device as a serial communication device (CDC) and does not request much data from the device.

    We have been able to achieve throughput between 7 and 8 Mbps (875 KB/s - 1 MB/s) using bulk transfers with the F2837xD. This is slightly under the full speed maximum of 12Mbps.

    I would suggest looking at usb_dev_bulk and the usb_bulk_example which is a Visual Studio example in controlSUITE. You can look at the host PC example, usb_bulk_example, as a starting point for a host application requesting data from the device.

    Best Regards,
    sal