解读 94 · 电压事故与保护:经验案例
解读对象:
microduck-replica/构建日志.md+docs/macOS舵机调试与图纸查看指南.md(§2.2/§4.2/§7)+duck-control/src/model.rs(shutdown 掩码)
需要的前置:解读 48(三道过压防线)、解读 91(电流与保险丝)
电压类故障有个共同点:现场表现离电压十万八千里——扫不到舵机、乱码、莫名停机。这一篇把仓库里真实记录过的电压事故收成一册,每条按"现象 → 原因 → 解法"读。
1. 最隐蔽的一起:电压错误位误伤停机
macOS 指南 §4.2 的设置表里有一行反直觉的操作:Shutdown(地址 18)寄存器去掉 Input Voltage Error 触发(出处:build-tutorial README),原因写得直白——电池带载电压波动会误停机。对照 model.rs:93-99:shutdown = 52 这个错误掩码在过载、过温、输入电压故障时锁存。舵机的保护逻辑没有错,错在把"瞬时跌落"当"真故障"。可迁移的一课:保护位要区分"越界"和"抖动",带载波动是常态,不是事故。
2. 翻车点清单(构建日志 2026-09-06)
连接表完成那条日志里埋了两个"新手最易翻车点",电压相关的那个:LDO 输入电容耐压 ≥25V——C6 挂在 8.4 V 总线上,用 10 V 件是长期超压(MLCC 还有直流偏压衰减)。这个案例的特殊性在于不会当场坏:电容常年工作在额定值 84% 以上,用寿命付账。同节的另一半是解读 89讲过的选型换人:HT7333-A(12 V 上限)→ HT7533-1(30 V)——真要上 3S,12 V 上限那颗就是下一次事故。
3. 共地:新手第一大故障
macOS 指南 §2.2 的铁律:"调试板(U2D2/FE-URT-1)的 GND 必须和舵机电源的 GND 连通……忘了共地 = 扫描不到舵机或乱码"。为什么?信号线的"高电平"是相对各自的地度量的,两个地不连通,同一根线在两端读到的电平就不是同一个数。排查表(§7)里还有两桩近亲:Pi 一动舵机就重启 = 供电不足(舵机电源绝不能取自 Pi 的 5V);Wizard 能连但读数乱跳 = 共地不良最常见。3S 路线的对策是系统性的:所有 GND 共地——电池、转接板、UBEC、Radxa、IMU(教程 §5.2)。
4. 一线之间的几道闸
硬件侧,接线表的三道过压防线把事故拦成三段:F1 PPTC(200 mA 保持/24 V)限流、D1 TVS SMF12A 钳尖峰、HT7533-1 自身 30 V 兜底。飞特路线另有一道软件闸:寄存器 14(REG_VOLT_MAX,0.1 V/LSB)是过压保护阈值,bench 脚本注释警告"12V 供电前必须确认它 ≥ 140,否则上电即过压保护"(hl2915_bench.py:49)——出厂值按低压机定,直接上 12.6 V 会被自己的保护拒之门外。规程侧三条:改线前断电;上电前万用表通断档确认正负没短路;先舵机上电、再插 USB(§2.2)。
你带走的收获
- 电压故障常伪装成通信故障:扫不到、乱码、读数乱跳,先查供电与共地。
- 保护位(电压错误触发、过压阈值)要随新电压窗重审——保护本身也会变成误动作源。
- 电容耐压不足不是当场爆炸,是寿命折损;按 2 倍工作电压取规格。
- 共地不是可选项:两个不连通的地,读到的就不是同一条总线。
- 分层设防:限流→钳位→耐压→软件阈值,每层各挡一种失效。