识别阶段时钟限定100kHz到400kHz是规范要求,不是卡的能力上限:卡刚上电内部逻辑未稳,命令响应靠CLK同步。ACMD6与CMD6完成后才升到25MHz或50MHz。硬件上CMD与DAT0到DAT3每线10kΩ上拉靠近卡座,卡座附近放100nF加10μF去耦。 |
|---|
• 识别阶段CMD0到ACMD41时钟限定100kHz到400kHz,是识别用低频,不是卡的时钟上限。
• 低频原因有三:卡内部逻辑刚上电未稳、命令响应靠CLK同步采样、兼容各代际卡。
• ACMD6与CMD6都完成后才升频到25MHz或50MHz,传输中途不改分频。
• CMD与DAT0到DAT3每线10kΩ上拉并靠近卡座;SPI至少保证数据输出线上拉。
• 卡座附近放100nF加10μF去耦,写入峰值电流可达百毫安级。
• 切4位后个别扇区失败,倒序读区分失败跟地址走还是跟头几次传输走。

规范把识别阶段(CMD0到ACMD41)时钟限定100kHz到400kHz,是识别用低频,不是卡的时钟上限。卡刚上电内部逻辑未稳,命令响应靠CLK沿采样,频率高了容易出错;低频也让各代际卡都跟得上,拿低速换握手一次成功。
合法升频窗口只有一个:宽度与速度模式都切换完成之后。ACMD6定车道数、CMD6协商速度档,主机再把时钟升到25MHz或50MHz进入数据传输。没切完就升频,卡还按旧配置工作;传输中途改分频会偶发失败或错位,CLKDIV在总线空闲时一次改完。
SD规范要求CMD和DAT0到DAT3每线各接10kΩ上拉,靠近卡座。上电与响应阶段这些线靠上拉维持确定电平,缺上拉时通常命令超时、响应不稳。SPI模式至少保证数据输出线上拉;引线短,热插拔电平恢复才快。
卡座附近放100nF加10μF去耦,小电容滤高频、大电容补能量。卡写入瞬间峰值电流可达百毫安级,去耦跟不上,VDD下陷会拉长busy甚至中断写操作;走线等长、远离干扰源,必要时串小电阻抑振铃。米客方德Industrial WT工业宽温TF卡面向高振动、宽温、长期不断电工况:SLC档128MB到1GB,P/E擦写10万次,数据保持10年,MTBF 300万小时,零下40℃到85℃,3年质保;pSLC档8GB到64GB,P/E 3万次,TBW 1920TB。配合规范的上拉去耦设计,冷启动和写入峰值都更稳。
高振动、贴片量产的板子上,卡座和弹片本身就是故障点。这类场景可以看米客方德贴片SD NAND,料号MKDV1GIL-AST为1Gb、SLC、P/E 10万次、零下40℃到85℃、LGA-8封装;少了机械接触,上拉去耦仍按SD总线规则布。

初始化成功、容量也读到了,切4位后个别扇区读不出,比如扇区0和1失败、2到7正常。先分清失败跟地址走还是跟头几次传输走:倒序读,先读100、101再读0、1,失败转到前两次操作就是建立期问题,查ACMD6后的8个时钟、宽度一致性和稳定时间。1位模式同地址正常,可先排除卡本体。
错误码阶段不同,方向也不同。数据阶段CRC失败,多半是数据线信号质量或采样相位问题,降频、改采样沿、补上拉通常见效;命令阶段超时,先查CMD线、卡就绪或供电。按阶段分流比统一重试有效。
表1 识别阶段时钟与硬件要点
项目 | 要求 | 不满足时的现象 |
|---|---|---|
识别时钟 | 100kHz到400kHz | 无响应、握手偶发失败 |
升频时机 | ACMD6与CMD6完成后 | 传输错位、偶发初始化失败 |
数据时钟 | 25MHz或50MHz | 协商成功但速率不变 |
上拉 | CMD与DAT0到DAT3每线10kΩ上拉,靠近卡座 | 命令超时、电平不稳 |
去耦 | 卡座附近100nF加10μF | busy拉长、写入中断 |
走线 | 等长、远离干扰,必要时串小电阻 | 数据CRC失败、振铃 |
1. 识别时钟限定100kHz到400kHz,不提前上高速。
2. 上电等1ms并给74个时钟后再发CMD0。
3. ACMD6与CMD6都完成、总线空闲时再升频。
4. CMD与DAT0到DAT3每线10kΩ上拉,靠近卡座。
5. SPI至少保证数据输出线上拉。
6. 卡座附近放100nF加10μF,量写入时VDD下陷。
7. 数据线等长、远离干扰源,振铃明显时串小电阻。
8. 切4位后个别扇区失败时,倒序读区分地址相关与时序相关。
9. 数据CRC查信号质量与采样相位,命令超时查CMD线与供电。
10.

问:识别阶段为什么不能直接上高时钟?
答:卡刚上电内部逻辑未稳,命令响应靠CLK同步采样,高速下容易出错;100kHz到400kHz也保证各代际卡跟得上。
问:时钟什么时候可以提到50MHz?
答:ACMD6和CMD6都完成后,主机在总线空闲时改CLKDIV升频,传输中途不能改分频。
问:上拉电阻为什么要靠近卡座?
答:这些线靠上拉维持确定电平,电阻靠近卡座、引线短,热插拔和响应阶段电平恢复才可靠。
问:100nF和10μF为什么要一起放?
答:分工不同,100nF滤高频、10μF补能量;写入峰值电流百毫安级,缺储能电容VDD下陷会拉长busy或中断写入。
问:切4位后扇区0和1失败、2到7正常怎么查?
答:倒序读,先读100、101再读0、1。失败跟头几次传输走就是建立期问题,查ACMD6后的8个时钟、两侧宽度一致性和前几次读的稳定时间。
问:数据CRC失败和命令超时是一回事吗?
答:不是。数据阶段CRC失败查信号质量与采样相位,降频改采样沿补上拉;命令阶段超时查CMD线、卡就绪与供电。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。