各位老师/大佬好,我在使用Nation开发板N32G45XCL的硬件SPI驱动SDXC卡时遇到了非常棘手的几个问题:
1. 我的SPI 初始化SD卡的代码只对Lexar牌的SDXC卡有效,对Sandisk和KIOXIA等牌子不起作用,在初始化Sandisk和KIOXIA等牌子时,通过串口反馈的CMD0的响应为0x00,与协议不符;
2. 对Lexar牌子的SDXC卡执行CMD17读操作过程中出现了这种情况:
上电后第一次读某个扇区成功,可以读到数据。
但是后续再读其它扇区,返回的数据依然是第一次的内容(像是缓存)。
3. 对Lexar牌子的SDXC卡执行CMD24写扇区操作的过程中遇到了这种情况:
CMD24 返回 R1=0x00
SD卡发送 Start Token 0xFE
发送完 512 字节数据 + 2 字节 CRC (0xFF,0xFF)后Data Response 一直是 0xFF(按规范应该是 0x05),且之后卡也没有进入 Busy如果马上再读这个扇区,会读到写入过的数据,但断电后数据全部丢失,推测只是写到缓存,没有写入 NAND。
由于缺乏高速调试手段,问题排查陷入了瓶颈。恳请有经验的大佬们提供一些排查思路或方向。非常感谢!
|