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.

LAUNCHXL-F28379D: High Speed C2000 to PC communication

Part Number: LAUNCHXL-F28379D
Other Parts Discussed in Thread: C2000WARE

I am currently working on a high speed sampler that requires real time acquisition at about 5MHz. I think i can get it down to about a byte per sample but then the issue becomes transferring data continuously at 40Mbps. I was looking at the usb module on the c2000, but though it is USB2.0, it seems like it is still only limited to 12Mbps? Is there a way around this or a better way to stream the data to a computer? 

Cheers,

Jason Y. 

  • Hi Jason,

    I'm not sure that there will be any communication module on the device that can sustain 40Mbps of throughput directly to a PC. If you really need to stream the data in real-time I think you may need to connect a parallel chunk of IOs to a high-speed digital IO capture card on the PC.

    What duration do you need to capture for? If the internal RAM on the device is not sufficient, you can add additional RAM via the EMIF peripheral. You then capture for the required time, streaming data to external memory. Once the capture is complete, you can scan-out the dataset over USB or UART.
  • Hmmm, what is the fastest i can transfer without additional hardware? is it the 12Mbps? or is there something a bit better?

    Unfortunately, I'm not sure about the time - it can be anywhere from a few minutes to an hour.
  • Jason,

    We have only been able to achieve 7-8Kbps using the USB. We cannot achieve the 12Mbps limit.

    I suggesting trying SPI or another communications peripheral/protocol.

    On the control card, there is an FTDI chip which muxes SCI communication to the mini-USB connector. A PC can connect to the mini-USB connector and communicate as a COM port.

    sal
  • Hi Jason,

    I'll let a colleague comment on the max bit-rate you can get with the USB interface. I think this is your best bet.

    If you get that working, you could stack up multiple launchpads and use the SPI interface to pass data up/down the stack to allow multiple USB scan-out paths to operate in parallel.

    Alternately, you could get a host embedded processor that supports high-speed scan-out via Ethernet. See AM335x 'Sitara' processors for one possible option (with beagle bone black as a possible development kit).
  • Hi Jason,

    Based on Sal's post above, I don't think USB is going to help you.

    I think you best bet is to transfer data to another board with an ethernet interface via one or two high speed SPI modules and then stream the data out of that board. The previously mentioned AM335x device on a beagle bone seems like the best bet.
  • Hi Sal,

    How fast can we go on the COM port? isn't that limited in hardware to 3Mbits/sec?

    Thanks,

    Jason Y. 

  • Thanks for the suggestion on the beagle bone - the PRU units are interesting since im trying to achieve very high speed TTL pulse counting in real time (25ns pules) and this might be the way to go. Do you have any information on how fast the PRU can send data back to the application processor?

    Also are there reference designs to pass data through ethernet to a PC? Is it simply setting up a socket server and passing data as such?

  • Jason, I am not sure. I have not profiled this. It would be relatively simple for you to profile this by taking the echo back example in C2000Ware and modifying it to test the throughput to your PC. Keep in mind that the PC Operating System may actually be the bottle neck. The data has to move up the different levels of OS kernels to your application.

    sal