Skip to content
进阶#调试#上电检查#限流#分而治之#方法论

硬件调试方法论与上电检查 ​

一块新板子不工作,新手的第一个动作往往是换芯片、重烧固件、再拔插一次;老手的第一个动作是拿表。这两者的差别不在经验多少,而在有没有把"测量"变成纪律:动手之前先有一个可证伪的假设,测量之前先有一个数值判据,每次只改一个变量,改完就记录。这一章不讲某一个具体故障怎么修,它讲的是把"从现象到根因"这件事拆成可以照着执行的步骤——二分收缩、故障树、单变量、记录与复现,最后用一棵完整的"上电无反应"排查树和一个"通信偶发丢包"的定位过程把方法走满一遍。

1 设计动机:为什么"先测量后猜"必须写成纪律 ​

<>

场景一:差 0.25V 的电压,猜了三次。 3.3V 轨实测 3.05V,比标称低 7.6%,已经超出 ±5% 判据。按"猜"的顺序换 LDO、换输出电容、减小负载,每次拆焊 15 分钟加复测 5 分钟,共 60 分钟,故障依旧;最后量 LDO 输入只有 3.55V,压差 0.50V 已经贴着 dropout,10 分钟就定位到"输入欠压"而不是"输出不够"。

场景二:同时改三处,等于没改。 上拉电阻、滤波电容、固件延时一起改,故障消失了,但不知道是哪一处起效。两周后换元件批次,同样的现象回来,还得从头来。一次只改一处,三次实验各 10 分钟,换来三条确定的因果关系。

场景三:偶发故障不记录,等于没遇到。 设备每天随机死机一次,现场不记录温度、电压、复位原因,两周没有进展;加一张记录表后三天拿到六次现场数据,发现复位原因寄存器全部指向"电源跌落",定位到负载开关的软启动不足。

这三种浪费有一个共同点:故障空间没有被测量切开,而是被猜测搅乱了。 调试的成本几乎全部来自"问题空间有多大"和"每次尝试能排除多少",而不来自"元件有多难换"。两个数的对比很直白:

方法候选原因数平均尝试次数结论可信度可复用性
穷举换件约 10 个可疑点5 次(平均撞到一半)低:换好了也不知道为什么无,下次重来
二分测量1000 个节点\lceil\log_2 1000\rceil=10 次高:每一步都有判据高,方法可迁移
同时改多处4 个变量2^4=16 种组合极低:起效的可能是交互作用负,制造新问题

不按方法走,会摔在这四个具体的坑上,每个坑都能用数字说清:

  1. 把"偶发"当"玄学"。 复现概率 p=1\% 时,测 20 次全部正常的概率是 0.99^{20}=0.818——八成以上什么都没证明。要 95% 把握看到至少一次,需要测 298 次。
  2. 一次改多个变量。 4 个二值变量有 2^4=16 种组合,靠试完所有组合找根因,时间成本是单变量法的 4 倍以上,而且交互作用还会骗人。
  3. 没有数值判据。 "看起来正常"不是判据。3.3V 轨的 ±5% 判据是 3.135~3.465V,实测 3.10V 已经超差,却被"差不多"放过,后面所有结论都建在流沙上。
  4. 不带电检查直接上电。 一次电源对地短路,电流只受电源限流能力约束,轻则烧稳压器,重则烧板。先做通断检查只花两分钟。

所以"先测量后猜"不是态度问题,是效率问题:它把"我猜是它"换成"我量到它不是它",每一次否定都在真实地缩小故障空间。

2 定义与直观:调试是"收缩故障空间"的过程 ​

调试(debugging)可以定义成一个受约束的搜索过程:给定一个可观测的异常现象,用测量把候选原因集合 S 反复切分,直到 |S|=1,并且这个唯一元素能被一条可重复的测量证据支持。定义里有四个条件,缺一个方法就退化成瞎试:

条件反例具体要求
现象可观测、可复现"有时候不太对"写成"3.3V 轨纹波 120mVpp、开关频率处峰尖"这样的客观描述
假设可证伪"可能是干扰"假设必须预测"如果成立,在某个点应测到某个范围内的值"
测量有判据"电压正常"判据必须带数字和单位,如 3.135\sim3.465\ \text{V}
改动单变量同时换电容和固件一次只动一处,动完立即复测同一判据
<>

一根 1000 米长的电缆中间断了,你没有 X 光机。最笨的办法是从一头开始每米测一次,最多 1000 次;聪明的办法是在 500 米处测一次——通,则断点在 500~1000 米;不通,则在 0~500 米。每测一次,嫌疑长度减半,\lceil\log_2 1000\rceil=10 次就能把范围压到 1 米以内。

类比的边界有两个。第一,电信号不是"通/不通"两种状态:电压偏低、纹波偏大、时序临界都是"中间态",所以真实的判据往往不是二值,而是带容差窗口的比较——窗内通过、窗外失败,判据本身要先用噪声水平验证过。第二,二分要求每一刀都切在"能区分"的地方:如果你在 500 米处测的是另一根线,这一刀就白切了。硬件调试里"切错组合"的典型是:怀疑电源却去量信号,怀疑地却去换芯片。

上电五级流程:不通电查短路→限流上电看电流→量各路电压→查时钟复位→逐级加载功能
上电五级流程:不通电查短路→限流上电看电流→量各路电压→查时钟复位→逐级加载功能

上电检查之所以要分成五级,是因为每一级都是下一级的前提:短路没排除就上电,可能直接烧;电流异常就量电压,读数没有意义;电压不对就查时钟,时钟可能根本起不来;时钟没起振就去调固件,等于在沙地上盖楼。"任一级不通过就停下"这条纪律,比任何一条具体判据都值钱。

先建立一张"从现象反推故障类型"的对照表,它决定你第一次拿表该往哪儿放:

现象首选测量典型根因方向判据(典型量级,以设计值为准)
上电完全不启动,指示灯不亮限流电源看总电流短路、反接、保险丝、使能未拉高、线束电流低于预期 10% 或顶到限流点
有电流但不运行各路电压 → 复位 → 时钟欠压、复位未释放、晶振不起振、BOOT 错电压 ±5%、NRST 高于 0.7V_{DD}、时钟有跳变
间歇重启/死机电源瞬态、复位原因寄存器、温度负载阶跃跌落、看门狗、焊点热胀冷缩、EMC跌落幅度与复位阈值比较
发热异常红外/热电偶、各路电流、效率短路、驱动直通、损耗过大、散热不良温升超过设计结温余量
精度差/漂移基准、地电位、源阻抗、建立时间基准噪声、地环路、采样建立不足、温漂误差折合 LSB 或 ppm
通信误码/丢包差分眼图、共模电压、终端匹配反射、共模超范围、地环路、时钟偏差眼高/眼宽、共模在 -7\sim+12\ \text{V} 内

这张表不是决策树,它只回答"第一刀往哪切"。真正的树要针对具体系统画,见 §4.1。

3 定量关系:判据、二分收敛与复现样本数 ​

3.1 二分的收敛速度 ​

设候选原因(或候选节点)有 N 个,每次测量能把范围切成两半,需要的测量次数是:

n=\left\lceil\log_2 N\right\rceil
  • n:测量次数(次);
  • N:候选数(个),量纲为 1;
  • \lceil\cdot\rceil:向上取整。

代入 N=1000:\log_2 1000=9.966,向上取整得 n=10 次。与穷举的 1000 次相比,效率比是 1000/10=100 倍。这个式子还给出一个工程含义:候选空间每扩大 10 倍,只需要多做约 3.3 次测量(\log_2 10=3.32)。所以"系统复杂"不该成为不测量的理由,真正拖慢调试的是"切不中"。

适用条件:每次测量的判别可靠性要足够高。若单次测量有 30% 概率误判,二分树会被污染,实际次数迅速接近随机搜索——这就是为什么判据要先经过噪声验证(§3.3)。

3.2 先验概率:先测最可能坏的那一支 ​

二分假设两支概率相等。真实系统里各支的失效率差别很大,此时"先测哪一支"会影响期望次数。设第 i 类原因的先验概率为 p_i,顺序测试的期望测量次数是:

E[n]=\sum_{i=1}^{k} i\cdot p_{(i)}

其中 p_{(1)}\ge p_{(2)}\ge\cdots\ge p_{(k)} 是按概率从大到小排序后的先验。信息论给出的下界是熵:

H=-\sum_{i=1}^{k}p_i\log_2 p_i

以四类原因为例:电源 40%、固件 25%、时钟 20%、复位 15%。

先测电源、再固件、再时钟、再复位:

E[n]=1\times0.40+2\times0.25+3\times0.20+4\times0.15=0.40+0.50+0.60+0.60=2.10\ \text{次}

若反过来先测复位:1\times0.15+2\times0.20+3\times0.25+4\times0.40=2.90 次。两种顺序差 0.8 次测量,按每次 20 分钟算就是 16 分钟。熵下界是:

H=-(0.40\log_2 0.40+0.25\log_2 0.25+0.20\log_2 0.20+0.15\log_2 0.15)=1.90\ \text{bit}

即任何策略平均都至少要 1.90 次测量,顺序测试的 2.10 次已经很接近。结论:把历史故障率统计出来,按概率从高到低排测量顺序,是唯一能在不增加仪器的情况下缩短调试时间的办法。

3.3 判据必须比噪声高出一截 ​

测量系统本身有噪声。要区分两个电平,差值至少要达到噪声有效值的 3 倍,否则读数在判据附近来回跳:

\Delta V_{min}\ge 3V_{n,rms}

以 12 位 ADC、3.3V 基准为例,1 LSB 是:

V_{LSB}=\frac{3.3}{2^{12}}=\frac{3.3}{4096}=8.06\times10^{-4}\ \text{V}=806\ \mu\text{V}

要用测量判断"是否偏差 1 LSB",测量系统噪声必须满足 V_{n,rms}\le 806/3=269\ \mu\text{V}。普通示波器在最灵敏档的底噪常在百微伏到毫伏量级,长地线引入的噪声更大——所以"示波器上看不出来"经常是测量分辨率不够,不是电路没问题。

反过来,如果一条判据的余量本来就只有噪声的 2 倍,正确的动作不是"多测几次取平均",而是先改善测量(换探头、缩短地线、加带宽限制、用差分探头),否则你只是在测仪器。

3.4 偶发故障要测多少次 ​

设单次试验能复现故障的概率为 p,要做 n 次独立试验才有 C 的把握至少看到一次:

n=\frac{\ln(1-C)}{\ln(1-p)}
  • C:置信水平(0~1),无量纲;
  • p:单次复现概率(0~1),无量纲;
  • n:试验次数(次)。

代入 p=0.01、C=0.95:n=\ln(0.05)/\ln(0.99)=(-2.996)/(-0.01005)=298 次,取整 299 次。要 99% 把握:n=\ln(0.01)/\ln(0.99)=458 次。这就是"偶发故障不能靠碰"的定量理由。

反向用法更常用:做了 n 次试验一次都没复现,故障率的 95% 置信上限约为

p_{max}\approx\frac{3}{n}

n=300 时精确值是 1-0.05^{1/300}=0.993\%,近似式给 3/300=1\%,两者相差 0.7%,工程上够用。所以"连续 300 次没复现"才勉强能说故障率低于 1%,而"测了 20 次没复现"什么也说明不了。

3.5 单变量原则与组合爆炸 ​

