一个 ADC 引脚接了 5V,结果所有通道采样都不准了——SAR ADC 过压污染机理与输入保护设计 结论先行SAR ADC 是多路复用的所有通道共用同一个采样保持电容 比较器 基准网络。当任一输入引脚电压超过电源轨AVD时引脚上的 ESD 保护二极管会正偏导通把过压电流注入到内部共享节点导致不只是该通道而是所有通道的采样结果集体偏移。这次客户现场接地通道读回约 1.5V、去掉 5V 后 3 个通道立刻恢复正常正是同一根因的典型表现。问题现象回顾客户现场描述观测项现象判断某引脚万用表实测3.7V已超过满量程 3.3VADC 读回只有 2.2V不是饱和值异常引脚电压为 0接地ADC 读回约 1.5V满量程的一半严重偏移两种软件方式DMA / 查询寄存器都读不对排除驱动层差异同款代码在开发板全部正常排除软件逻辑错误开发板参考 VS 客户板参考2.5V VS 3.3V确认了换算公式差异但非根因板子上有一路 ADC 输入接近 5V真正的根因去掉这一路 5V 输入后3 个通道恢复正常坐实为过压污染最关键的诊断线索去掉那一路 5V 之前接地读 1.5V去掉之后立刻正常。这说明问题不在软件、不在单通道而在过压通道对整颗 ADC 共享前端front-end的污染。1. 为什么一个引脚过压会影响所有通道1.1 SAR ADC 的内部结构决定一损俱损我们这颗 MCU 内嵌的是12bit 逐次逼近型SARADCIP 型号为SADTS40012U55C。它的输入结构数据手册 §8.1输入等效模型RIN ≈ 200ΩTypCIN 15pF输入通道VIN1~VIN16共 16 路单端 VBATVR_EX1~3 温度传感器共用同一个采样保持网络输入电压范围VREFN0V ~ VREFP所有的模拟输入引脚通过一个**多路复用开关MUX**接到同一个采样电容上之后再进入比较器VIN1 ──┤ VIN2 ──┤ ┌─────────────┐ VIN3 ──┼── MUX ────┤ 采样保持 │ ... │ │ C15pF │──► 比较器 ──► SAR 逐次逼近逻辑 ──► D[11:0] VBAT ───┤ └─────────────┘ VTEMP ────┘因为采样保持电容、比较器、基准偏置是 16 路共用的任何一路把过大的电压/电流灌进这个共享网络都会改变采样时刻的建立电平从而让其他通道的读数一起漂移。1.2 过压路径ESD 二极管正偏导通模拟输入引脚内部都有一个到电源轨的ESD 保护二极管钳位到AVD与AVSAVD3.3V │ ├─►►│ESD 二极管正偏导通 │ VIN 引脚(输入 5V) ──► 内部 MUX ──► 采样节点 │ ├─│◄◄ESD 二极管 │ AVSGND正常输入0VREFP时ESD 二极管截止不参与工作。**一旦输入超过 AVD VD约 0.60.7V顶端 ESD 二极管立即正偏导通**把过压电流直接注入到 AVD 轨与内部偏置网络注入电流抬升/扰动局部模拟电源与衬底改变比较器与基准的偏置点MUX 开关传输门被过应力损伤产生漏电与电荷注入charge injection采样节点电位被拉高——这正是接地 0V 却读到约 1.5V的直接原因。类比就像一栋楼的供水管某一家把水龙头接到超压的水源上水会顺着共用水管倒灌到整栋楼其他用户开龙头都是带压偏高的水。1.3 为什么读回的是半个满量程而不是饱和客户贴 5V 时接地通道读1.5V而满量程是 3.3V1.5V 恰好接近 0.47 倍满量程。这不是正常的饱和读数而是共享输入节点被注入偏置后的悬浮电平。这提示过压已经改变了采样网络的建立条件属于前端污染而非简单的超出量程。2. 规格书里的红线到底引脚最大能扛多少伏这是本次需要向客户强调的核心边界。来自AS32X601数据手册V1.2.pdf参数工作范围Operating绝对最大值Abs Max说明AVD模拟电源1.62 ~3.63V-0.2 ~3.9V客户所说的引脚最大耐压 3.63V即指此VDD数字电源1.08 ~ 1.32V-0.2 ~ 1.8VSAR 输入范围VREFN ~ VREFP—正常转换必须在参考范围内VREFP外部 ≤ AVD—外部参考不能大于 AVD两档红线要分清正常工作红线 VREFP这里 2.5V/3.3V超出后 ADC 只能读满码饱和读不回真实值但一般不至于危害芯片。安全耐久红线 AVD 3.63V再往上ESD 二极管正偏、开始向内部注入电流可能损伤芯片并污染其它通道本次就是。物理极限 Abs Max 3.9V超过即有伤害风险不可保证器件安全工作。结论客户那路 5V 输入已经明确越过了 3.63V 的耐久红线也大大超过了 3.9V 的物理极限属于严重违规使用。3. 排查流程可直接复用的实战清单遇到ADC 读数集体不准按下面顺序定位能快速收敛步骤1 万用表实测每路 ADC 引脚实际电压 └── 有没有 VREFP、甚至 AVD(3.63V) 的通道 ← 最危险 步骤2 逐路断开疑似过压输入单通道隔离法 └── 断开后其它通道是否恢复正常 ← 本次靠这步定位 步骤3 找一路已知基准做标定测试 ├── 接地 → 应读 0 └── 接已知 1.0V → 应读 1.0V └── 若接地读约半个满量程 → 前端被污染而非软件问题 步骤4 核对参考电压 VREFP 与实际电路 ├── 开发板 VREFP2.5V客户板3.3V → 换算公式 VN/4096*VREFP 必须同步改 └── 万用表量 VREFP 引脚是否稳定 步骤5 核对软件两种读法是否一致 ├── DMA 方式 / 寄存器查询方式 └── 两者都错 → 说明问题在硬件前端不在驱动 步骤6 检查原理图是否有串压/分压/上下拉路径 └── 外部信号是否被分压电阻、保护二极管、相邻网络串入电压本次排查中两种软件方式都错 开发板正常这两条直接把软件 bug排除掉接地读 1.5V把单通道问题排除掉断开 5V 后恢复正常则一锤定音。4. 正确的应用设计输入保护与基准设计规范要把话说在前面ADC 输入引脚本身就是娇贵的外部信号不能直连必须按规范做前端设计。4.1 输入电压必须落在 VREFN ~ VREFP单端模式下输入信号有效范围就是0V ~ VREFP。凡是可能超过 VREFP 的信号必须先分压或钳位再进 ADC。4.2 外部输入保护电路三种典型做法① RC 低通 限流最常用成本最低串联电阻 R 既能作抗混叠滤波又能限制过压时流进 ESD 二极管的电流信号源 ── R(串联限流/滤波) ──┬──── VIN 引脚 │ C(对地) ── AVSR 取值要兼顾采样建立时间SAR 的CIN15pFRC 时间常数过大会导致建立不足、读数偏小。需要结合ST_SEL[3:0]增加采样时间见 4.4。② 肖特基钳位信号源可能超压时用外部肖特基如 BAV99把输入钳到VREFP0.3V与AVS-0.3V之间把过压电流旁路到电源轨保护引脚VREFP │ ├─►│─┐ 信号源 ── R ──┼──┬── VIN 引脚 │◄─├─┘ │ AVS③ 电阻分压大信号降压到量程内如果被测信号本身就有 5V、10V可用分压网络将其降到0 ~ VREFP。注意分压后的等效源阻抗变高必须用运放缓冲驱动或以加大采样时间弥补。4.3 基准电压 VREFP 的设计外部基准VREFP引脚电压不能大于 AVD且需要良好去耦。按数据手册VREFP对AVS建议并≥10µF 大电容 0.1µF 陶瓷电容VREFBI_O负载电容1~4.7µF。满量程与换算公式必须一致客户从 2.5V 参考改到 3.3V 时软件公式必须同步从N/4096*2.5改成N/4096*3.3。参考不一致正是第一个排查点但本次不是根因。4.4 采样时间选择ST_SEL不能被忽略数据手册给的默认采样时间是3×T1/FCLOCK。若前端串联了较大电阻、源阻抗偏高采样电容CIN15pF建立不满读数会整体偏小。此时应增大ST_SEL[3:0]最大 640×T宁可牺牲一点速度换精度。