我正在研究目前仅支持SDSC v1卡的嵌入式系统。由于越来越难找到小于2 GB的卡,我正在尝试添加对SDHC卡的支持。与卡的通信是通过SPI总线完成的。
所以我正在做的是初始化卡片:
之后,我读了MBR并发现在0x30 LBA处有一个FAT16分区。但是,从该地址读取扇区(0x30 * 512)会返回重复的0x01 0x09 ...
<子> 1。 http://elm-chan.org/docs/mmc/mmc_e.html 子>
答案 0 :(得分:2)
“ACMD”命令都需要CMD55,后跟相关命令。
例如,对于命令ACMD41:
SD_command(55, 0, 0, 0, 0, 0xFF);
n= SD_command(41, SD2<<6 , 0, 0, 0, 0xFF);
不要忘记在0b01000000中对第一个参数进行OR。实际命令不是55,而是55|0b01000000
(0b01110111
,十进制119
)。我是在SD_command函数中完成的。
连接SD卡是一种痛苦,所以不要放弃。祝你好运!