High speed USB or ethernet to wide parallel data rate

13 views
Skip to first unread message

botlo...@gmail.com

unread,
May 24, 2016, 9:28:28 PM5/24/16
to BeagleBoard
I want to know if the BBB is right for me. I need to input either through USB or ethernet and output the data through a three byte wide gpio bus
the BBB needs  to handle a 2 MHz external clock rate and load the 3-byte GPIOs every clock cycle. That would be 2MHz x 24bits = 48 Mbits/s or 6 MBytes/s. Can this be done using the BBB? Thank you.


Dennis Lee Bieber

unread,
May 24, 2016, 11:41:03 PM5/24/16
to beagl...@googlegroups.com
On Tue, 24 May 2016 18:17:01 -0700 (PDT),
botlo...@gmail.com declaimed the following:
Considering that the PRU runs at 200MHz you could, in theory, use 100
PRU instructions to load the GPIO in synch with your external clock.

I suspect the code would be simplified if one worked with 32-bit output
-- even if the top 8-bits never change. What I'm not sure of is if there
are that many GPIOs that can be written in one instruction (though with a
100:1 ratio, that may not be important <G>).

You likely do NOT want to use the file-system access scheme for this...
Memory-mapped I/O from the main processor/Linux might be able to keep up.
Your input data is likely coming via the Linux side, anyway.

Running the Ethernet connection at max -- 100 Mbps -- and ignoring
packet overhead (Ethernet addressing, IP addressing, checksums,
ACK/NAK&resends, etc.), would imply a possibility for 12MB/sec.

While USB high-speed is a nominal 480Mbps, it is a polled I/O system
with a lot of overhead. One document I've read (
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0ahUKEwjjk4X8ovTMAhVNNFIKHU9lDzIQFggrMAI&url=http%3A%2F%2Felinux.org%2Fimages%2F6%2F66%2FElc_2014_usb.pdf&usg=AFQjCNG3F3TU9pZeR9Un0el9d0o1BYQkeA&cad=rja
) gives the BBB an effective 4Mbps over USB (or 1/100th theoretical max)
when run in a naive situation. It does improve over that, but one factor is
the size of the USB data transfer -- if your source data is only three
bytes at a time... Expect the overhead of USB to swamp the data (64-byte
I/O with asynchronous queued read -- 15 Mbps; 512-byte I/O gave 82 Mbps...
64kB using DMA gives 211 Mbps)

--
Wulfraed Dennis Lee Bieber AF6VN
wlf...@ix.netcom.com HTTP://wlfraed.home.netcom.com/

Reply all
Reply to author
Forward
0 new messages