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

原文地址::https://www.sohu.com/a/274725234_468692

相关文章

1、单片机出现死机的解决办法----http://www.elecfans.com/emb/danpianji/202008171274203.html

2、单片机程序死机跑飞的六大原因----https://wenku.baidu.com/view/4d353e4e49d7c1c708a1284ac850ad02de800728.html

3、查找MCU异常死机的思路?----https://www.icxbk.com/ask/detail/7086.html

4、MCU死机查原因,Crash dump堆栈回溯技术轻松搞定----https://www.pianshen.com/article/2287439858/

5、STM32单片机玄学死机问题----http://www.51hei.com/bbs/dpj-196488-1.html

6、单片机程序死机跑飞查错指南----https://blog.csdn.net/csdliqi/article/details/17114743

7、单片机程序死机跑飞查找原因----https://blog.csdn.net/qq_33098417/article/details/81231277

单片机(Microcontroller,MCU) 又称为微控制器或嵌入式控制器,体积虽小,但使用方便,应用范围广泛,在如通讯设备、智能化管理、医疗设备及工业自动化等应用中都能看到它的身影。虽然单片机系统结构简单,但是面对单片机“死机”,有时就像生活中会遇到的高山深谷,可能让你花大半天时间,也百思不得其解。

在这里笔者尝试分享一些我们在做技术支持时曾经遇见的典型问题——如时钟信号、供电电压、电流耗量和应用程序等,我们可以利用一些简易方法去寻找解决这些问题的可能性。

不同单片机的规格可能略有不同,除了可能有不同的核心处理器,还有可能有不同的RAM容量、不同的串口接口、不同的速度、不同的电压等等。想快速了解单片机的功能和外设等资料,可以点击Digi-Key微控制器的产品索引,进行查找。

图1,Digi-Key的微控制器产品索引,是查找单片机资料的快速通道

时钟信号

无论是晶体振荡器(简称晶振),或是内部时钟振荡器,都可以为单片机提供时钟信号。单片机会按时钟信号执行一个又一个储存器内的指令,进行既定的正常工作。一旦时钟信号不正常,单片机则不能正常控制。

要检查时钟信号,可以先观察单片机系统的时钟或其他模块(如定时器或ADC)是否存在并正常工作,以确定其逻辑正常操作。譬如TIMSP430FR2000单片机在激活模式 (Active Mode) 工作下,系统的时钟可高达24MHz。

图2,TI MSP430FR2000单片机不同工作模式比较

进行时钟信号检查,最简单的方法是先将时钟切换到相关的GPIO引脚,并使用数字示波器进行测量,看看时钟信号波形的幅度和周期。如果没有时钟信号或振荡不正常,可尝试更换晶振或检查内部时钟设定。如果仍不正常,单片机内部可能出现问题。

供电电压

常见单片机的供电电压是+5V,详情可查看单片机数据手册上的资料,或是参考Digi-Key 网站內产品页的资料。

检查单片机的供电电压,可以从单片机供电引脚看看供电电压是否正常。最好的方法是使用具有足够带宽的数字示波器,以便有效看到任何意外的电压瞬变。

若单片机发现是0V或低于正常工作电压,可以尝试先将该引脚与供电端断开。断开后,如果供电端电压恢复正常,则很大机会是单片机的电路出现问题;如果断开后,供电端电压仍不正常,则是供电的电路出现故障。

图3,通过数字示波器查看单片机供电电压

电流耗量

如果发现单片机的电流耗量相比其低功耗模式的电流消耗低很多,单片机可能处于睡眠模式而没有工作。在这种情况下,可能是由于时钟或输入相关的故障,导致某些中断无法触发。

有些时候,如果单片机的电流耗量高得惊人,可能是物理损坏,这会导致单片机异常运行或闩锁情况。在这种情况下,可以尝试利用复位信号来区分是单片机已经永久性损坏或是出现闩锁问题。

图4,检查单片机的电流耗量以确定失效原因

下图是有关TIMSP432P401单片机正常复位期间的电流消耗。

图5,TI MSP430P401单片机正常复位期间电流消耗

应用程序

在执行应用程序时,其中一个常见故障是单片机轮询问题 (Polling) 。

这是由于应用程序中的循环设计,不断要求单片机轮询某些信号或等待某些输入信号;也可能是产生了冲突,导致循环条件一直无法满足。当然,这些都是为了让单片机一直保持在我们需要运行的情况,但可能会引致莫名奇妙的死机。例如,当ADC回路仅等待来自外部传感器输入的指定信号时,由于外部传感器无法按预期输出信号,可能使单片机死机。

经验总结

要排除单片机故障,就要按单片机的特性一一排查,还需要耐心及缜密的思考设计,如此操作单片机故障应该可以一步一步解决。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值