Embedded SDHC SPI写入问题

Embedded SDHC SPI写入问题,embedded,sd-card,spi,lpc,sdhc,Embedded,Sd Card,Spi,Lpc,Sdhc,我一直在尝试做一个SD卡接口的外围设备有一段时间,现在我陷入了一个问题,我无法找到答案任何地方 问题是:SDHC卡没有按预期响应写入和读取命令 在基于Chan的流程图和NXP应用说明的初始化过程中,一切正常。我可以区分卡的版本,读取OCR、CID、CSD并确定它们的大小 在这一步之后,我开始每隔一秒钟写一个块,然后将其读回以检查数据完整性。在Kingston SDHC 4GB Class4卡上,我可以发送第一个写入命令,但在第二个卡上,该卡甚至不应答CMD24(0x00或0x01)。对于SanD

我一直在尝试做一个SD卡接口的外围设备有一段时间,现在我陷入了一个问题,我无法找到答案任何地方

问题是:SDHC卡没有按预期响应写入和读取命令

在基于Chan的流程图和NXP应用说明的初始化过程中,一切正常。我可以区分卡的版本,读取OCR、CID、CSD并确定它们的大小

在这一步之后,我开始每隔一秒钟写一个块,然后将其读回以检查数据完整性。在Kingston SDHC 4GB Class4卡上,我可以发送第一个写入命令,但在第二个卡上,该卡甚至不应答CMD24(0x00或0x01)。对于SanDisk 4GB Class4卡,结果是不同的,每个命令都由该卡响应,但在读取回数据时,我只得到零(我确定我没有写入零)。如果我使用SDSC卡,一切正常


我知道SDHC是块寻址的,而不是字节寻址的,我需要为SDHC发送带有CCS的ACMD41。我也知道时钟频率不是问题(使用400KHz启动,然后使用20MHz写入/读取),因为我刚刚打开CRC检查,所有卡都接受命令和数据。如果我停止计算CRC,所有卡都会拒绝命令和数据。

如何连接SD卡?根据模式/状态,SD(HC)卡需要一个外部上拉电阻器。如果你没有读到零,那可能是你的问题。

使用Chan的,我在使用大于2Gb的卡时取得了不同的成功。我一直认为工作的卡是SD1.01版SDSC卡,具有2048字节块,而不是v2.0 SDHC。我从来没有进一步研究过它,因为我不需要更高的容量。我记得我对Chan的代码做了一些修改,这样我就可以在没有通电的情况下正确初始化SanDisk卡。您是否可以显示您使用的SD卡代码?原因也可能是SPI驱动程序,如果您使用FIFO,请注意在完全填充TX FIFO时RX FIFO可能溢出的问题,因为它可以有效发送17个字节(我的驱动程序在那里失败)