单片机系统硬件调试方法
单片机的系统硬件调试,通常有静态调试和动态调试两种不同,前者是通过目测、万能表测试、加电检查、联机检查的方法,在加电于样机之前.对样机的型号规格,以及安装要求等进行核对,同时检查电源系统.防止极性错误情况和电源短路情况的出现,同时对系统总线的重点检查后者则是在开发系统的基础上.利用开发系统的人机界面.访问和控制用户系统各个部分的电路.以找出系统运行过程中存在的问题.对故障进行一一排除。因此,单片机的系统硬件调试,需要从硬件的静态调试和动态调试两个角度人手:
单片机系统硬件的静态调试
1、逻辑故障的排除在制板设计和加工的过程中.由于工艺性的错误.单片机容易出现错线、开路和短路的问题。排除这种故障的方法是根据原理图,对照加工印制板.确保原理图和印制板的一致.同时检查电源系统,重点注意是否存在电源短路和极性错误的问题.具体的做法是检查地址、数据和控制总线.该过程可以利用数字万能表进行功能测试。另外,还需要检查元件是否失效.根据设计要求,检查其型号、规格和安装等,确保元件没有烧坏.以及安全无误.该过程可以采用替换法进行排除。
2、电源故障的排除
在通电之前.检查电源电压的辐值和极性,以免损坏集成块,在加电之后.对各个插件上引脚的电位进行检查.检查VCC和GND的电位.一般情况下电位为5-4.8V。如果属于高压通电,则要调试联机仿真器.经检查仿真器失效,则说明系统的集成块已经烧坏。
单片机系统硬件的动态调试
(1)利用示波器和万能表等基本工具,检查信号线的连结状态和时序.以便外围电路出现读写错误。单片机的信号线有多种类型,譬如读信号线、写信号线、时钟信号线、复位信号线等,这些信号线大多数发出脉冲信号.这种信号一般利用示波器观测.但观测效果并不佳,笔者认为要利用软件编程的方法.检测出译码片选信号.具体的做法将地址送人DPTRHE和将译码地址外RAM中的内容送入ACC,同时进行适当延时和循环.再利用示波器观测引出脚.非错误状态时存在周期性的负脉冲波形.否则表示译码信号存在错误。这种方法适用于电平类信号的测试.复位信号用示波器即可。
(2)在断电情况下,将所有的元器件插上,并连接在线仿真器和系统.然后打开电源和启动在线仿真器.进行在线仿真调试。在调试过程中.经常出现三种故障.第一种是通电之后,电源的指示灯不亮,以及电位系数为零.此时可以用万能表检测电源的插座。如果发现存在虚焊问题.对其进行重新焊接之后,再接人电源,发现指示灯正常亮起,说明电位已经开始趋于正常:第二种是3O脚用示波器进行检测.输出的时钟频率非常弱.此时则要检查3O脚是否接高电平.如果没有.则要进行重新焊接.直到稳定输出时钟脉冲;第三种是键盘按下之后,蜂鸣器不会发声,可以通过更换蜂鸣器.检查是否损坏。
(3)在启动定时功能之后.定时功能通过数码管提示。如果数码管上小数点管脚被烧坏.则可通过更换LED显示器.如果小数点显示仍然不正常,则要进行软件调试。语音模块的调试.要用逻辑电路调试,检查时钟芯片是否正常工作.如果掉电后不能够保存时钟的数据.则表示运行不正常.要求更换时钟芯片的电池。
(4)辅助交流电源漏电流检测保护装置应用的要求是.借助电流传感器.将电压传输并在液晶上显示.其中分为输入电流和输出电流两路漏电装置设计的方案是将微电流互感器配置在辅助电流上.以便检测时候显示具体的漏电流.同时设置漏电流的保护值.确定具体的保护信号。漏电保护装置的总体结构是由电流采样电流、电源模块、串行通信构成单片机.并提供数字输出功能、数字输入功能、键盘输入功能、液晶显示功能。漏电保护装置设置在机车上,可以显示漏电流量,并比较漏电流质和存储保护值,作为外部继电报警的依据。除此之外.我们还需要根据机车系统的扩展升级需求.选择合适型号单片机.其中高速、低功耗、抗干扰是单片机最基本的功能,其外围电路模块有利于抗干扰和保证电路输出输入的安全.而交流采样电路转变正旋交流电压.将信号输入单片机。
结束语
综上所述.单片机的系统硬件调试.包括静态调试和动态调试两种.需要检查元件是否失效.根据设计要求,检查其型号、规格和安装等.确保元件没有烧坏.同时利用软件编程的方法,检测出译码片选信号,具体的做法将地址送入DPTRHE和将译码地址外RAM中的内容送入ACC,同时进行适当延时和循环,再利用示波器观测引出脚.以及开发系统的基础上.利用开发系统的人机界面,访问和控制用户系统各个部分的电路,以找出系统运行过程中存在的问题.对故障进行一一排除。
51单片机程序及调试步骤实战经验
我刚参加工作的时候,用的是stc 51单片机的,51单片机不像stm32那样可以通过st-link在keil上面在线仿真。
有时候出现bug的时候,非常难找问题,要一段一段屏蔽然后测试。
在刚开始接触开发的时候,我非常不习惯用在线仿真,大概是因为没用过。
记得有一次进了一家公司做行车记录仪,用的台产GRAIN的单片机。
那时候基本上没什么资料,就一个dada sheet和demo程序。
在开发之前,老大安排了给我一个任务,就是把这个仿真环境先给搭起来。
相当于是他们原厂没有的东西,让我去搞定,这个芯片是基于Fa626TE core的32位控制器。
网上的资料太少了,光是测试搭建这个环境花了半个多月,最后还没搭建出来。
那个时候完全是懵逼状态,摸着石头过河,不知道仿真啥原理,反正网上搜到一个我就试一个。
做这个之前基本都是在做51的东西,所以对我来说太难了,加上资料又少,就是跨级打boss。
后面我有点不耐烦,就跟老大说:这个我不用仿真了,以前不用仿真照样也能把产品做出来。
后来老大思考了一下,还是希望能想把仿真搞出来,我有点崩溃,实在想不明白为何他这么固执。
当我后面慢慢接触32位的单片机多了,开发的产品多了,我才真正体会到了仿真的好处。
毫不夸张地说,用好仿真,你的开发效率至少提高3倍,这里说的不是仿真软件。
拿stm32单片机举例,用st-link+keil在线硬件仿真,不但能监控程序怎么跑的,还能监控跑过程中变量的值的变化,指针地址的变化。
用熟了你就知道,特别是做指针的应用,实在太香了,有时候指针指来指去,你的理解可能只是在自己的理论层面上,而用仿真你可以监控到指针的指向变化。
那像51这种,不能像stm32那样用st-link在线仿真怎么办?(现在51好像也有了,具体没用过)
大家别小看51单片机,有些51内核的ROM都有几十K,最终产品程序的大小并不会比stm32的小。
这种如果没仿真,那出现一个BUG,够你调半天了。
在过去的开发中,我也总结了一些经验,大家可以借鉴下。
我一般是借助产品硬件上一切能作为提示的东西,比如说:
1.数码管
2.LCD
3.LED灯
4.串口
我在开发程序的时候,第一个做的肯定是点亮一个LED灯。
点亮LED能够最快地让你验证硬件核心部分(单片机最小系统)有没有问题,
点亮以后,我再开一个定时器它每秒闪烁1次,直到产品大多数功能完成。
这样做的好处就是可以验证你程序有没有跑着跑着死机之类的问题,如果有,那就及时解决,不然后面程序大了找起来会更难。
如果有数码管和LCD,调试起来会更加得心应手,直接在数码管和LCD上显示要调试的数据即可,虽然没仿真这么方便,但是总比都没有好。
还有就是串口,一般硬件在第一次打板的时候,我都会把串口预留出来,方便调试,特别是做物联网产品,串口调试可以说是必备的。
主要作用就是用来监控MCU和WiFi模组之间的通讯数据。
最后,还有一种情况就是产品啥都没有,连LED都没有,这种情况该怎么办?
这种情况就只能听天由命了,完全靠你的开发经验。
一般第一板硬件设计成这样的,都是初级水平工程师,经验不足。
即便你产品用不到那些资源,好歹把串口或者LED预留出来,把整体功能调试完以后最终一板把它去掉不就行了?
相关问答
单片机 怎么 调试 ?单片机调试需要通过软件和硬件两个方面进行。软件调试主要包括程序的编写、下载、调试和调试工具的使用,如Keil、IAR等。硬件调试主要包括电路设计、外围电路...
单片机 时钟频率调整?做一个延时程序吧,延时500ms,然后取反,出来的信号就是1HZ的。DELAY_500MS:MOVR5,#10L1:MOVR6,#100L2:MOVR7,#250DJNZR7,$...
51 单片机 液晶显示屏对比度怎么调?调节51单片机液晶显示屏的对比度可以通过调节液晶显示模块背面的对比度调节器完成。对比度调节器一般是一个电位器,可以通过旋转电位器来改变液晶显示屏的对比...
单片机 nop什么意思?在单片机编程中,NOP是一种空操作指令,其全称为NoOperation(无操作)。它是一种没有任何操作的指令,通常用于在代码中插入一个空操作,以便程序员在调试或测...
河北服务好的楼宇自控 系统调试 多少钱,楼宇自控系统调试够不...[回答]在单片机开发过程中,从硬件设计到软件设计几乎是开发者针对本系统特点亲自完成的。这样虽然可以降低系统成本,提高系统的适应性,但是每个系统的调试...
单片机 运行后在串口 调试 助手上看到重复的一组16进制数 - 1...首先看你的发送的是什么:unsignedchardat,字符型的变量,也就是说你发送过去的变量是char型的,再看你要显示什么:“串口助手上看到一组16进制数”好...
单片机 蜂鸣器如何把声音调大?要将单片机蜂鸣器的声音调大,可以考虑以下几种方法:使用外部放大器:连接蜂鸣器到一个外部放大器,以增加声音的输出功率。调整频率和占空比:通过改变蜂鸣...
串口 调试 助手怎么用?用来做 单片机 与pc串口通讯时,用来发一个...要看你的下位机也就是单片机的配置有没有校验位和几位停止位了有的话确定几位然后根据那个来设置的一般是1位起始位8位数据位1位停止位无校验位但有时就不一...
单片机 秒表显示实验中,提高计时精度的方法有哪些?单片机秒表显示实验中,提高计时精度的方法只有一个(因晶振频率误差也影响计时精度,但是不能调,所以,这不能算一个方法),就是调整定时器的计数的初始值。都...
利用 单片机 进行电机调速控制的原理?进行电压的调整和励磁的调整来达到电机调速的目的进行电压的调整和励磁的调整来达到电机调速的目的