在单片机系统设计中,对系统的EMI、信号完整性、时序设计都能引起足够的重视;但对于电源完整性引起的地弹和电源反弹的问题,很多设计者还是认识得不清晰。在单片机系统设计中,有时由于芯片自身缺陷或芯片之间接口驱动配合不当引起的系统不稳定,甚至不能工作的情况非常多。
1 系统描述
图1为μP监控电路。监控芯片MAX818具有电源低压监视、电池管理、RAM片选锁定及微处理器硬件看门狗功能。电源低压监视是当系统电压低于芯片设定电压时,MAX818发出复位信号。电池管理是当VCC高于电池VBATT时,OUT切换到VCC,电池处于浮充状态;当VCC低于VBATT时,OUT切换到VBATT,由电池供电。RAM片选锁定用于上电或掉电时保护RAM中的数据不丢失且正确读写。微处理器硬件看门狗的作用是当程序跑飞,喂狗信号WDI得不到服务时,芯片发出复位信号,复位系统。WDI信号悬空时,MAX818自动发出复位信号的功能禁止。
系统RAM片选信号由CPU的地址线,控制线经
EPLD译码后输出接到MAX818的CEIN,经MAX818输出脚CEOUT接到RAM片选CE上。RAM的供电电源由MAX818的OUT输出引脚提供。
2 系统异常复位现象及分析解决
在单片机系统调试过程中,将监控芯片MAX818的看门狗清除引脚WDI悬空,使MAX818的复位功能禁止,且程序处于仿真状态,这时系统软硬件一切功能正常。仿真调试完毕,将程序写入Flash中让其运行,系统总是不停地复位、重启。MAX818的复位脚不停地发出复位信号,用示波器观察的波形如图2所示。
将WDI悬空重新仿真,系统正常;将WDI悬空,写入Flash,系统正常。分析认为是MAX818自己在发出复位信号。理论上能引起MAX818复位的原因有以下2点:
①超过1.6s,MAX818引脚(6)WDI没有喂狗信号,能引起复位;
②系统电源低于MAX818电源电压设定值4.65V,能引起复位。
通过仿真监测CPU问隔ls清狗一次;测量系统电源电压VCC=5.08V。说明不是上面两条原因引起的复位,而是有别的什么原因引起异常复位。下面分析引起复位的原因:
芯片电源监视原理如图3所示。电源监视原理为系统VCC通过电阻分压后输入比较器的正端(十),比较器的负端(一)接内部基准1.25V。当比较器的+端电压低于1.25V时,比较器输出换转。一边使RESET输出低电平复位系统,同时将OUT切换到BATT电池。推测认为,是芯片的CEI和CEO引脚状态快速切换引起芯片内部局部电源电压下降,经内部分压后低于l.25V电源监视功能起的作用,发出复位信号使系统不停复位。根据推测,为使MAX818电源监视不异常复位,必须使芯片内部比较器的+端电压高于1.25V。为验证推测,将芯片电源VCC电压提高到5.3 V以上,这时系统开始正常工作。
将芯片电源VCC恢复到正常5.08 V,在MAX818的CEI输入引脚串入500Ω电阻,以降低CEI和CEO引脚状态切换速率,这时系统也能正常工作。
3 引起电源完整性原因
①在数字电路中,当器件处于上升/下降沿很陡的截止和导通转换的过程时,会产生很大的瞬间变化的电流△I。由于电源线和地线都存在引线电感L,△I通过L将引起地电位的波动和电源电压的波动,从而引起噪声,所以也称为△i噪声。如果是由于封装电感而引起地平面的波动,造成芯片地和系统地不一致,这种现象就称为“地弹(ground bounce)”;同样,如果是由于封装电感引起的芯片和系统电源差异,就称为“电源反弹(power bounce)”。电压的瞬变由下面的公式定义:
V=L·di/dt
其中:L是电流传输路径上电感的值;出表示信号上升时间间隔内电流的变化;出表示电流的传输时间(信号的上升时间)。
芯片的内部电源引线、地线引线或印制板的布线问题,一般容易引起电源完整性问题。
②不同芯片的接口驱动类型不当也能引起电源完整性问题。例如,用输出小电流的I/O引脚去驱动需要大驱动电流的引脚,容易导致输出电流的芯片局部电源电压波动,引起系统工作不正常。
结语
通过一个具体实例论述电源完整性问题,说明单片机系统中,许多认为莫名其妙的现象很多时候是由于电源完整性余量不够引起的。在加强系统的EMC设计和时序设计的同时,还要对电源完整性给予足够的关注。