若同时改动 k 个二值变量(改/不改),要覆盖所有组合需要 2^k 次实验:

N_{comb}=2^{k}

k=4 时 N_{comb}=16,k=5 时 32。一次只改一个变量时只需 k 次实验,且每次的结论都是确定的——代价是无法发现"只有两个变量同时改才出现"的交互作用。工程做法是:先单变量扫描找到主效应,再对两个可疑变量做 2\times2 的四组交叉验证,这比一上来做全因子实验省一个数量级。

3.6 时间常数:什么时候"等一等"就够了 ​

指数建立过程的判据是时间常数 \tau=RC:

V(t)=V_\infty\left(1-e^{-t/\tau}\right)

t=\tau 时到 63.2%,t=5\tau 时到 1-e^{-5}=99.33\%。所以"等 5 个时间常数"是通用判据:R=10\ \text{k}\Omega、C=100\ \text{nF} 时 \tau=10^4\times10^{-7}=1\ \text{ms},等 5ms 再读数。需要 12 位精度时判据更严:\ln(2^{13})=9.01,要等 9 个 \tau 才能把建立误差压到 1 LSB 以下。这一条在电源软启动、基准建立、采样保持的测量里反复用到。

4 典型计算:两棵完整的排查树 ​

4.1 完整故障树:上电无反应 ​

"上电无反应"是最常见也最容易乱猜的现象。把它画成树,每个节点都带判据,就能保证不漏支路、不跳级:

上电无反应排查树:先看电流,再看电压,再看复位与时钟,最后才查固件
上电无反应排查树:先看电流,再看电压,再看复位与时钟,最后才查固件

树的六个节点与判据:

节点测量点期望/判据不通过时的下一步
① 总电流限流电源读数预期 120mA,限流设 180~240mA(1.5~2 倍);低于 12mA 或顶到限流都异常低于 12mA 查断路/反接/使能;顶限流查短路
② 各路电压每路电源输出3.3V 轨 3.135~3.465V(±5%);内核 1.8V 轨 1.71~1.89V查电源级:输入压差、反馈分压、负载过重
③ 复位NRST/复位 IC 输出释放后高于 0.7V_{DD}=2.31\ \text{V};低电平低于 0.3V_{DD}=0.99\ \text{V}查上拉、RC、复位 IC、按键、看门狗
④ 时钟晶振引脚或 MCO 输出有稳定跳变,频偏在晶振标称范围内(典型 ±20~50ppm)查负载电容、晶振、焊接;别用探头直接点晶振引脚
⑤ BOOT/固件BOOT 引脚、串口/SWDBOOT 电平符合启动模式;下载口能识别查 BOOT 电阻、固件、下载线、供电时序
⑥ 功能加载逐个外设每加一个外设总电流与功能都对回到①重测,定位加载瞬间的异常

完整走查一遍。 一块 12V 供电、3.3V 与 1.8V 双轨的 MCU 板,"上电无反应":

  1. 不通电目视 + 通断:3.3V 对地 OL(高阻),无短路,允许上电。
  2. 限流上电:限流设 240mA,实测静态 35mA。预期 120mA 是带外设满载的值,空载 35mA 在合理范围,节点①通过。
  3. 量电压:3.3V 实测 3.29V(判据 3.135~3.465V,通过);1.8V 实测 0.00V,节点②不通过——停在这里,不往下走。
  4. 查电源级:1.8V 由内部 LDO 产生,量其输入 3.3V 正常、输出 0V、使能脚 0.40V。使能阈值典型 1.2V(以数据手册为准),0.40V 远低于阈值,判定"使能未拉高"。
  5. 根因:使能脚在原理图上悬空,设计意图是靠内部上拉,但该脚高阻,板上并联的 100kΩ 下拉与漏电流形成分压,实测被拉到 0.40V。
  6. 修复:使能脚加 10kΩ 上拉到 3.3V,上拉电流 3.3/10^4=0.33\ \text{mA},远大于该脚漏电流(典型 µA 级),分压被压住。复测 1.8V 出来,程序运行,节点③④⑤依次通过。

