欢迎光临专业集成电路测试网~~欢迎加入IC测试QQ群:111938408

专业IC测试网

当前位置: 网站主页 > 相关技术 > 芯片制造 >

复位处理不当,上一颗芯片的状态会“传染”给

时间:2026-05-20 19:07来源: IC测试之家 作者:ictest8_edit 点击:

 

测试程序跑完一颗芯片,换下一颗。你确定下一颗芯片的初始状态是干净的吗?——不一定。

如果上一颗芯片测试过程中把某个寄存器设成了特殊模式,或者电源没有完全放电,下一颗芯片上电时可能还残留着上一颗的状态。
这就是为什么“复位”处理很重要。

今天聊聊测试程序中几种常见的复位场景和处理方法。

 
 
一、硬件复位 vs 软件复位
先区分两个概念。
硬件复位:通过芯片的复位引脚(nRST、POR等)拉低再拉高,强制芯片恢复到初始状态。这是最彻底、最可靠的复位方式。
软件复位:通过写寄存器或发送命令,让芯片内部的逻辑复位。不涉及复位引脚。软件复位不一定能恢复所有状态,有些寄存器可能保持原值。

能接复位引脚的,尽量用硬件复位。没有复位引脚的才考虑软件复位。

 
二、测试程序中的复位场景

场景一:上电后的首次复位

芯片上电后,内部状态是不确定的。虽然大多数芯片有上电复位电路,但POR的阈值电压、响应时间不一定可靠。建议在电源稳定后,主动做一次硬件复位。
顺序:上电→ 等待电源稳定 → 拉低复位引脚(保持几微秒) → 拉高 → 等待芯片退出复位状态→ 开始配置寄存器。

场景二:每颗芯片测试前的复位
这是最常见的场景。换一颗新芯片,测试前先复位一次,确保每颗芯片从同一个起点开始测试。
如果测试程序中用了硬件复位,这一步可以替代场景一的上电复位。

场景三:测试项之间的局部复位
某些测试项之间需要复位。比如测完高速模式后,要切回正常模式。用软件复位比重新下电更快,也更省时间。

场景四:异常恢复时的复位
测试过程中出现异常(比如芯片无响应、通信超时),先尝试软件复位。不行再硬件复位。硬件复位还不行,就判Fail,换下一颗。

场景五:测试结束后的复位
测试完成后,在断电前做一次复位,把芯片恢复到安全状态。避免芯片在异常状态下断电导致的潜在损伤。
 
三、复位时序的几个关键点
复位脉宽:复位引脚拉低的时间不能太短。芯片内部需要足够的时间检测到复位信号并执行复位操作。数据手册上会写最小复位脉宽,比如1微秒、10微秒、1毫秒。程序里的延时至少要达到这个值。
复位后的等待时间:复位引脚拉高后,芯片不会立即工作。内部振荡器启动、PLL锁定、寄存器初始化,都需要时间。数据手册上会写“复位释放后等待X微秒再操作”。
上下电顺序:如果用了硬件复位,断电时先拉低复位引脚,再切断电源。上电时先上电,再释放复位引脚。这样可以防止芯片在电压不稳时进入错误状态。
 
四、常见错误及解决

错误一:复位脉宽太短
程序里写了reset_low(); wait(1); reset_high();但单位是微秒还是毫秒没搞清楚。实际只有1微秒,芯片没来得及复位。
解决方法:查数据手册确认最小脉宽,加50%余量。用示波器量一下复位引脚的实际波形。

错误二:复位后没有等待
复位释放后立即去写寄存器,芯片还没准备好,写入失败。
解决方法:在释放复位和第一次操作之间加延时,按数据手册的建议值设。

错误三:只做软件复位,不做硬件复位
软件复位不彻底,某些寄存器保留之前的值。下一颗芯片用同一个程序,配置不对。
解决方法:优先用硬件复位。确实没有复位引脚,软件复位后加一个验证步骤,检查关键寄存器是否恢复到了默认值。
错误四:复位移到了不该动的地方
把复位操作放在了一个会被多次执行的循环里。每测一个参数就复位一次,每颗芯片被复位了几十次,浪费时间。
解决方法:复位只在必要的地方做。每颗芯片一次,或者每个大的测试段一次。
 
复位不是拉低再拉高就完事了。
脉宽够不够、之后等没等、复位的是硬件还是软件、每颗芯片测前有没有复位,都会影响测试结果的可重复性。
几个要点再记一下:
有复位引脚就用硬件复位
每颗芯片测前至少做一次复位
脉宽和复位后的等待时间按数据手册来,再加余量
结束前复位,避免状态“传染“
下次写测试程序,把复位当成一个独立章节来设计,别随手放几行代码了事。


 
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
用户名: 验证码: 点击我更换图片