>What sort of arduino are you using?
I'm not actually using an arduino. I'm using an ATxmega256D3 on a custom board.
>It could be that your SD card can't go faster. Have you tried another one?
I've tried a 16MB card but it didn't work at any speed (I think it's getting FAT12 formatted instead of FAT16). I also tried a 128MB miscroSD card in an adapter, but it didn't work at any speeds either. My current working card is 512MB if it makes a difference.
>What class of SD card do you have?
If by class you mean speed class then all I know is that there are no high speed marking on it (like these: https://www.sdcard.org/developers/overview/speed_class/host-marks.png
). If by class you mean SD vs SDHC vs SDXC, its just plain old SD. The only useful info on the card is SD-M512 which led me to this "datasheet", http://datasheet.octopart.com/SDM512-Toshiba-datasheet-10124.pdf
If the card couldn't go faster then I assume it wouldn't even initialize at 8MHz (like it fails to at 16MHz). The fact that I get 99% of the data back correctly leads me to believe that it's just busy or something and that I have to wait for it. Although it certainly could just be the max SPI speed of the card.
Which leads me to the question, has anyone ever attempted to use an SD card in SD mode (which I assume is faster) on an arduino? Or is it far too complicated/fast for a small MCU to keep up?
Also I just read this: "When the card encounters a data retrieval problem, it will respond with an error response (which
replaces the expected data block)
". This is likely whats happening right now. I'll read up some more on it.