General SDIO interface question - applies to any MCU with SDIO (not SPI) for micro-SD card interfacing..
Using SDIO with just one D0 data line (plus a second serial CMD line). 24MHz clock. SanDisk 4GB HC card.
After reading 1-n blocks (512 bytes), there's a 520 microsecond gap before the same read can reoccur. That is, if I read 16 blocks, the data (DO signal) shows the blocks come in back-to-back with no inter-block delays. Another such read, immediately in the code, and I see 521 microseconds before data flows again.
I need to find where the delay is - waiting on a status bit? The uSD chip is pondering something?
No double-buffering.
The 521 microsecond gap stays the same no matter the number of blocks read. The time to transfer one 512 byte block at 24MHz is about 170 microseconds with a single serial line.
Is this normal? that time is not throughput-friendly for reading n at a time blocks for n being a small number, e.g., constrained by RAM buffer size on an embedded MCU.
EDIT: The command to read a single or multi blocks is very brief - not 100's of microseconds.
Using SDIO with just one D0 data line (plus a second serial CMD line). 24MHz clock. SanDisk 4GB HC card.
After reading 1-n blocks (512 bytes), there's a 520 microsecond gap before the same read can reoccur. That is, if I read 16 blocks, the data (DO signal) shows the blocks come in back-to-back with no inter-block delays. Another such read, immediately in the code, and I see 521 microseconds before data flows again.
I need to find where the delay is - waiting on a status bit? The uSD chip is pondering something?
No double-buffering.
The 521 microsecond gap stays the same no matter the number of blocks read. The time to transfer one 512 byte block at 24MHz is about 170 microseconds with a single serial line.
Is this normal? that time is not throughput-friendly for reading n at a time blocks for n being a small number, e.g., constrained by RAM buffer size on an embedded MCU.
EDIT: The command to read a single or multi blocks is very brief - not 100's of microseconds.
Last edited: