以前一直认为AVR单片机抗干扰很强的,以前用过的型号如M8 M16 M162 M88 M169等型号,但最近用ATMEGA162-16AU型号芯片开发一个产品,用的晶振的是11.0592MHZ外部无源晶振,板子电压是3.3V的,产品开发出来后自己在无意当中发现板子的地址会自己无辜改变,刚开始以为的程序问题,翻来覆去的调试程序,最后发现导致板子地址变化的根源是当用手无意摸到晶振脚后,会导致程序跑飞,程序本身是加看门狗的,不会导致板子死机,但程序跑飞的时候会导致误改全局变量,把全局变量值误改动,弄的我很郁闷,我也测试了下STC51单片机,用手去摸晶振脚发现STC会停止运行程序,但手松开后程序会继续运行,也不会误改变量,然后我又测试了下M64,发现该型号不会出现此问题,网上也查不到解决方案,最后我又把晶振电容原来是20PF改为30PF,晶振2脚之间接1M电阻,问题还没有得到解决,然后又把晶振降到7.3728MHZ,发现有所改观,比以前强些,最起码偶尔碰一次不会出现误改变量的问题,虽然实际产品是有外壳的,但出现这个问题让我对AVR抗干扰性有所改观,大家看看有没有好的解决办法 |