拿到设计的电路板后,一般会先下载单片机程序验证一下硬件功能是否正常,但有时也会出现程序不运行的情况,本文我们就介绍一下针对硬件测试时程序不运行的排查思路。
一:确定软件还是硬件问题?
首先进行软硬件交叉对比测试;将程序下载到其他板子上(最好是可确定硬件无问题的开发板上),验证程序是否有问题?
若程序在开发板上可正常运行,基本可确定是硬件的问题,可继续排查硬件原因。
若程序在开发板上也不能正常运行:先使用开发板调试出至少可正常运行的程序
二:单片机可运行的最小条件
针对常用单片机,正常运行的条件至少包括:电源、晶振、复位三部分;针对例如stm32单片机还涉及到boot模式选择;
发现单片机不工作时,使用排除法,对上面的条件进行逐一排除即可。
01
检查vcc电压
使用万用表测量单片机vcc的电压是否正常、稳定;电压范围是否正常:若电压不在单片机的正常工作范围内,单片机肯定就不能正常工作。此时需要检查电源部分的电路,排查电源输出电压不正确的原因;电压是否稳定:若电压不稳定,波动较大也可能导致单片机不能正常工作; 02
检查晶振电路
振荡源作为单片机正常运行的“心脏脉搏”,是至关重要的。震荡源存在问题肯定单片机也不能正常工作;
若使用的内部晶振:检查程序中关于内部晶振的配置是否正确;
若使用外部晶振:使用示波器测量晶振引脚的波形,观察晶振是否正常起振;(关于晶振部分的电路欢迎关注本公众号关于晶振详解的文章)
03
检查复位电路
用示波器测量复位电路有没有给单片机提供上电复位信号?
检查复位电路所用的电阻、电容设计是否合理?
高电平复位or低电平复位是否符合单片机的要求?
04
检查boot设置
针对stm32单片机,程序运行的条件还会涉及到boot引脚的选择。如下图所示:
三:总结
单片机不能正常工作的原因还有很多,以上仅仅列出了比较方便排查并且比较重要的几个因素。欢迎在留言区留言讨论。
微软Surface硬件口碑好 为何叫好不叫座:同行模仿太多 “山寨”严重
仓库管理软件的功能特点都有哪些
降低EMI的高速PCB设计注意事项
ARM收购案遭反垄断调查,英伟达计划落空?
向量数据库这杯“啤酒”与“泡沫”
单片机不能正常工作的原因
5G对连接器提出何种要求?
GaAlAs/GaAs半导体激光器简述
海口市长丁晖:借力自贸港政策,推动芯片设计与康复医疗产业发展
随着5G的到来 智能家居产品的普及已成大势所趋
ABB机器人互换位置指令
2.5 GSPS高性能数模转换器——AD9739A DAC
PCB走线为什么不能太长?线间距为什么不能太近?
情人节亮爆,小米将出旗舰骁龙625+64GB,称“人气王”
智能汽车中SOA架构设计方法
减少射频载波干扰的方法
AndroidAuto将摆脱线缆束缚 彻底无线化
i.MXRT系列的ROM API设计
Win10升级烦不胜烦?不如试试这个工具一绝永恒
开发指南|Websocket 网页控制设备