基于MSP430F2132IPW开发的终端,最近遇到一个怪现象,大约有一半的数量在电池上电时,程序未能正常地启动(LED灯未闪烁),如果断开电池后再在几秒内插入电池,则程序就能正常地工作起来了(LED闪烁),但如果断开电池后等待较长的时间(如半分钟)则插入电池仍然不能启动程序。当程序正常启动后,达到计数器复位时也是正常地复位工作的。
电路参数为:R=47K、C=2200pF。
试过将3只终端的上电复位电路的电阻R更换为30K,结果没有任何的作用。
请问问题的原因及如何方法?(最好是不另加复位IC)
Bruce Wei:
楼主你好!
请问MCU供电电压和工作主频分别是多少?如果供电电压低于主频需要的工作电压,有可能导致MCU不能正常启动。
Vivian(MCU) Zhang:
回复 Bruce Wei:
正如Billy所说,从现象上分析我同样认为是由于工作电压低于工作主频所需的最低电压导致系统没有正常工作。电池拔掉后大的滤波电容会储存电能,所以在几秒内上电后应该是借助了滤波电容达到了工作所需的电压。电压与主频的关系参见下图:一般的电池电压在3V左右,如果你的主频是16MHz,就会导致芯片无法正常工作,请仔细检查一下。
Yun Zhang:
回复 Vivian(MCU) Zhang:
频率是1MHz,直接用的DCO_1M,外部晶振是用的32768Hz。
电池不是普通干电池,是一种名称为锂亚硫酰氯的长效电池,额定电压为3.6V,现实际电压为3.5V+。
这种电池的容量较大,但工作电流较小(100mA)。
为什么我将启动电阻从47K改小为30K,也没有好转呢?
另外,也曾经看到过有人在F2132的上电复位回路只使用了一只10K电阻、未使用电容的情况,但它也能工作,真奇怪了。
Bruce Wei:
回复 Yun Zhang:
两点建议:
1、楼主能否使用示波器测一下供电电压和复位电路的波形。
2、另外,在电源和地间加一个10k电阻,看有没有改善?
Fuchong Wang:
帮顶顶
G2系列的电容好像1nF就可以了
Yun Zhang:
回复 Bruce Wei:
电源与地之间加电阻,是肯定不行的,因为增大了待机电流,长时间的电池供电方式是不允许这样做的。
准备试一下,将RC复位回路换成1只809的复位IC,飞一小段线过去,看是否还有这种怪现象?
或者电容换成1nF的也试一下。
Bruce Wei:
回复 Yun Zhang:
这个实验是希望了解是希望了解,是否因为BOR的缘故导致MCU无法启动。另外还是建议楼主测一下,上电和掉电的过程中,供电电压和复位信号电压的波形。
Yun Zhang:
回复 Bruce Wei:
1、换电容为1nF后无改善;
2、再在VDD、GND之间增加一只10K电阻,无变化;
3、手边的虚拟示波器未找到,暂无法继续测试了…
Yun Zhang:
回复 Yun Zhang:
原因找到了:程序启动后,切换代码太快了,一个现象是串口输出的信息经常有乱码。
现在在时钟配置后面,增加了1秒的延时用于LED闪烁,再启动串口等程序,就再也没有不能正常工作的情况了。
Peter_Zheng:
上电的时候电压不稳定,如果出现大数组的初始化或者其他的一些配置问题容易导致问题。建议在程序开始的时候进行处理。也可以参照5529的demo code的里的init.c的程序。