SPI 模式下部分 SDXC (64GB) 卡初始化失败及读写异常

[复制链接]
222|1
audhxsn 发表于 2025-9-2 11:43 | 显示全部楼层 |阅读模式
, , , sd,
本帖最后由 audhxsn 于 2025-9-2 16:18 编辑

  各位老师/大佬好,我在使用Nation开发板N32G45XCL的硬件SPI驱动SDXC卡时遇到了非常棘手的几个问题:
1. 我的SPI 初始化SD卡的代码只对Lexar牌的SDXC卡有效,对Sandisk和KIOXIA等牌子不起作用,在初始化Sandisk和KIOXIA等牌子时,通过串口反馈的CMD0的响应为0x00,与协议不符; 这个是我自定义的初始化流程:
上电后发送 CMD0 -> CMD8 ->CMD55  ACMD41 -> CMD58 -> 多次循环后 R1=0x00,退出 Idle 状态。
CMD58 → Lexar返回正常 OCR 值,CCS=1(确认是 SDHC/SDXC),其它的初始化失败。

2. 在低速状态下(SPI1,256分频)对Lexar牌子的SDXC卡执行CMD17读操作过程中出现了这种情况:

上电后第一次读某个扇区成功,可以读到数据。
但是后续再读其它扇区,返回的数据依然是第一次的内容(像是缓存)。


3. 在低速状态下对Lexar牌子的SDXC卡执行CMD24写扇区操作的过程中遇到了这种情况:


CMD24 返回 R1=0x00
SD卡发送 Start Token 0xFE
发送完 512 字节数据 + 2 字节 CRC (0xFF,0xFF)后Data Response 一直是 0xFF(按规范应该是 0x05),且之后卡也没有进入 Busy如果马上再读这个扇区,会读到写入过的数据,但断电后数据全部丢失,推测只是写到缓存。

由于缺乏高速调试手段,问题排查陷入了瓶颈。恳请有经验的大佬们提供一些排查思路或方向。非常感谢!

 楼主| audhxsn 发表于 2025-9-2 11:46 | 显示全部楼层
这些是详细的代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

4

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部