Hello i have a question. I'm working on a usb mass storage device. I was wondering something on thetransfer speed between the usb host shield and thebarduino itself. The arduino is the arduino zero which i use a lot now. And then isb 2 host shield. Now i do know speeds of the usb but what I'm wondering what are the speeds between the shield and the arduino? I know it is a lot slower then usb speeds.
Joseph
josephchrzempiec:
I'm wondering what are the speeds between the shield and the arduino? I know it is a lot slower then usb speeds.
That's right, and so it's the biggest bottleneck of the data path that makes USB speeds more or less irrelevant. In synchronous systems, the slowest component will always mark the pace of the whole.
Now, since the communication bus is serial (SPI), data rate is greatly influenced by the clock's frequency; the rest is merely overhead (code execution, protocol handling, busy slave, CPU-driven I/O contrary to DMA-driven I/O).
In SPI, clock frequency equals bitrate but only in a "raw" manner; effective data rates are always decreased by some kind of overhead because of the inevitable delay this causes between transfers (that doesn't exist only in bulk DMA transfers).
Check the max3421e datasheet to be sure. I think the max3421e max SPI speed is 26 MHz clock but slow AVR processors may not be able to keep up so must run the SPI clock slower. ARM and ESP processors can run much faster.
gbafamily:
slow AVR processors may not be able to keep up so must run the SPI clock slower. ARM and ESP processors can run much faster.
He uses an Arduino Zero which runs at 48 MHz, so its SPI controller should run at most at 24 MHz (24 Mbps or 3 MB/s raw speed).