I'm using a SAM3U-EK devkit to write a 16KB buffer to a SD card however I'm a bit disappointed with the speed results that I'm getting when writing from the SAM to the SD card (~0.41 MB/s).
In theory, since the HSMCI clock is at 50 MHz (~half sys clock. Main clock at 96MHz) and I'm using 4 datalines, I could get up to 25MB/s. This will never happen due to protocol overhead. When writing to the SD card over USB using the SAM, I'm getting writings speeds up to 17 MB/s (for big files) and around 4MB/s for 16KB files.
I'm using the ASF libraries and my code is based on one of the examples that uses a file system provided by atmel. I'm using the f_write function to write the buffer.
Think this could be related to the fact that the library is writing one block of 512 bytes to the SD card at a time. I see that it's also possible to perform multi block write operations.
What's the easiest way of enabling this multi block when writing a big buffer (16KB) to the SD card using the ASF libraries? Any thoughts?