这个例子的价值不在"使能脚要上拉",而在第 3 步停下来:如果这时去怀疑固件、去重烧程序,会浪费几小时,而且 1.8V 缺失这个硬证据一直摆在那里。

4.2 完整算例:通信偶发丢包的系统化定位 ​

现象(客观化后的记录):

项目记录
链路RS-485 半双工,115200bps、8N1,电缆 50m 双绞屏蔽
丢包率约 1 帧 / 4200 帧(连续 10 万帧统计,24 帧丢失)
时间相关性全部落在电机启停后 300ms 窗口内;静置时 0 丢失
数据相关性与帧长、内容、校验方式无关,丢帧位置随机
单板相关性换从站板仍复现,换主站板仍复现
温度相关性-10\sim+45\ ^\circ\text{C} 无差异

第一步,把现象变成可算的判据。 位时间与帧长先算出来:

t_{bit}=\frac{1}{115200}=8.68\ \mu\text{s},\qquad t_{frame}=80\times8.68\ \mu\text{s}=694\ \mu\text{s}

(8 字节数据加帧头帧尾按 80 位估。)丢包率换成误码率:

\text{BER}=\frac{1/4200}{80}=2.98\times10^{-6}

第二步,先算三个"可以排除"的项,别急着拆机。

反射:电缆 50m,双绞线传播速度约 0.66c=1.98\times10^8\ \text{m/s},单程延迟

t_d=\frac{50}{1.98\times10^8}=253\ \text{ns},\qquad 2t_d=505\ \text{ns}

往返 505ns 只占位时间 8.68µs 的 5.8%,且两端各有 120Ω 终端(\Gamma=(120-120)/(120+120)=0),反射不成立。若把速率提到 1Mbps(位时间 1µs),往返延迟就占半个位,那时终端与线长才会变成主因——同一个链路,速率不同,结论不同。

共模超范围:RS-485 接收器共模范围是 -7\sim+12\ \text{V}(TIA-485 要求,具体芯片以数据手册为准)。差分探头同时测 A、B 对地:静止时共模 4.2V,电机启停瞬间峰值 6.8V,仍在范围内,排除。

幅度不足:带 60Ω 负载(两个 120Ω 并联)测差分幅度 2.4V,接收器阈值 ±200mV,余量 2.4-0.2=2.2\ \text{V},排除。

第三步,抓现场。 用差分探头、单次触发、触发条件设为"差分幅度小于 1.0V",同时用电流探头夹电机线做时间基准。抓到的波形是:差分信号上叠加一个宽约 40ns、幅度 0.9~1.1V 的负向尖峰,出现时刻与电机换向尖峰同步。这与"随机位置的整帧丢失"吻合:尖峰落在空闲期会被 UART 误判为起始位,收完一帧发现校验错,整帧丢弃。

第四步,给假设排顺序(先验)。 尖峰的来源有三个候选:① 屏蔽层两端接地形成地环路,电机共模电流经屏蔽层耦合;② 信号线与电机线并行捆扎,容性/感性串扰;③ 收发器电源去耦不足。按"改动成本 × 先验概率"排序,先验证①(改接地只需拆一端屏蔽)。

第五步,改一个变量。 断开屏蔽层远端接地(改为单端接地),复测 2 万帧,仍有 3 帧丢失——①不是全部原因,但它把丢包率从 1/4200 降到 1/6700,说明共模路径确实存在。保留这个改动,再动下一个变量:在接收端加共模扼流圈(100µH,典型量级)。

第六步,根因的定量核算。 共模瞬变经"线对—屏蔽层"的不对称电容转成差模电流。设不对称电容 \Delta C=1\ \text{nF}、共模电压变化率 dv/dt=15\ \text{V}/\mu\text{s}:

