1 在线串行编程
1.1在线串行编程接口
带有Flash闪速存储器的PIC单片机产品一般都具有在线串行编程功能,只需要5根引线就可以把程序下载到单片机的Flash程序存储器中。这5根线的排列顺序是MCLR/Vpp、Vdd、Vss、PD(或PGD)和PC(或PGC),图1是PIC单片机在线串行编程接口图。
图1PIC单片机在线串行编程接口
1.2 引脚含义
上述5根引线的具体含义是:MCLR/Vpp——编程电压(对于PIC单片机一般为13 V左右);Vdd——编程电源(5 V);Vss——地;PD——编程数据信号;PC——编程时钟信号。
有了这个编程连接电路,只需要合适的编程硬件电路和编程软件,就可以实现单片机在线串行编程和调试。
2 在线调试器
2.1 在线调试器与目标板的连接
微芯公司推出的第一代在线调试器命名为MPLAB ICD,其支持PIC16F87X系列单片机的在线调试与烧写,并且性能可靠,使用简捷、方便。在MPLAB ICD基础上,微芯公司推出第二代在线调试器命名为MPLAB ICD2(以下简称ICD2),其支持全系列的PIC Flash闪速存储器单片机的在线调试和烧写,甚至还支持微芯公司16位单片机dsPIC的在线调试和烧写。ICD2在线调试器与目标板的连接如图2所示。
图2中只画出ICD2的MCLR/Vpp、PGD和PGC三组重要信号与目标板的连接,ICD2的Vdd和Vss按照正常方式与目标板连接。如果目标板上有AVdd(模拟电源)和AVss(模拟地),在目标板上也必须把AVdd和AVss与其对应的电源和地相连,不能有任何电源和地引脚悬空,以保证ICD2在调试时能正常工作。
2.2 PGC和PGD信号易出现的问题
① 从图2中可以看出,ICD2的PGC和PGD引脚内部已经接有4.7 kΩ的下拉电阻,因此用户设计电路板时,电路板上的这2个引脚就不能再接下拉电阻,以免引起不正确的电平。
② PGC和PGD是信号引脚,对于这2个引脚,ICD2和目标板之间的连接不能有任何电容或其他容性器件接入,否则会影响串行数据和时钟信号传输。PGC和PGD信号是双向传输信号,ICD2和目标板之间的连接不能有任何二极管等元件阻断信号传输。
2.3 复位
MCLR/Vpp是ICD2编程电压引脚,编程时电压应该在13 V左右,这个引脚的另一个功能是复位。我们知道,任何单片机在上电或在其他一些特殊情况下都能引起复位。单片机的复位与电源和晶体振荡是单片机进入正常工作的三大必要条件。因此,应该注意以下问题。
① 不能接入大电容,否则Vdd(电源电压)不能快速建立,影响复位。
② 目标板的Vdd(电源电压)与MCLR/Vpp间应串接一只10 kΩ以下的复位电阻,这样在复位时目标板的MCLR/Vpp引脚能够被正常拉低,而在编程时也可以保持13 V左右的烧写电压。
图2在线调试器与目标板的连接
③ 复位电阻不能太大,必须要小于10 kΩ。根据笔者的经验,对于PIC16F87X系列单片机,复位电阻是10 kΩ或10 kΩ以下时可以正常复位;对于PIC18FXX2系列单片机,复位电阻是10 kΩ时不能正常复位,更换为4.7 kΩ左右的电阻就可以实现正常复位了。
2.4 应用实践
由于ICD2的实用性和价格低廉,越来越多的用户使用ICD2在线调试器。在ICD2与目标板连接过程中,非常容易出现这样或那样的问题。对于初学者和自己制作目标板的用户,尤其要注意把ICD2与目标板进行可靠连接,所谓可靠连接就是要接触良好。用户在制作目标板时要遵循本文2.2和2.3小节的叙述,制作出的目标板一般都能与ICD2实现正常连接。
当用户制作的目标板与ICD2连接时,若出现不能连接的情况,对于初学者,由于缺乏实践经验,往往判断不了哪里出了问题,甚至怀疑ICD2有问题。此时,应先判断目标板是否有问题,若目标板没有问题,只能怀疑是ICD2本身或ICD2与计算机连接的问题。
结语
本文重点叙述在线调试器与目标板的连接、复位以及出现问题的解决办法,有非常强的实用和参考价值,希望引起使用在线调试器读者的重视,节省调试时间。
参考文献
1 武锋,陈新建. PIC单片机C语言开发入门. 北京:北京航空航天大学出版社,2005
2 张明峰. PIC单片机入门与实战. 北京:北京航空航天大学出版社,2004
陈新建:工程师,主要研究方向为单片机、水利量测自动化及闸和坝安全监测自动化。
武锋:高级工程师,主要研究方向为单片机、水利量测自动化及闸门和泵站计算机监控。