一、振荡器停止振荡

又可以分为电源电压不稳,或者强干扰引起的振荡器停振。

二、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中好象有在空白区填充数据的设置。

2、“死机"是指PC进入了"死循环”,或者是MCLK等于近似为零的值。此时,要想救活MCU,非外狗不可。

*程序运行过程中,如果MCU电源出现问题(电源供电问题,或其它外部电路引起的电源扰动),比较容易出现"跑飞"现象。程序跑飞应该是PC出错;软件和硬件都可能出这样的问题。

死机应该是CPU根本没有运行,多是硬件方面的问题造成的,比如POR复位不成功,430比较容易出现掉电不完全后重新上电。

有了看门狗就不会死机?

死机是指CPU的程序指针进入一个死循环,无法执行正常的程序流程。其外在表现常常是:正常功能丧失,按键无响应,显示凝固。单片机死机后,只有复全才能走出死循环,执行正常的程序流程。众所属知,克服死机的最有效手段是加看门狗(WatchDog)。

目前用得最广泛的看门狗实际上是一个特殊的定时器DogTimer。DogTimer按固定速率计时,计满预定时间就发出溢出脉冲使单片机复位。如果每次在DogTimer溢出前强行让DogTimer清零,就不会发出溢出脉冲。清零脉冲由CPU发出,在单片机程序中每隔一段语句放一个清DogTimer的语句–FeedDog语句,以保证程序正常运行时DogTimer不会溢出。一旦程序进入一个不含FeedDog语句的死循环,DogTimer将溢出,导致单片机复位,跳出这个死循环。本文称这种看门狗为典型看门狗,典型看门狗已被集成比,如MAX706、MAX791等[1];还有许多单片机本身集成了这种看门狗,如PIC16C57、MC68HC705等,

有一个错误观点:加了看门狗,单片机就不会死机。实际上,看门狗有时间会完全失效。当程序进入某个死循环,而这个死循环中又包含FeedDog语句,这时DogTimer始终不会溢出,单片机始终得不到复位信号,程序也就始终跳不出这个死循环。针对这一弊端,笔者设计了双对限看门狗和定时复位看门狗。

双时限看门狗有两个定时器;一个为短定时器,一个为长定时器。短定时器定时为T1,长定时器定时为T2,0

这样,当程序进入某个死循环,如果这个死循环包含短定时器FeedDog语句而不包含长定时器FeedDog语句,那么长定时顺终将溢出,使单片机复位。巧妙安排长定时器FeedDog语句的位置,可保证出现死机的概率根低。在水轮发电机组微机控制装置中的对比应用证明了这一点。

目前几乎所有的看门狗都是依赖于CPU(依赖于CPU FeedDog)。这可以比作:一个保险设备能否起到保险作用还依赖于被它保护的对象的行为。显然,依赖于CPU的看门狗是不能保证单片机在分之百不死机的。

在绝对不允许死机的装置中,笔者设计了一种完全不依赖于CPU的看门狗–定时复位看门狗。定时复位看门狗的主体也是一个定时器,到预定时间就发出溢出脉冲,此溢出脉冲使单片机强行复位。定时复位看门狗不需要CPU FeedDog。

简言之,定时复位看门狗就是定时地让单片机强行复位。这样,即使装置死机,其最大死机时间也不会大于定时器定时时间。显然,只要硬件完好,这种看门狗百分之百地保证了单片机不会长时间死机。在智能电表(包括IC卡电能表、复费率电能表、多功能电能表)中采用了定时复位看门狗,每1秒让CPU强行复位,迄今数十万电表运行了近五年,无一例死机报告。
单片机教程学习视频分享:
(stm32串口应用)
http://www.makeru.com.cn/live/detail/1290.html?s=143793
http://www.makeru.com.cn/live/1392_1164.html?s=143793
(stm32电机驱动)
http://www.makeru.com.cn/live/1392_1218.html?s=143793
(定时器)
http://www.makeru.com.cn/live/1392_1199.html?s=143793

