单片机死机问题
一 振荡器停止振荡
又可以分为电源电压不稳,或者强干扰引起的振荡器停振。
二 PC指针跑飞
电源电压不稳或强干扰引起PC跑飞,如果看门狗不好,也会引起死机。
三 设计上对长引出线的IO没有保护,静电打在IO口上引起单片机死锁,破坏了硬件逻辑功能,导致死机。
四. 复位收到干扰,引起反复复位,在反复复位当中有可能会导致死机。
综上所述:
设计电路时,应该注意:
1.电源稳定
2.IO保护
3.振荡器PCB布线要注意
4.复位电路设计和PCB布线
5.电源,信号线干扰路径的保护,加滤波TVS等
6.高速信号输出远离信号输入端,如SPI总线,I2C总线布线要远离ADC,复位,时钟等布线处,以及其他模拟前端。
一家之言,欢迎纠正
电源电压 的地 不稳定
造成电源电压 瞬间负电压 导致单片机故障 程序不发运行
我的理解:
1、"跑飞"是因为程序隐患或外部干扰引起的误动作,致使PC被写入"出界"数据,跑到了RAM区,或者跑到了FLASH的空白区。如果PC指向了RAM区,哪情况就不好说了!因为程序译码器可能得到任意译码结果。如果PC指向了FLASH空白区,则可以事先将所有FLASH空白区填入某个你想要的数据,迫使程序译码器在这里翻译出你想要的指令,从而进行相应的处理。在IAR Workbench中好象有在空白区填充数据的设置。
评论