Hi Andy,
After read some of your reply, I found that you are the right person possible to have the answer. You test the link from GPDMA->SSP->FLASH, while I am trying an opposite way : from FPGA (NOT IN MBED)->SSP(IN MBED)->GPDMA(MBED)->DMA (USB IN MBED)->USB(Android-powered device).
In my application, raw data acquiring from DAQ system (24 bits * 128 channels (at least) each block with 2k sample rate) is going to transmit into mbed through SPI interface and pass through USB interface to an Android-powered device through Android Accessory Protocol.
Since the data is not in a SD card but from a FPGA, SSP interface (SPI in TI mode) seems to have higher performance for continuous bits stream.
My question is that:
1. How much data rate in your test? And what is the peripheral of mbed in your test. More code to share with us?
2. In my app, Mbed is going to act as a master and DAQ system end with FPGA is going to be a slave. Do you have any suggestion of the following condition?
When I tested the AndordAccessory example from cookbook, I found that this program does not implement real USB host but make a trick with a method that using serial-USB port and all data transceiver under serial protocol instead of USB protocol for simplicity. But Samuel Mokrani tested the USBSerial, and replied me that for the moment he had never reached more than 580 kBytes/s on the USB bus (this max speed had been reached with USBSerial). And he recommend activate DMA inside USB port of MBED 1768.
I suppose that USB host protocol is still under developing in mbed, and no reliable and stable library is available for directly using by now. Furthermore, UART3, one of the LPC1768 UARTS, is connected to USB port in mbed board and a library for mapping serial data between USB data is available in mbed library. Then a trick is made for simplicity.
In this way, if building a stable library in mbed part, there is the possibility that reach a higher speed rate like 777.216 Kbytes per second (24 bits * 128 channels * 2024 sample rate) or just a few modification in USBSerial also could achieve this goal.
In a word, if I want to implement a data link from SSP bus to USB with at lease 777.216 Kbytes per second, what should I do in your opinion? Any code to recommend?
Best regards
Quan
Hi,
I have read the posts on fast GPIO and am interested in ideas on how to increase the bandwidth performance of the situation where I want to move a block of data from SRAM through an 8-bit GPIO port to an external clocked device. The previous posts are good for toggling IO bits and bytes but not moving large amounts (10's of KBytes) of data.
A straightforward approach would be to write a byte to the GPIO port and then toggle a separate GPIO pin to clock the data into the external device. This does not meet my performance needs (tens of MBytes/sec). I've read the stuff on DMA but 1) are there any hooks to implement this with the mbed library and 2) how do I clock the external device or provide a synchronized clock enable (and use some other pin as a clock)?
Burt.