我正在使用通过 MCU 上的 SPI3接口连接的8GB SD 卡、并发现有时在尝试打开文件时、某些迭代往往会使用 FR_DISK_ERR 失败
深入了解 TI 驱动程序内部的 FATfs 和 SDSPI 库后、我发现在将 CMD17发送到 SDCard 时会发生以下序列
CMD17 (0x51)+ u32_3_Buffer_len + u32_3_Buffer_len + u32_1_Buffer_len + u32_0_Buffer_len + crc_val (默认 val 0x01)--> tx
然后我们应该 等待一个有效的超时响应;10次尝试、应为0x00、以便在函数"SDSPITiva_diskRead "处进行下一个接收步骤
但是、我一直接收到0x67、该消息使读取操作无效、并显示错误 FR_DISK_ERR
此外、 有时此值为0x00、但之后、在函数"rcvr_datablock"内、我们收到一个无效的令牌、该令牌应该是0xFE、但我们收到的是0xFF、它也使使用相同的错误代码 FR_DISK_ERR 的读取操作无效
这个错误发生在一个随机的方式在一个特定的时间约7或9毫秒,但一直拒绝所有 SDCard 打开操作,这是真正恼人的
此外、我注意到这个问题从使令牌无效开始、然后是 send_cmd、接着是令牌、以此类推、直到 SDcard 使用正确的值进行响应