Sorry, you need to enable JavaScript to visit this website.

SDIO bare-metal perfomance

6 posts / 0 new
SDIO bare-metal perfomance

Hello everyone!

We have developed a software controller for writing and reading an SD card. Our code uses ADMA and multi-block transfer mode as the Zynq-7000 technical reference manual explains. The problem is that the data transfer between SDIO and ADM is too slow (1 sector of 512 B per ms for writing transfers).

We have got this time by measuring the cycles between the CMD25 order (Multi-block write) and the change in the interrupt status register.

We are using a Transcend SDHC 4 card with FAT32 file system, 512 B sector size and 4 KB cluster size. Don't know where could be the bottleneck (SD card? ADMA algorithm?)

From our point of view, 512B/ms is too slow as we need to write 2 sectors in less than 1 ms. These 2 sectors are the file sector itself and the directory entry sector. The directory entry sector is required to save the changes in the case of failure.

Do you have any suggestions? I can provide the code if you want to take a look at it.

Thank you!

Faster SD card

SD card write performance depends greatly on the SD card itself. The speed rating is indicated by the cards class. It will be a number in a circle printed on the card's label. The higher the number the faster the card.

SD card

Hi Galfonz, thanks for your response. I will try an SDHC 10 out. Let's hope it will work better!


Hi again,

I have tested a Samsung class 10 SD and it is way too slow. Even more that the Transcend class 4 that I have tested until now. Do you know any model that could work well?

Do you have fixed this

Do you have fixed this problem? How to resolve it? Could you please share with us?

Hi all, maybe anybody can

Hi all, maybe anybody can help, or provide part of code