gpt4 book ai didi

embedded - 使用 SPI 接口(interface)初始化 microSD 卡

转载 作者:行者123 更新时间:2023-12-03 14:02:32 25 4
gpt4 key购买 nike

我正在使用 microSD嵌入式设计中的卡。该卡使用 SPI 接口(interface)连接到微 Controller 。它适用于我以前使用过的所有卡,但现在我的新卡无法初始化。该卡是 Transcend 2 GB microSD 卡 (TS2GUSD)。

发送初始时钟序列以切换到 SPI 模式后,我执行以下操作:

  • CMD0(参数 0,CRC 0x95)-> 响应 0x01-> 确定
  • 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 卡。

    我该如何解决这个问题?

    最佳答案

    我似乎找到了问题所在。当我为 CMD55 计算正确的 CRC 并发送它而不是虚拟 CRC 时,命令被接受(结果 0x01)。如果你看the physical layer specification在第 7.2.2 节中,它明确指出:

    The SPI interface is initialized in the CRC OFF mode in default. (except for commands CMD0 and CMD8).



    这一系列创见卡似乎并非如此,因此违反了规范。此外,在 CRC 错误的情况下,回复应该是 0x09 而不是 0x05。我试图用 CMD59 明确关闭 CRC 检查,但这似乎没有帮助。

    =>为(所有?)命令计算正确的CRC使卡工作。

    我正在就此事与 Transcend 支持人员联系。如果我学到一些有用的东西,我会在这里知道。

    请注意,我之前使用过其他 2 GB Transcend 卡,但它们是台湾制造的,而新的则是韩国制造的(并且似乎是三星卡(MMAGR02GUDCA))。

    关于embedded - 使用 SPI 接口(interface)初始化 microSD 卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/955587/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com