单片机不能正常工作的原因

电子说

1.2w人已加入

描述

拿到设计的电路板后,一般会先下载单片机程序验证一下硬件功能是否正常,但有时也会出现程序不运行的情况,本文我们就介绍一下针对硬件测试时程序不运行的排查思路。

一:确定软件还是硬件问题?

首先进行软硬件交叉对比测试;将程序下载到其他板子上(最好是可确定硬件无问题的开发板上),验证程序是否有问题?

若程序在开发板上可正常运行,基本可确定是硬件的问题,可继续排查硬件原因。

若程序在开发板上也不能正常运行:先使用开发板调试出至少可正常运行的程序

二:单片机可运行的最小条件

针对常用单片机,正常运行的条件至少包括:电源、晶振、复位三部分;针对例如STM32单片机还涉及到Boot模式选择;

发现单片机不工作时,使用排除法,对上面的条件进行逐一排除即可。

01

检查VCC电压

使用万用表测量单片机VCC的电压是否正常、稳定;电压范围是否正常:若电压不在单片机的正常工作范围内,单片机肯定就不能正常工作。此时需要检查电源部分的电路,排查电源输出电压不正确的原因;电压是否稳定:若电压不稳定,波动较大也可能导致单片机不能正常工作; 02

检查晶振电路

振荡源作为单片机正常运行的“心脏脉搏”,是至关重要的。震荡源存在问题肯定单片机也不能正常工作;

晶振

若使用的内部晶振:检查程序中关于内部晶振的配置是否正确;

若使用外部晶振:使用示波器测量晶振引脚的波形,观察晶振是否正常起振;(关于晶振部分的电路欢迎关注本公众号关于晶振详解的文章)

03

检查复位电路

用示波器测量复位电路有没有给单片机提供上电复位信号?

检查复位电路所用的电阻、电容设计是否合理?

高电平复位or低电平复位是否符合单片机的要求?

晶振

04

检查Boot设置

针对STM32单片机,程序运行的条件还会涉及到Boot引脚的选择。如下图所示:

晶振

三:总结

单片机不能正常工作的原因还有很多,以上仅仅列出了比较方便排查并且比较重要的几个因素。欢迎在留言区留言讨论。

审核编辑 :李倩

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分