3. 通信不稳定:速率、误码与总线冲突
这一章的问题特征是"能通,但质量差":低速正常高速出错、两颗芯片抢一条总线。排查思路是先排除拓扑冲突,再逐步提速。
3.1 Q02 与 Flash 共用总线,Flash 能读、字库芯片不能读
现象
字库芯片和 Flash 共用 SPI 总线,Flash 可以正常读,字库芯片不行;或 MCU(如仅带 SFC 接口的型号)外扩 Flash 和字库芯片时两者冲突。
原因分析
按概率排序:
- CS 未独立,或访问字库芯片时 Flash 仍被选中;
- 总线空闲时某颗芯片 CS 为低,MISO 被占用;
- 字库芯片的 HOLD# 引脚上拉电阻未按规格书要求配置。
解决办法
- 确认两颗芯片 CS 完全独立,软件每次只拉低一颗。
- 所有 CS 加 10kΩ 上拉,空闲为高。
- 字库芯片的 HOLD# 上拉电阻按规格书要求改为 2K。
- 先隔离测试:断开 Flash 或飞线只接字库芯片,确认字库芯片本身能读。
验证方法
逻辑分析仪同时看两颗 CS 和 MISO:访问字库芯片期间 Flash CS 必须为高;字库 CS 为低时 MISO 应出现有效数据。
3.2 Q01 SPI 最高速率是多少,实际板子能跑到多少
现象
想知道硬件 SPI 和字库芯片的通信速率多少合适。常见型号规格标注的上限为 45MHz,但实际 PCB 很难达到。
原因分析
能否跑高速不只取决于芯片,还取决于:PCB 走线长度与阻抗、IO 电容负载、上拉 / 串阻、信号反射与串扰、地回流、电源去耦、SPI 模式与 dummy 周期、总线从设备数量。
解决办法
- 调试阶段先用 ≤1MHz,功能正常后再逐步提高(1 → 5 → 10 → 20MHz)。
- 每档做长时间连续读误码测试,不要只看"能显示"。
- 高速时:
- 缩短 CLK/MOSI/MISO 走线,避免跨分割;
- 串联 22—33Ω 匹配电阻(靠近源端);
- CS 加 10kΩ 上拉;
- 保证地回流连续;
- 使用快速读取指令(如 0x0B,带 dummy);
- 减少同总线从设备。
- 用示波器看芯片引脚处的 CLK 上升沿和 MISO 眼图,不要只测 MCU 端。
- 以对应型号手册的最高频率和时序参数为准(见字库芯片规格书)。
验证方法
连续读固定字模 10 万次,统计误码;同时监测 VCC 纹波。期望数据可取自各型号字库芯片数据验证表。

