本篇文章给大家谈谈解决AVR单片机上电复位不可靠问题,以及对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
直到后来,这个程序才被开发出来。我给ATMEGA48加了10K上拉电阻和0.1uF电容进行复位,拔掉ISP线,独立给串口电压表上电(因为当时使用了几个电路模块,串口电平转换电路也是初步串口调试已经通过,所以我拔掉了串口电平转换模块的所有连接)。问题是开机后不工作。手动将复位脚接地释放后可以工作,但过一段时间还是死机。加了看门狗后还是一样,没有任何改善。每次手动复位并正常工作后,将手指放在ATMEGA48的1、2、1上。 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。)
用户评论
我最近在AVR上遇到这个问题!每次开机都好像乱枪