1、单片机系统等的硬件调试方法1、首先是焊接的顺序问题。当初板子做好以后,我一口气就把所有的元件焊上去了,这样对于没有调试过的板子,就很难找到原因。所以焊接的顺序很重要,应该是应该按功能划分的器件进行焊接,顺序是功能部件的焊接-调试(OK)-另一功能部件的焊接,这样容易找到问题的所在。2、如果在调试按功能划分的器件上出现问题,可以按以下步骤进行:1)检查原理图连接是否正确2)检查原理图与 PCB 图是否一致3)检查原理图与器件的 DATASHEET 上引脚是否一致4)用万用表检查是否有虚焊,引脚短路现象5)查询器件的 DATASHEET,分析一下时序是否一致,同时分析一下命令字是否正确(注意,命令
2、字的顺序很重要,前些日子调试 INTEL e28F640 这款 flash是的时候,在对其擦除和写操作的时候,就碰到了这样的问题)6)有条件的可以用示波器。如我就是通过示波器对 SRAM 各个引脚进行检查,发现地址线都是有信号的,而数据线无信号出现,才找到问题所在。7)飞线。用别的的口线进行控制,看看能不能对其进行正常操作,多试验,才能找到问题出现在什么地方。3、多观察,多思考。如我前些日子在调试 320240 点阵 LCD 的时候,发现怎么也不能出现图像,后来在偶然的机会下,发现 LCD 在 MPU 的 CS2 口线下,出现闪动的情况,猜测这时候有数据写入到 LCD 中,仔细研究才发现,MP
3、U 的DATA0-7 线与 74LVC245 的 A0-7 连接在一起,MPU 的通过一个 GAL16V8 或是与非门等芯片进行逻辑组合后与 74LVC245 的 OE 引脚相连,这样 MPU 只有在某一地址范围内才可以进行数据读写操作。所以在调试过程中,对于出现的任何现象都不要放过,问题的解决就是从一些小的现象入手的。山重水复疑无路,柳暗花明又一村。4、有可能的情况下,最好焊两块板子以上,这样才好有个比较,硬件上很小的问题有很多时候是很难发现的。5、软件的调试要和硬件配合进行,往往问题可能不是硬件上的。单片机应用系统硬件调试技巧在单片机开发过程中,从硬件设计到软件设计几乎是开发者针对本系统特
4、点亲自完成的。这样虽然可以降低系统成本,提高系统的适应性,但是每个系统的调试占去了总开发时间的 23,可见调试的工作量比较大。单片机系统的硬件调试和软件调试是不能分开的,许多硬件错误是在软件调试中被发现和纠正的。但通常是先排除明显的硬件故障以后,再和软件结合起来调试以进一步排除故障。可见硬件的调试是基础,如果硬件调试不通过,软件设计则是无从做起。本文结合作者在单片机开发过程中体会,讨论硬件调试的技巧。当硬件设计从布线到焊接安装完成之后,就开始进入硬件调试阶段,调试大体分为以下几步。1 硬件静态的调试 1.1 排除逻辑故障这类故障往往由于设计和加工制板过程中工艺性错误所造成的。主要包括错线、开路
5、、短路。排除的方法是首先将加工的印制板认真对照原理图,看两者是否一致。应特别注意电源系统检查,以防止电源短路和极性错误,并重点检查系统总线(地址总线、数据总线和控制总线)是否存在相互之间短路或与其它信号线路短路。必要时利用数字万用表的短路测试功能,可以缩短排错时间。1.2 排除元器件失效造成这类错误的原因有两个:一个是元器件买来时就已坏了;另一个是由于安装错误,造成器件烧坏。可以采取检查元器件与设计要求的型号、规格和安装是否一致。在保证安装无误后,用替换方法排除错误。1.3 排除电源故障在通电前,一定要检查电源电压的幅值和极性,否则很容易造成集成块损坏。加电后检查各插件上引脚的电位,一般先检查
6、 VCC与 GND 之间电位,若在5V4.8V 之间属正常。若有高压,联机仿真器调试时,将会损坏仿真器等,有时会使应用系统中的集成块发热损坏。2 联机仿真调试联机仿真必须借助仿真开发装置、示波器、万用表等工具。这些工具是单片机开发的最基本工具。信号线是联络 8031 和外部器件的纽带,如果信号线连结错误或时序不对,那么都会造成对外围电路读写错误。51 系列单片机的信号线大体分为读、写信号线、片选信号线、时钟信号线、外部程序存贮器读选通信号(PSEN)、地址锁存信号(ALE)、复位信号等几大类。这些信号大多属于脉冲信号,对于脉冲信号借助示波器(这里指通用示波器)用常规方法很难观测到,必须采取一定
7、措施才能观测到。应该利用软件编程的方法来实现。例如对片选信号,运行下面的小程序就可以检测出译码片选信号是否正常。MAIN: MOV DPTR,#DPTR ;将地址送入 DPTR MOVX A,DPTR ;将译码地址外 RAM 中的内容送入 ACCNOP ;适当延时SJMP MAIN ;循环执行程序后,就可以利用示波器观察芯片的片选信号引出脚(用示波器扫描时间为 1s每格档),这时应看到周期为数微秒的负脉冲波形,若看不到则说明译码信号有错误。对于电平类信号,观测起来就比较容易。例如对复位信号观测就可以直接利用示波器,当按下复位键时,可以看到 8031 的复位引脚将变为高电平;一旦松开,电平将变低
8、。总而言之,对于脉冲触发类的信号我们要用软件来配合,并要把程序编为死循环,再利用示波器观察;对于电平类触发信号,可以直接用示波器观察。下面结合在自动配料控制系统中键盘、显示部分的调试过程来加以说明。本系统中的键盘、显示部分都是由并行口芯片 8155 扩展而成的。8155 属于可编程器件,因而很难划分硬件和软件,往往在调试中即使电路安装正确没有一定的指令去指挥它工作,也是无法发现硬件的故障。因此要使用一些简单的调试程序来确定硬件的组装是否正确、功能是否完整。在本系统中采取了先对显示器调试,再对键盘调试。(1)显示器部分调试为了使调试顺利进行,首先将 8155 与 LED 显示分离,这样就可以用静
9、态方法先测试 LED 显示,分别用规定的电平加至控制数码管段和位显示的引脚,看数码管显示是否与理论上一致。不一致,一般为 LED 显示器接触不良所致,必须找出故障,排除后再检测 8155 电路工作是否正常。对8155 应进行编程调试时,分为两个步骤:第一,对其进行初始化(即写入命令控制字,最好定义为输出方式)后,分别向 PA、PB、PC 三个口送入#0FFH,这时可以利用万用表测试各口的位电压为 3.8 V 左右,若送入#00H,这时各口的位电压应为 0.03 V;第二,将 8155 与 LED 结合起来,借助开发机,通过编制程序(最好采用“8”字循环程序)进行调试。若调试通过后,就可以编制应用程序了。(2)键盘调试一般显示器调试通过后,键盘调试就比较简单,完全可以借助于显示器,利用程序进行调试。利用开发装置对程序进行设置断点,通过断点可以检查程序在断点前后的键值变化,这样可知键盘工作是否正常。以上讨论了借助简单工具对单片机硬件调试的方法,这些方法如果利用得好,就可以大大缩短单片机的开发周期。