一句话

监控电路本身坏了怎么办?ABIST(模拟内建自检)让芯片人为注入过压/欠压故障,验证每个比较器和报警链路都是好的——「监控器也要被监控」。

三档测试范围

档位测什么现象
仅比较器比较器输出对不对故障注入时间短于去抖时间,不真正触发安全动作
比较器 + 去抖逻辑报警链路前半段注入持续超过去抖时间,真正置标志
完整监控链比较器→去抖→输出全链路SS1/SS2 真的拉低(须在 NORMAL 态测)或 nINT 真的拉低

执行流程(MCU 配合)

  1. 使能要测的那路 LDO(没在用的比较器不用测)
  2. 写 ABIST_SELECT0/1/2 选择要测的比较器
  3. 写 ABIST_CTRL0:选安全路径还是中断路径、测试档位、单个还是序列
  4. 置全局启动位,芯片开始「注入故障」
  5. 轮询启动位:清零 + 收到中断 = 测试完成
  6. 读选择寄存器:选中的位被自动清零=该比较器合格;保持置位=它没通过

整个过程 MCU 还要继续喂狗、伺服 ERR——否则看门狗先报警,把测试结果搅浑。

完整链路测试的代价

在 NORMAL 态测「安全关断全链路」时,芯片会真的拉低 SS1/SS2 并自动切到 WAKE 态(不触发复位)。所以这类测试要么安排在安全时机,要么在 INIT/WAKE 态做(此时安全信号本来就低)。

PROG:烧录调试模式

MCU 烧录/调试时 obviously 喂不了狗。拉高 PROG 脚(或 SPI 写 0x3C[7]=1)进入程序模式:

  • 初始化定时器停止
  • 看门狗溢出、ERR 监控故障不再拉低 nRESET
  • 其他一切照旧:中断照报、状态机照切、SS1/SS2 照拉低

这个模式还能反过来当故障注入试验台:故意不喂狗,观察中断和安全路径反应,验证整条报警链。