02-15-2017 12:01 PM
Is there a detailed datasheet for the SDIO peripheral in the Zynq-7000 chip? I have looked through the SDIO section of the Technical Reference Manual, but I would like to see more information about registers and the DMA engine. I am trying to implement some data logging to an SD card and need as much performance as I can squeeze out. I am seeing how fast I can make it go and trying to understand where the bottlenecks are. The driver source code (I am using the standalone BSP) gives me some insights, but without other documentation, it is hard to determine why they did some things.
02-15-2017 06:58 PM
02-16-2017 06:51 AM
@ericv thanks. I requested access to the driver code, I believe. I filled out the form on the website and then it created an email, which I sent. Is that correct? Do you know what documentation was used to develop the driver code?
0.5-1.0 MBps write is not fast enough for what we need. I am hoping to be able to use a more raw write strategy and then shoe-horn filesystem data around that. We only need the SD card to log data, so I think that should work. I have been able to get write speeds up around 12-13MBps using a Sandisk Ultra 32GB card. That's still only about half of the 25MBps signaling rate. We were hoping to use the card in an UHS mode, but from what I can tell the host controller does not support that (probably mostly due to the fact that it has to switch to 1.8V signalling for that). It is confusing that the driver code has support for it.
11-29-2017 09:18 PM
How did you get the 12-13 MB / s speed. Are you using xilffs. For my application, I need around 12 MB / s but xilffs functions (f_write) are toooo slow.
Can you please give me any pointers to increase the speed.
11-30-2017 07:44 AM
@roberfrenanc091 I am using a copy of xilffs that I have modified. These are the things I have found that are important for writing quickly to the SD card:
Here are some of the changes I made to the code:
I recommend testing things out at first without regard to the file system. Use the low-level SD write functions to just write data somewhere on the disk and see how fast you can get it to go. If you cannot get the speed you need doing that, then you won't be able to do better once you have to deal with the filesystem. I also recommend the hex editor HxD. It can open disks so you can look at the raw data on the disk to be able to see the FAT entries and actual file data blocks.