i_{cm}=\Delta C\frac{dv}{dt}=1\times10^{-9}\times15\times10^{6}=15\ \text{mA}

这 15mA 流过终端等效电阻 60\ \Omega,产生差模电压:

V_{dm}=15\times10^{-3}\times60=0.90\ \text{V}

与实测 0.9~1.1V 吻合。根因是"屏蔽层两端接地 + 线对不对称电容"共同构成的共模—差模转换,不是收发器坏了,也不是协议有问题。

加 100µH 共模扼流圈后,在尖峰的主要频率分量(约 1/(2\pi\times40\ \text{ns})\approx4\ \text{MHz})上,扼流圈阻抗为:

Z_{cm}=2\pi fL=2\pi\times4\times10^{6}\times100\times10^{-6}=2513\ \Omega

共模电流被分压到:

i'_{cm}=15\ \text{mA}\times\frac{60}{2513+60}=0.35\ \text{mA}

转换出的差模噪声:

V'_{dm}=0.35\times10^{-3}\times60=21\ \text{mV}

21mV 只有接收器阈值 200mV 的 10.5%,判据通过。

第七步,修复与验证。 三项措施一起上(屏蔽单端接地、共模扼流圈、隔离收发器),验证判据是"连续 10^6 帧零丢失 + 1000 次电机启停零丢失"。实测 10^6 帧 0 丢失,按 §3.4 的近似,此时真实丢包率的 95% 上限约 3/10^6=3\times10^{-6},比修复前的 2.4\times10^{-4} 低两个数量级,结论成立。

第八步,防再发。 把"屏蔽层单端接地""电机线与信号线分开走线""RS-485 接口预留共模扼流圈位置"写进接口设计规范;把"电机启停 + 连续 10 万帧"加入出厂测试项。

5 工程含义:判据数量级、仪器与被测的相互影响 ​

5.1 常用判据的数量级 ​

量判据(典型量级)说明
电源电压标称 ±5%(LDO 常按 ±2%)先看电源再看负载
总电流预期值的 1.5~2 倍设限流顶到限流即视为异常
复位释放电平高于 0.7V_{DD}低电平低于 0.3V_{DD}
时钟频偏晶振标称 ±20~50ppm用频率计或 MCO 输出测
纹波开关频率处峰峰值,与设计值比测量带宽要够,别用长地线
温升结温留 20~30 °C 余量用热阻算,别用手摸
通信眼高大于接收阈值 3 倍阈值 ±200mV 时眼高 ≥600mV
数字时序建立/保持各留 20% 余量见时序分析与亚稳态

5.2 仪器会改变被测电路 ​

测量不是"旁观",探头本身就是负载。10X 无源探头典型输入阻抗 10\ \text{M}\Omega\parallel10\ \text{pF}(典型量级,以探头手册为准)。10pF 在 1MHz 的容抗:

X_C=\frac{1}{2\pi fC}=\frac{1}{2\pi\times10^{6}\times10\times10^{-12}}=15.9\ \text{k}\Omega

若被测节点是 100kΩ 的高阻节点、信号源内阻也是 100kΩ,探头的 15.9kΩ 并在节点上,读数只剩:

\frac{13.7}{100+13.7}=12.1\%

也就是说,探头一碰,节点电压掉到原来的八分之一。这类"一测就变、拿开就正常"的现象,根因往往在探头而不在电路。

带宽判据同样要算。信号上升时间 t_r=10\ \text{ns} 时,边沿的拐点频率:

f_{knee}\approx\frac{0.35}{t_r}=\frac{0.35}{10\times10^{-9}}=35\ \text{MHz}

示波器带宽至少取 3 倍,即 105MHz;要看清过冲与振铃,取 5 倍即 175MHz。用 100MHz 的机器去看 10ns 边沿,看到的过冲是仪器自己的。 探头的接地方式比带宽更容易出错:长地线夹引入几十 nH,与被测环路一起振铃,测出来的"毛刺"可能是探头回路自己的谐振,详见示波器:探头、触发、带宽与接地。

