我在嵌入式设计中使用microSD卡。该卡使用 SPI 接口连接到微控制器。它适用于我以前使用过的所有卡,但现在我的新卡无法初始化。该卡是 Transcend 2 GB microSD 卡 (TS2GUSD)。
发送初始时钟序列以切换到 SPI 模式后,我执行以下操作:
CMD0(参数 0,CRC 0x95)-> 响应 0x01 -> OK
CMD8 (Argument 0x000001AA, CRC 0x87) -> Response 0x01 0x000001AA -> 表示它是 SDC V2+ 卡,支持电压范围 2.7 V - 3.6 V -> OK
然后我应该发送 ACMD41 命令,但是当发送必须在 CMD41 之前的 CMD55(参数 0,CRC 0)时,我得到响应 0x05 -> 非法命令。我也尝试发送 CMD1(用于 MMC 卡),但它给出了类似的非法命令响应。该代码适用于我的 Sandisk 2 GB microSD 卡。
我该如何解决这个问题?