我将 CPU 频率从 SDK 中默认的 80MHz 调整为 240MHz, 原来可以正常驱动的 SD 卡, 出现了初始化失败的问题. 查看了 SDK 的初始化部分代码后发现 , SDIO HOST 初始化的 MMC 频率定为了默认的 1Mhz, 修改主频应该不会影响才对, 不清楚具体是哪一块还与 CPU 主频有牵连导致初始化不成功.
{{1. png (uploading. . . ) }}
你提高 CPU 时钟的话应该是有影响的, 寄存器手册中有一句话是这样的
你看的时钟为 1MHZ 应该是这个吧
你提高了 CPU 的时钟默认也就 FHCLK 的时钟
因为 SDIO host 挂载在 AHB1 总线上
这是我的分析, 你自己再细细分析下
重新翻看了时钟总线和 SDK 的定义, SDIO 总线挂载在 AHB1 上, SDK 设置为默认的 1/6, 也即 240M 分频后得到 40M 作为时钟线, 并未超过最高 50MHz 的限定. 重新插拔后, 初始化正常了, 但是读写测试仍然失败, 写入再读出数据不一致.
好的 谢谢 我在分析一下!