我一直试图与LPC1766 SPI外围设备进行SD卡接口一段时间,现在我遇到了一个我无法在任何地方找到答案的问题。
问题是:SDHC卡没有按预期响应写入和读取命令。
基于Chan的流程图和恩智浦应用笔记的初始化,一切正常。我可以区分卡片版本,阅读OCR,CID,CSD并确定它们的尺寸。
在该步骤之后,我每隔一秒开始写一个块并将其读回以检查数据的完整性。在金士顿SDHC 4 GB 4类卡上,我可以发送第一个写命令,但在第二个卡上,卡甚至没有应答(0x00或0x01)到CMD24。使用SanDisk 4 GB Class 4卡,结果是不同的,每个命令都由卡回答,但是在读回数据时我只得到零(我确定我没有写零)。如果我使用SDSC卡,一切正常。
我知道SDHC是块寻址的而不是字节寻址的,我需要发送带有CCS的ACMD41用于SDHC。我也知道时钟频率不是问题(使用400 KHz启动然后20 MHz写入/读取),因为我只是打开CRC校验,所有卡都接受命令和数据。如果我停止计算CRC,则所有卡都拒绝命令和数据。
答案 0 :(得分:0)
如何连接SD卡?根据模式/状态,SD(HC)卡需要外部上拉电阻。没有它你就读零,所以这可能是你的问题。