|
拿到一颗新芯片,测试程序写好了。上电,跑一遍,全是红的。 从哪里开始查? 很多人会一头扎进代码里,改这个参数、调那个延时,试了几十次还是红的。 调试需要一套流程,不是碰运气。 今天聊聊测试程序调试的七个步骤,从简单到复杂,每一步确认没问题再往下走。 第一步:上电前检查 程序还没跑,先把硬件检查一遍。 查什么: 电源有没有短路?用万用表量Loadboard上电源和地之间的电阻 芯片方向对不对?第一脚位置是否对准测试座 测试座压合是否到位?有没有芯片放歪了 电缆和连接器是否插紧 这一步的目标:排除低级硬件问题。很多“程序跑不通”是因为芯片没放好或者电源短路了。 第二步:电源和地测试 确认芯片正常上电。 怎么测: 设置电源电压为规格书的典型值(如3.3V) 用示波器测量芯片电源引脚上的电压波形 确认电压稳定,没有过冲或跌落 测量电源电流,是否在合理范围内(太大可能有短路,太小可能没上电) 这一步的目标:确认芯片供电正常,没有短路、断路。 常见问题:电压设对了,但芯片引脚上没电压——可能是Loadboard走线断了,或者测试座接触不良。 第三步:开短路测试 确认每个引脚和测试机之间的连接是通的。 注意:开短路测试需要芯片的电源脚和地脚已经正常供电,否则测出的结果可能不准确。因此这一步放在第二步之后。 怎么测:运行开短路测试程序(对每个引脚灌小电流,测电压)。所有引脚应该都是Pass。 这一步的目标:确认每个引脚都接触到了,没有开路、没有短路。 常见问题:某个引脚Fail——检查测试座那根探针、Loadboard走线、测试机通道配置。 第四步:静态电流测试 将芯片置于复位状态或待机模式(不运行功能测试),测量电源电流。 怎么测: 拉低复位引脚,或通过寄存器将芯片配置为待机模式 测量电源电流 对比数据手册中对应状态的典型值 这一步的目标:确认芯片没有异常漏电,静态电流在合理范围内。 常见问题:静态电流偏大——可能是电源电压设高了、芯片没有正确进入复位/待机状态,或者芯片本身有缺陷。 第五步:寄存器读写测试 通过接口(I2C、SPI、JTAG等)读写芯片内部的配置寄存器。 前提:确认芯片已退出复位状态(复位引脚为高电平,且已等待数据手册规定的复位释放时间)。 怎么测: 写一个已知值(如0x55)到某个寄存器 读回来,确认值一致 再写0xAA,读回来确认 · 这一步的目标:确认通信接口正常,芯片可以被正确配置。 常见问题:写进去读不出来——可能是时钟频率不对、时序不满足、芯片没有退出复位状态。 第六步:简单功能测试 运行一个简单的功能操作,验证芯片的核心逻辑是否工作。 怎么测: 通过寄存器配置芯片执行一个简单的操作(如让某个输出引脚翻转、执行一条指令、计数器加1等) 用示波器测量输出引脚上的波形,确认是否符合预期 这一步的目标:确认芯片的基本功能是正常的。 常见问题:输出不对——可能是配置没写进去、输出引脚没有上拉、芯片没有退出复位状态、或时钟信号不正常。 第七步:全功能测试 运行完整的功能测试向量,覆盖芯片所有工作模式。 怎么测:加载完整的测试向量,跑一遍,分析Fail的位置。 这一步的目标:确认芯片在所有功能下的表现。 常见问题:部分向量Fail——用示波器看波形,用二分法定位到具体的周期或条件。 调试顺序(按先后执行) 上电前检查 → 确认硬件无短路、芯片放置正确 电源测试 → 确认供电正常 开短路测试 → 确认接触正常 静态电流测试 → 确认无异常漏电 寄存器读写测试 → 确认通信正常 简单功能测试 → 确认基本功能 全功能测试 → 确认完整功能 每通过一步,就确认一个子系统的正确性,再进入下一步。前面任何一步出了问题,不要往后走。 常见错误 错误一:跳过前面步骤,直接跑全功能 全功能Fail,不知道是接触问题、供电问题还是芯片本身的问题。从头排查反而花更长时间。 正确做法:按顺序来,每一步确认没问题再往下走。 错误二:在全功能Fail时随机改参数 改一下电压,不行;改一下延时,还是不行;改一下向量,依然不行。改了几十个参数,不知道是哪个起作用了。 正确做法:用二分法缩小范围,每次只改一个变量,记录结果。 错误三:用金样芯片调程序 金样是好的,但用它调出来的程序,换到量产芯片上不一定能跑通。量产芯片的参数有波动。 正确做法:调试阶段尽量用普通芯片(不是特挑的)。金样用于机台验证和日常点检,不是用来调程序的。 错误四:只看Pass/Fail,不看波形 程序显示Pass,但芯片实际没工作(测试机误判)。程序显示Fail,但波形是正常的(测试时序不对)。 正确做法:关键步骤用示波器看波形确认,不要只相信测试机的判断。 调试不是碰运气,是一步一步确认的过程。 从最简单的开始:上电前检查 → 电源 → 开短路 → 静态电流 → 寄存器 → 简单功能 → 全功能。 每一步确认没问题再往下走。有问题,停在当前步,解决后再继续。 这个流程看起来慢,实际上是快的。因为你知道问题出在哪一步。 |





