【发布时间】:2023-03-07 00:10:01
【问题描述】:
我正在使用微控制器 (PIC18F26J50) 与 G.Skill 4GB microSD 卡接口。
- SD 卡初始化成功,我从接收 0x01(空闲)R1 令牌变为 0x00(就绪)R1 令牌。
- 读取数据块有效,我能够读取分区 1 的位置并读取该分区的第一个扇区
但是,在尝试写入块时,我从未看到响应令牌。将原始块倾倒在卡上时。我看到数据确实写了,但没有正确对齐……最好的解释方法是用实际图片来说明
在重复之前应该用 0x01、0x02、0x03 等填充到 0xFF
此卡在 Windows 中运行良好。而且我能够正确地读取和写入数据。
调查,我发现我得到的响应是 0XCA,如果你右移你得到 0xE5,一个正确的响应令牌。数据本身向左未对齐。此外,似乎还写入了两个虚拟字节和令牌。纠正你得到的转变:
FF FF FE 00 01 02 03 04 05 06 07 08 09 0A 0B 0C
所以我删除了写入 2 个虚拟字节和 0xFE 令牌的代码,神圣的 s*#$ 卡在命令后立即开始写入数据,我认为这违反了规范!谁能确认这是否是 SDHC 卡的预期行为?或者这张卡只是运行一个真正的 s*#$ty SD 控制器? (我怀疑是后者,因为我有一张工作正常的 16GB 卡)
【问题讨论】:
标签: microcontroller sd-card spi