单片机死机了怎么办?相关推荐

  1. 单片机c语言调用函数费时,下头函数,只要被调用就会导致单片机死机,请大家帮忙分析...

    当前位置:我的异常网» C语言 » 下头函数,只要被调用就会导致单片机死机,请大家帮 下头函数,只要被调用就会导致单片机死机,请大家帮忙分析 www.myexceptions.net  网友分享于:2 ...

  2. 单片机 架构 程序 经验总结_单片机“死机”了怎么办?看看一个资深工程师的经验总结...

    原标题:单片机"死机"了怎么办?看看一个资深工程师的经验总结 单片机(Microcontroller,MCU) 又称为微控制器或嵌入式控制器,体积虽小,但使用方便,应用范围广泛,在 ...

  3. 单片机死机了,该怎么办?

    一.振荡器停止振荡 又可以分为电源电压不稳,或者强干扰引起的振荡器停振. 二.PC指针跑飞 电源电压不稳或强干扰引起PC跑飞,如果看门狗不好,也会引起死机. 三. 设计上对长引出线的IO没有保护,静电 ...

  4. FreeRTOS+STM32F103中断中发送任务通知单片机死机问题

    最近在调试FreeRTOS系统遇到了一个比较奇怪的问题,在STM32F103最小系统上调试任务通知模拟事件标志组功能时,中断一触发,单片机就会死机.通过查询方式发送任务通知没任何问题,一旦用按键触发外 ...

  5. 单片机死机常见原因分析

    在日常的单片机开发中,不可避免会遇上死机的现象,让人摸不着头脑,更严重的是死机并不能轻易复现的情况,下面我就说一些我在开发过程中遇到过的情况. 变量溢出或变量未初始化 这里的变量溢出指的是变量定义的数 ...

  6. 单片机程序跑飞死机的几种原因

    在使用单片机过程中,经常会出现程序运行一段时间后,不能够正常相应的情况.一般分为软件原因和硬件原因,其中硬件原因比较容易查,软件原因就较为复杂. 软件导致单片机死机的原因 1.指针异常 指针未初始化或 ...

  7. 单片机/ARM死机的常见原因及解决方案

    前几天在写ARM时经常死机,莫名其妙,在这搜集了一些比较好的解答和方案,给大家参考. 可能原因: 一 振荡器停止振荡 又可以分为电源电压不稳,或者强干扰引起的振荡器停振. 二 PC指针跑飞 电源电压不 ...

  8. 单片机为什么会“死机”?看门狗来帮助你。

    我玩单片机的过程中大大小小肯定都会遇到一些问题,不遇到问题是不可能的,出现问题肯定是板子某一个部分出了问题:单片机出现死机的情况也分为很多种,电压的地不稳定.元器件干扰.短路.断路等都会导致单片机故障 ...

  9. stm8L ADC多通通DMA采集和EEPROM一起使用解决死机和数据错位问题——寄存器

    一.简介 现象:本实验在使用ADC+DMA+EEPOM实验室,在eeprom写入数据的时候单片机死机,我在写eerpom时关闭adc和关闭dma,写完之后开启adc和dma单片机就不死机了,然后就出现 ...

  10. 华大单片机HC32F003串口发送一个字节数据后死机问题

    本人最近在使用HC32F003单片机做一个项目中遇到串口发送完成后程序出现跑飞死机现象,第一次出现这个问题,之前使用HC32L136时候就没有这个问题. HC32F003有2个异步串口功能,如图下为串 ...

最新文章

  1. Hadoop2.2.0集群在RHEL6.2下的安装实战
  2. Android混淆详解
  3. Java程序员必须要掌握这10种工具,缺一不可!
  4. c语言输入三个数判断等边三角形,随便输入三个数,看能否组成一个三角形
  5. Lesson3.2 variables
  6. 2017 年大数据、物联网与 AI 的趋势预测
  7. mysql s授权所有用户_查看MYSQL数据库中所有用户及拥有权限
  8. Microsemi Libero使用技巧4——使用命令行模式下载程序
  9. 问题:_ZN6caffe28TypeMeta21_typeMetaDataInstanceIN3c107complexINS2_4HalfEEEEEPKNS_
  10. 天翼云铸牢国云安全,护航千行百业
  11. apk是什么意思以及apk里面有什么东西
  12. SecureCRT鼠标快速复制粘贴
  13. linux线程亲和性,线程亲和性
  14. Java 从虚拟机层面看程序代码是怎么运行起来的
  15. 光学字符识别(OCR,Optical Character Recognition)
  16. 01背包经典例题详解
  17. 【Orangepi Zero2 全志H616】普通IO操作
  18. 预警html效果,预警电子邮件 HTML 模板的语法
  19. 西米支付:数字人民币常识普及
  20. 嵌入式相关学习-微信公众号推荐

热门文章

  1. halcon联合C#开发--连接大华相机读取二维码附源码
  2. adb无线连接Android手机
  3. maven打包常用命令总结
  4. 深度置信网络简要介绍
  5. linux缺少libeds.so,OpenSSL鏈接libcrypto.a以靜態方式
  6. 在Vue中使用Aliplayer,做视频播放或者视频监控
  7. java dll源码查看工具_Java调用dll库源码
  8. 2021年安全员-B证新版试题及安全员-B证试题及解析
  9. 2021-09-07NVIDIA Jetson Xavier NX载板 RTSO-6002使用TF(MicroSD)卡说明
  10. 《统计学》第八版贾俊平第九章分类数据分析知识点总结及课后习题答案