首页 > 解决方案 > SPI SD 卡 32GB 从不通过 CMD55、ACMD41 初始化步骤

问题描述

我正在使用 Elm-chan FatFs 模块。我正确移植了它,因为它在使用 16GB SD 卡时可以正常工作。但是当使用 32GB 卡时,代码卡在 CMD55、ACMD41 设置循环中。

贝娄是我正在经历的命令和响应的打印

cmd0, resp = 0x01
cmd8, resp = 0x01
cmd55, resp = 0x01
cmd41, resp = 0x01
cmd55, resp = 0x7F
cmd55, resp = 0x7F
cmd55, resp = 0x7F
cmd55, resp = 0x7F
cmd55, resp = 0x7F
cmd55, resp = 0x7F
cmd55, resp = 0x7F
cmd55, resp = 0x7F
cmd55, resp = 0xFF
cmd55, resp = 0xFF

然后从那里, cmd55 总是无限期地得到 0xFF 的响应。我查看了其他问题、spi SDC 指南和其他 ff.c 实现,我大部分时间都在关注它,因为代码确实适用于 16GB 卡,就在我切换到 32GB 卡并重新启动时代码,32GB卡没有初始化。

对品牌有影响吗?32GB 卡是 samsung evo select micro sdhc。16GB 是 Lexar micro sdhc

标签: sd-cardspifatfs

解决方案


您的问题不清楚哪些字节被发送和哪些被接收。您还可以在问题标题中列出不在问题正文中的不同字节。也许如果您对其进行编辑,那么有人将能够为您提供更好的答案。

对 CMD55 的响应为 0x80 表示卡尚未准备好执行下一个命令。发送 CMD55 后,您必须在循环中重复读取字节,直到最高有效位被清除。只有在那之后,您才能发送 ACMD。


推荐阅读