gpt4 book ai didi

spi - SDHC microSD 卡和 SPI 初始化

转载 作者:行者123 更新时间:2023-12-04 07:27:36 34 4
gpt4 key购买 nike

我有一个 32 GB 的金士顿 SDHC microSD 卡,它必须与 MSP430F2618 通信通过 SPI .我无法通过使用 CMD55 + ACMD41(bit30 设置为 1)来初始化它,如 SD 规范文件中所述。有效的是这个序列:

  CMD0, arg: 0         , CRC: 0x95 (response:0x01)
CMD8, arg: 0x1AA , CRC: 0x87 (response:0x01)
CMD1, arg: 0x40000000, CRC: 0xFF (response:0x00)

我也用 8 GB 的 SanDisk 卡试过了,也适用。所以实际上,我在这里使用的是 CMD1,而不是 ACMD41,HCS 位设置为 1。但是,它不稳定,有时有效,有时无效。这可能与硬件有关。

卡用参数 0x40000000 响应 CMD1 难道不奇怪吗? ?

最佳答案

你不应该使用 CMD1初始化SDHC卡;如 SD 卡规范中所述:

In any of the cases CMD1 is not recommended because it may be difficult for the host to distinguish between MultiMediaCard and SD Memory Card.



如果您发出 CMD1,一些 Controller (主要是更新和更高容量的卡)将简单地保持空闲状态。给他们。
你应该先发出 CMD8 0x1AA重置后( CMD0 ),然后使用 CMD55 + ACMD41 .

tl;dr 要初始化卡,您应该:
  • CMD0参数:0x0 , CRC: 0x95 (回复:0x01)
  • CMD8参数:0x000001AA , CRC: 0x87 (回复:0x01)
  • CMD55参数:0x0 , CRC: any ( CMD55 是每个 ACMD 的前缀)
  • ACMD41 , arg: 0x40000000 , CRC: 任意
  • 如果回复:0x0 ,你没事;如果是 0x1 ,转到 3。

  • 请注意,大多数卡片需要重复步骤 3/4,通常是一次,即实际顺序是 CMD0/ CMD8/ CMD55/ ACMD41/ CMD55/ ACMD41 - 当然,尝试一下 n次(在你的理由中选择 n),如果没有,则假设失败。

    另外,请注意,您应该至少在 CMD0 之前和之后断言 S̲S̲(又名 CS)为低电平。 - 实际上,可能总是在向 SD 卡发送任何命令时。

    关于spi - SDHC microSD 卡和 SPI 初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8080718/

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