5.3 记录与复现:把"经验"变成"数据" ​

一张合格的调试记录至少包含:时间、环境温度、供电电压、总电流、各路关键电压、现象描述、本次改动、改动后的测量结果。记录的作用有三个:

  1. 防止重复劳动:换人接手时不用重新问一遍"你试过什么"。
  2. 建立先验:十次故障里有六次是电源,下一次就先测电源——这正是 §3.2 的概率排序。
  3. 支持统计结论:§3.4 的样本数公式要有"试验了多少次"才能用,没有记录就没有分母。

复现的三要素是:条件(温度/电压/负载/时序)、触发(什么动作之后出现)、频率(多少次出现一次)。三者缺一,修好了也无法证明修好了。

5.4 时间账 ​

一次打样加贴片按天算,一小时测量按小时算。板子回来之前先在LTspice 仿真入门里把工作点和环路跑一遍,回来之后按本章的五级流程走一遍,能把"上电即烧"和"调了三天发现是电源"这两类事故压到很低。真正省时间的不是更贵的仪器,而是每次只改一个变量、每次都有判据这两条纪律。

6 常见坑 ​

<>
  • 现象:一按开关电源就进入限流、冒烟,或稳压器瞬间发烫。
  • 原因:电源对地存在短路(焊接桥连、器件反接、电容击穿),上电电流只受电源能力限制。
  • 解决:上电前用通断档量每路电源对地,OL 才允许上电;首次上电必须限流到预期电流的 1.5~2 倍,手不离开关。
<>
  • 现象:改完故障消失,过几天又出现;或者改完故障变了但不知道哪一步起效。
  • 原因:多个改动叠加,无法区分主效应与交互作用;k 个变量有 2^k 种组合。
  • 解决:一次只改一处,改完立即复测同一判据并记录;需要验证交互作用时再做 2\times2 交叉实验。
<>
  • 现象:1.8V 内核电压是 0V,却去重烧固件、换晶振,几小时没有进展。
  • 原因:跳过了"逐级通过"的纪律,把上层现象当成根因。
  • 解决:五级流程任何一级不通过就停下,先把这一级的判据测绿;本级没绿之前不碰下一级。
<>
  • 现象:"我觉得是晶振没起振""可能是干扰",讨论半天没有数据。
  • 原因:假设没有变成可证伪的预测,测量没有目标。
  • 解决:把假设写成"如果成立,在 X 点应测到 Y 范围内的值",然后去测;测不到就换假设,别换说法。
<>
  • 现象:一接示波器信号就变,拿开探头又正常;高阻分压点读数总比计算值低。
  • 原因:探头 10pF 在 1MHz 的容抗只有 15.9kΩ,并在 100kΩ 节点上把信号拉掉约 88%。
  • 解决:用 10X 探头并先估算负载效应;高阻节点用高阻缓冲/有源探头;必要时先算后测。
<>
  • 现象:改了某处,测 20 次没再出现,出货后批量复发。
  • 原因:p=1\% 时 20 次全过的概率是 81.8%,样本量根本不足以证明改善。
  • 解决:按 n=\ln(1-C)/\ln(1-p) 定样本数(95% 把握、1% 复现率需 299 次);验证要覆盖原触发条件(温度、负载、启停)。

7 自测题 ​

候选原因有 1000 个节点,二分测量需要几次?为什么"系统复杂"不是不测量的理由?n=\lceil\log_2 1000\rceil=\lceil9.966\rceil=10\ \text{次}

候选空间每扩大 10 倍只多约 3.3 次测量(\log_2 10=3.32)。真正拖慢调试的是"切不中"(判据不可靠、测错组合),不是候选数量。

