我已经尝试用LPC1766 SPI外设做SD卡接口有一段时间了,现在我陷入了一个问题,我在任何地方都找不到答案。
问题是:SDHC卡不能像预期的那样响应读写命令。
在基于Chan流程图和恩智浦应用笔记的初始化过程中,一切工作正常。我可以区分卡的版本,读取OCR,CID,CSD并确定它们的大小。
在该步骤之后,我开始每隔一秒写入单个块,并将其读回以检查数据完整性。在Kingston SDHC4 GB Class 4卡上,我可以发送第一个写命令,但在第二个卡上,卡甚至不响应CMD24 (0x00或0x01)。对于SanDisk 4 GB Class 4卡,结果是不同的,每个命令都由卡响应,但当我读回数据时,我只得到0(我确信我没有写零)。如果我使用SDSC卡,一切工作正常。
我知道SDHC是块寻址的,而不是字节寻址的,我需要为SDHC发送带有CCS on的ACMD41。我还知道时钟频率不是问题(使用400兆赫启动,然后20兆赫写入/读取),因为我刚刚打开CRC校验,所有卡都接受命令和数据。如果我停止计算CRC,所有的卡都会拒绝命令和数据。
发布于 2013-03-22 02:57:46
如何连接您的SD卡?根据模式/状态的不同,SD(HC)卡需要一个外部上拉电阻。如果没有它,你的读数是零,所以这可能是你的问题。
https://stackoverflow.com/questions/8867044
复制相似问题