SDNAND 硬件电路设计:供电、上拉与走线全景
很多工程师把 SD NAND 当成一颗“插上就能用”的贴片卡画板时随便找个 3.3V 接上CLK 线拉到几厘米长上拉电阻时有时无。结果样机在常温下跑得挺好一到低温或者多负载同时上电卡就时识时不识。SD NAND 的电路设计并不复杂但供电、上拉、走线、上电时序这几件事是扣在一起的哪一环松了都能让初始化失败。这篇按系统视角把它们串一遍。协议有规定板子得自己兜住SD/SDIO 协议由 SD 协会SD Association制定SD NAND 走的是原生 SD2.0主机侧 STM32 的 SDIO、ESP32 的 SDMMC、NXP i.MX RT 的 USDHC、GD32 的控制器都是按这套协议设计的。协议把卡的电气窗口、识别时序写得很清楚但它管不到你板子上电源从哪来、线怎么走。协议保证“这么做能通信”能不能在你的板子上落地是硬件工程师的活。还有个细节SD NAND 同时支持 SDIO 和 SPI 两种接法引脚紧张时切 SPI 只需要 CLK、DI、DO 加一根 CS走线少一半但 SPI 模式下信号线该上拉的还是要拉别以为换了模式规则就变。供电单 3.3V 不等于可以随便接SD NAND 是单 3.3V 供电器件工作窗口 2.7V 到 3.6V。窗口看着宽真正麻烦的是上电瞬间。板上传感器、无线模块、屏几样负载同时启动时电流尖峰会把 VDD 往下拽。实际项目里测到过 VDD 被拉到 2.85V 以下、持续约 60ms 的波形正好撞在卡的初始化窗口上冷启动识别率只有 88%。整改时给 SD NAND 单独留一路 LDO和其他负载的电源隔开再在靠近引脚的位置放 10μF 加 0.1μF 的去耦组合低温下才稳。米客方德工业级的 MKDV1GIL-AST 是 1Gb SLC、P/E 10 万次、-40℃到 85℃、LGA-8 封装 6.0×8.0mm原生 SD2.0、SDIO/SPI 两种接口都能用参考设计里供电和去耦位置都标得比较细画板时直接照着摆能少走弯路。为什么初始化阶段这么娇气卡刚上电要做内部复位、读坏块表、建 FTL 映射这些操作对电源稳定性敏感。协议给的 1ms 是 VDD 进入工作窗口后的下限低温下电容充电慢、LDO 压差大时爬升也慢余量得自己加。去耦电容这时候干两件事10μF 是本地电荷池负载瞬间要电先由它顶上0.1μF 自谐振频率高专门压高频毛刺。低温下部分陶瓷电容容值会缩选 X7R 以上介质、按降额后的有效容值算别拿标称值当保底。上拉CMD 和每根 DAT 都别漏SD 总线是推挽加上拉的结构。CMD 和 DAT 线上要挂 10k 到 100k 的上拉常用 47k 左右。识别阶段 CMD 是开漏驱动线与逻辑全靠上拉把电平拉回来多个设备挂线时谁都能把线拉低而不会互相顶。1 位模式只用到 DAT04 位模式 DAT0 到 DAT3 每一根都得上拉少一根切换模式时就可能出幺蛾子。DAT3 还兼着卡检测的判据主机初始化时看这根线的电平判断卡在不在卡没上电时上拉也能把信号端维持在确定电平不让主机输入悬空乱跳。这根线的上拉不能省阻值放 10k 到 100k 区间内走线别绕远。走线CLK 是最该较真的那根CLK 是整条总线里跳变最快的信号也是最容易出波形问题的一根。布局上让它远离 DC-DC 的开关节点曾经有板子 CLK 和开关节点间距只有 0.4mm时钟过冲超过 VDD 的 1.2 倍主机端采样直接受干扰。常规做法是 CLK 做包地处理、单端按 50Ω 阻抗控、长度压在 25mm 以内必要时串一个 33Ω 的电阻压过冲。CMD 和 DAT 跟着 CLK 同组等长整组走在同一层、少换层过孔。回流路径也要管信号下方保证完整的参考地平面别让回流绕分割缝绕一次缝环路面积一大辐射和受干扰都跟着来。4 位模式下四根 DAT 同拍采样长短差太多建立和保持时间就被吃掉。33Ω 串阻放在主机驱动端放在卡端效果差一截换层时信号和地一起打过孔地孔贴着信号孔回流才不会断。容量规划上留了余地米客方德 SD NAND 的 2Gb、4Gb、8Gb 同系列料 Pin-to-Pin 兼容后面扩容不用重新画板只要确认供电余量够就行。上电时序软件别急着发时钟协议要求 VDD 稳定之后至少再等 1ms主机才能开始给 CLK。实际写代码常温下留 2 到 5ms 延时低温下放到 5ms别卡着下限。识别阶段的时钟频率不能超过 400kHz命令顺序也固定CMD0 软复位、CMD8 查电压范围、ACMD41 反复轮询直到卡报就绪全程低速等卡识别完成再切高速往上提频率。常看到的错误写法是 ACMD41 发一次、没等 busy 清零就继续走低温下卡内部初始化变慢按常温设的超时就会误判失败轮询次数留足。另外 CMD0 之前把 GPIO 复用先配好、时钟源提前使能见过控制器自己还没拿到工作时钟就往外发命令的低级错误卡当然不可能应答。很多“卡不识别”的板子抓到后面发现是电源还在爬坡主机已经把 CMD 发出去了这属于软件和硬件没对齐。供电、去耦、上拉、走线、时序这五件事按顺序查一遍八成的识别问题都能定位到。米客方德拿了 ISO9001 认证、是国家高新技术企业ECC BCH、坏块管理、磨损均衡、掉电保护这些方向有 6 项软著但芯片内部这些机制要正常跑前提还是板子把供电和信号交代干净。