四类故障先验概率为电源 40%、固件 25%、时钟 20%、复位 15%,按这个顺序测的期望次数是多少?反过来呢?

按概率从大到小:1\times0.40+2\times0.25+3\times0.20+4\times0.15=2.10 次。

反过来(复位先测):1\times0.15+2\times0.20+3\times0.25+4\times0.40=2.90 次。

差 0.8 次测量。信息熵下界 H=1.90 bit,说明顺序测试已接近最优。

某偶发故障单次复现概率 1%,要 95% 把握看到一次需要测多少次?测了 300 次没复现,能说明故障率低于多少?n=\frac{\ln(1-0.95)}{\ln(1-0.01)}=\frac{-2.996}{-0.01005}=298\ \text{次}

取 299 次。测 300 次无复现时,95% 置信上限约 3/300=1\%(精确值 1-0.05^{1/300}=0.99\%),即"故障率低于 1%"。

"上电无反应"的五级检查中,1.8V 实测 0V、3.3V 正常,下一步该做什么?不该做什么?

下一步:停在电压这一级,量 1.8V 电源的输入、输出、使能/反馈脚,判断是电源级本身还是负载问题(如使能未拉高、反馈分压开路、负载短路)。

不该做:不要跳去重烧固件、换晶振、查通信——1.8V 缺失是硬证据,本级没绿之前上层现象没有解释力。

RS-485 链路 115200bps、50m 电缆,反射是不是丢包的合理嫌疑?换成 1Mbps 呢?

50m 双绞线单程延迟 50/(0.66\times3\times10^8)=253\ \text{ns},往返 505ns,占 115200bps 位时间 8.68µs 的 5.8%,且两端 120Ω 终端使反射系数为 0,反射不成立。

换成 1Mbps 时位时间只有 1µs,往返延迟占半个位,终端与线长立刻变成主因。

用 10X 探头(10MΩ∥10pF)测一个 100kΩ 源内阻的高阻节点,1MHz 下读数会偏多少?怎么避免误判?

探头容抗 X_C=1/(2\pi\times10^6\times10\times10^{-12})=15.9\ \text{k}\Omega,与节点并联后分压:

\frac{13.7}{100+13.7}=12.1\%

读数只剩约 12%。避免办法:先估算负载效应,或改用高阻缓冲/有源探头;低频直流测量可忽略,高频必须算。

8 参考资料 ​

  • David J. Agans, Debugging — The 9 Indispensable Rules:规则 2「复现问题」、规则 3「别猜,去看」、规则 5「一次只改一个变量」、规则 7「先查最近改过的东西」;本章 §1、§5.3 的纪律来自这四条。
  • Henry W. Ott, Electromagnetic Compatibility Engineering, Chapter 3 Grounding:共阻耦合、地环路与接地拓扑;本章 §4.2 的共模—差模转换分析沿用该章的耦合模型,定量细节见地的学问与地弹。
  • Analog Devices, MT-031 Grounding Data Converters and Solving the Mystery of "AGND" and "DGND":混合信号系统的地噪声测量方法与判据;本章 §5.2 的"测量先看地"口径与之一致。
  • IEC 61000-4-4:2012, Electrical fast transient/burst immunity test:快速瞬变脉冲群的波形、耦合方式与试验等级;本章 §4.2 的"间歇故障要在原触发条件下复现"按该标准的试验思路设计。
  • Tektronix, ABCs of Probes Primer, Probe Loading 章节:10X 探头的输入阻抗、寄生电容与负载效应;本章 §5.2 的 15.9kΩ 容抗算例按该文口径。
  • 器件侧的判据(复位阈值、使能阈值、通信共模范围)以各器件数据手册为准;本章给出的数值均为典型量级,设计时需用实际型号手册复核。焊点与装配类的间歇故障排查见故障排查案例库,仿真侧的预验证见LTspice 仿真入门,上电前的焊点检查见焊接:直插、贴片、拆焊与飞线。