AVR单片机上电复位不可靠问题的解决

时间:2013-04-13来源:网络

程序里开始首先是对IO做初始化,TXD配置为输出,还有其他相关IO配置。然后是对定时器的一些初始化,再就是对串口的一些初始化了。看了下程序,在初始化的时候就把串口中断发送、接收允许都使能了,难道是这里的问题?串口电压表在实际工作的时候串口其实不是在一直工作的,是通过一个开关选择接地才发送数据,平时是不发送的,而在不接串口电平转换电路的时候RXD、TXD都是是悬空的,只有TXD为输出有上拉,RXD没有使能上拉,这时候RXD是最容易被外部干扰的,这就是问题的所在了。当然如果串口电平转换电路都连接着,那就没这个问题,因为串口电平转换电路已经把RXD的电平给钳住了。解决的方法很简单:在初始化串口的时候关闭串口中断使能,在主程序里需要发送数据的时候再使能串口,发送完马上关闭就可以。至此问题解决,这时候看你再怎么去“摸”ATMEGA48的引脚或封装都没有再出现任何的死机情况,每次上电复位都是非常的稳定。(把AVR的BOD熔丝打开可增加复位的可靠性,BOD LEVEL根据实际的电源电压进行选择,这里的电源是5V,所以BOD LEVEL选4.3V)

总结教训:

这是自己的粗心大意、芯片内部功能的没有合理性利用的表现。在此引以为戒!告诉自己:不要以为自己做过一些小项目就飘飘然起来,不要动不动就去怀疑人家半导体厂家芯片的稳定性,要多怀疑自己才是。往往可能最基本的问题没注意而花费了很多的时间,自己做着玩的东西那都无所谓了,如果你是给别人打工呢?那性质就完全不一样了!

下图为AVR单片机 典型外部复位电路:

AVR单片机已经内置了上电复位设计。并且在熔丝位里,可以控制复位时的额外时间,故AVR外部的复位线路在上电时,可以设计得很简单:直接拉一只10K的电阻到VCC即可。

为了可靠,再加上一只0.1uF的电容以消除干扰、杂波。

二极管1N4148的作用有两个:作用一是将复位输入的最高电压钳在Vcc+0.5V 左右,另一作用是系统断电时,将10K电阻短路,让0.1uF的电容快速放电,让下一次来电时,能产生有效的复位。

当AVR在工作时,按下开关S 时,复位脚变成低电平,触发AVR芯片复位。

AVR单片机上电复位不可靠问题的解决
1 2

关键词: AVR单片机 上电复位 不可靠问题

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版