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.

Maximum sustained Isochronous bandwidth capability?

Other Parts Discussed in Thread: EK-TM4C1294XL, TMS320VC5506

I designed and shipped a product based on the TMS320VC5506 that delivers 772 KB/sec of data over 2 isochronous endpoints (Full Speed USB Device). I'd like to host this product using the TM4C1294. I'm having a little trouble maintaining the bandwidth using the EK-TM4C1294XL, so my immediate question is:

What is the maximum sustained Full Speed Isochronous bandwidth capability of the TM4C1294?

Each Isochronous endpoint has a size of 388 bytes, but only 386 bytes are actually sent. The endpoints are expected to have new data 1000 times per second (every USB Frame). The TMS320VC5506 is certainly capable of the bandwidth, because the product has been shipping for years. I'm trying to ascertain whether the TM4C1294 will be able to keep up, or if I should select another Full Speed USB Host chip.

Can the TM4C1294 maintain 772 KB/sec over two 386 KB/sec isochronous endpoints.

Any information on isochronous bandwidth is appreciated. I see the USB Audio examples, but they don't seem to be pushing the Full Speed bandwidth as high as my device.

  • Hello Brian,

    TM4C129 indeed has the bandwidth to do so, but then it depends on what the system load you are going to have. Also are you using the USB Library from TM4C or do you have your own USB library?

    Regards
    Amit
  • I am using the TivaWare USB Library.

    Is there another choice? How many customers have developed their own USB Library?
  • Hello Brian,

    Thanks for the information. We will defer to the other thread of yours.

    I however cannot comment on numbers for how many customers use USB Lib v/s develop their own.

    Regards
    Amit
  • Hey guys,

    I don't mean to hijack this thread but I believe my question is reasonably relevant.

    I developed my own device class driver that treats the Launchpad (EK-TM4C1294XL) as a device that simply has one interface that is able to stream isochronous data. The ultimate goal of this software is for it to transmit data from an FPGA to a PC over USB 2.0 High Speed.

    What exactly has to be done on the PC side to retrieve this data? Is it possible to do so via MATLAB or would I have to write windows drivers myself and develop my own application for accepting data?

    If the latter is the case could anyone point me in the right direction?

    Thanks,

    Bryan

  • Hi Bryan,

    On Mac OS X, you do not need to write a driver. Standard, user-level application code can access isochronous streams, and there is even a special, low-latency API for video streaming or other types of devices. I used the low-latency isochronous API for my TMS320-based product that implements Full Speed USB with 772 KB/sec streaming over two isochronous endpoints.

    On all versions of Windows, isochronous USB streaming is not possible without writing a driver. There are API on some versions of Windows that make Control, Bulk, and Interrupt endpoint access possible, but I have yet to find user (non-system-driver) API for isochronous endpoint data access.

    Brian Willoughby

    p.s. I eventually got my TM4C code to input the isochronous stream without data loss. So, the answer to my question is "yes."

  • Hello Brian,

    I though Widnows 8.1 and supporting MSDN Visual studio introduced isochronous endpoints via WinUSB?

    Regards
    Amit
  • Thanks guys! This was the nudge I needed to get the ball rolling. I'll be trying my luck with WinUSB using Visual Studio 2015.
  • Hello Bryan

    Note that i have limited my operations on VS2015 to Bulk Endpoint. Not seeing the requirement yet for Isochronous yet.

    Regards
    Amit