拿到设计的电路板后,一般会先下载单片机程序验证一下硬件功能是否正常,但有时也会出现程序不运行的情况,本文我们就介绍一下针对硬件测试时程序不运行的排查思路。
一:确定软件还是硬件问题?
首先进行软硬件交叉对比测试;将程序下载到其他板子上(最好是可确定硬件无问题的开发板上),验证程序是否有问题?
若程序在开发板上可正常运行,基本可确定是硬件的问题,可继续排查硬件原因。
若程序在开发板上也不能正常运行:先使用开发板调试出至少可正常运行的程序
二:单片机可运行的最小条件
针对常用单片机,正常运行的条件至少包括:电源、晶振、复位三部分;针对例如STM32单片机还涉及到Boot模式选择;
发现单片机不工作时,使用排除法,对上面的条件进行逐一排除即可。
01 检查VCC电压
使用万用表测量单片机VCC的电压是否正常、稳定;
电压范围是否正常:若电压不在单片机的正常工作范围内,单片机肯定就不能正常工作。此时需要检查电源部分的电路,排查电源输出电压不正确的原因;
电压是否稳定:若电压不稳定,波动较大也可能导致单片机不能正常工作;
02 检查晶振电路
振荡源作为单片机正常运行的“心脏脉搏”,是至关重要的。震荡源存在问题肯定单片机也不能正常工作;
若使用的内部晶振:检查程序中关于内部晶振的配置是否正确;
若使用外部晶振:使用示波器测量晶振引脚的波形,观察晶振是否正常起振;(关于晶振部分的电路欢迎关注本公众号关于晶振详解的文章)
03检查复位电路
用示波器测量复位电路有没有给单片机提供上电复位信号?
检查复位电路所用的电阻、电容设计是否合理?
高电平复位or低电平复位是否符合单片机的要求?
04 检查Boot设置
针对STM32单片机,程序运行的条件还会涉及到Boot引脚的选择。如下图所示:
三:总结
单片机不能正常工作的原因还有很多,以上仅仅列出了比较方便排查并且比较重要的几个因素。
转贴自网络