这次用的ATmega48制作的串口电压表就涌现一个很奇怪的征象,电路板是用万能板焊接的,程序里用到ADC功能和串口通讯功能,用的AVR下载工具是STK500,每次下载程序后芯片总是不能正常复位事情,还要读取下芯片的特色字或熔丝位让芯片重新复位下才能事情,这时候复位后事情都稳定,没涌现什么不正常。刚开始不在意这个问题,由于在开拓的初期用AVR DRAGON仿真调试部分功能时复位脚不能接任何器件,以是也就把复位脚悬着不接复位电路,以为是没接阻容复位而造成不稳定。在此还是没有疑惑过芯片的问题。
直到后来这个程序都开拓完毕了,给ATMEGA48加上 一个10K的上拉电阻和0.1uF的电容做复位,把ISP线拔掉,独立给串口电压表上电(由于当时都是用几个电路模块连接做实验,串口电平转换电路也是独立的,初期串口调试已经都通过了,以是我把这个串口电平转换模块的连线都拔掉了),问题来了,上电不事情,手动把复位脚接地后放开可以事情,但过了一会后还是去世了,加看门狗后还是老样,没有任何改进,每次手动复位正常事情后,把手指头放在ATMEGA48的1、2、3脚上方逐步靠近,手指头还没碰到芯片就去世机了~~~不会吧,没这么薄弱吧。以前用AVR Tiny26做的掌握器,把手机放在芯片上方然后拨打10086都不会去世机。不会中奖了吧,又不是第一次搞单片机,难道真要像以前论坛里的朋友开玩笑说:要杀只大公鸡祭拜下~~~

奇怪啊~~~实在没招,把串口电平转换电路给接上连续调试下,这时候再上电每次都是正常事情,而如果再把串口电平转换电路断开则又不能正常复位事情~~~手动复位后把手再靠近芯片的1、2、3脚上方就又立时去世机~~~狂晕~~~~不是吧~~~ATMEGA48的第一脚是RST,2、3两脚刚好是RXD、TXD串行引脚,难道真的是这个串口滋扰引脚影响到复位电路?不可能吧,ATMEGA48芯片用得人多的是,各方面的运用都有,不可能是芯片的毛病,还是多疑惑下自己吧...重新再好好看看自己的程序吧...
程序里开始首先是对IO做初始化,TXD配置为输出,还有其他干系IO配置。然后是瞄准时器的一些初始化,再便是对串口的一些初始化了。看了下程序,在初始化的时候就把串口中断发送、吸收许可都使能了,难道是这里的问题?串口电压表在实际事情的时候串口实在不是在一贯事情的,是通过一个开关选择接地才发送数据,平时是不发送的,而在不接串口电平转换电路的时候RXD、TXD都是是悬空的,只有TXD为输出有上拉,RXD没有使能上拉,这时候RXD是最随意马虎被外部滋扰的,这便是问题的所在了。当然如果串口电平转换电路都连接着,那就没这个问题,由于串口电平转换电路已经把RXD的电平给钳住了。办理的方法很大略:在初始化串口的时候关闭串口中断使能,在主程序里须要发送数据的时候再使能串口,发送完立时关闭就可以。至此问题办理,这时候看你再怎么去“摸”ATMEGA48的引脚或封装都没有再涌现任何的去世机情形,每次上电复位都是非常的稳定。(把AVR的BOD熔丝打开可增加复位的可靠性,BOD LEVEL根据实际的电源电压进行选择,这里的电源是5V,以是BOD LEVEL选4.3V)








