注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

苍茫大地的博客

 
 
 

日志

 
 
关于我

盒子里的梦想

文章分类
网易考拉推荐

PIC单片机在线调试中的一些问题(icd2) (转自欣欣日志)  

2011-12-12 17:08:36|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1 在线串行编程

  1.1在线串行编程接口

  带有Flash闪速存储器的PIC单片机产品一般都具有在线串行编程功能,只需要5根引线就可以把程序下载到单片机的Flash程序存储器中。这5根线的排列顺序是MCLR/Vpp、Vdd、Vss、PD(或PGD)和PC(或PGC),图1是PIC单片机在线串行编程接口图。

PIC单片机在线调试中的一些问题(icd2)  - 欣欣 -

  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所示。

PIC单片机在线调试中的一些问题(icd2)  - 欣欣 -

  图2中只画出ICD2的MCLR/Vpp、PGD和PGC三组重要信号与目标板的连接,ICD2的Vdd和Vss按照正常方式与目标板连接。如果目标板上有AVdd(模拟电源)和AVss(模拟地),在目标板上也必须把AVdd和AVss与其对应的电源和地相连,不能有任何电源和地引脚悬空,以保证ICD2在调试时能正常工作。

  2.2PGC和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左右的烧写电压。

  ③ 复位电阻不能太大,必须要小于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与计算机连接的问题。

结语

  本文重点叙述在线调试器与目标板的连接、复位以及出现问题的解决办法,有非常强的实用和参考价值,希望引起使用在线调试器读者的重视,节省调试时间。

Top Reasons Why You Can't Debug

1. The oscillator is not working. Check your configuration bits setting for the oscillator.

2. The target board is not powered. Check the power cable connection.

3. Verify whether or not the device requires a header. From the MPLAB IDE main menu, select Configure>Select Device, select the device and check under the Debuggers, ICD/ICD Headers to see if a header is required.

4. The MPLAB ICD 2 has somehow become physically disconnected from the PC. Check the USB or COM communication cable connection.

5. The MPLAB ICD 2 has somehow become physically disconnected from the target board. Check the communications cable connection.

6. The device is code-protected. Check your configuration bits setting for code protection.

7. You are trying to rebuild the project while in Release mode. Select Debug in the build configuration drop-down list on the project toolbar, then rebuild the project.

8. MPLAB ICD 2 is selected as a programmer, and not as a debugger, in MPLAB IDE.

9. MPLAB ICD 2 to PC communications has somehow been interrupted. Reconnect to the ICD in MPLAB IDE.

10. The target application has somehow become corrupted or contains errors. For example, the regular linker script was used in the project instead of the MPLAB ICD 2 version of the linker script (e.g., 18F8722.lkr was used instead of 18F8722i.lkr). Try rebuilding and reprogramming the target application. Then initiate a power-on-reset of the target.

11. Other configuration settings are interferring with debugging. Any configuration setting that would prevent the target from executing code will also prevent the ICD from putting the code into debug mode.

12. MPLAB ICD 2 cannot always perform the action requested. For example, the ICD cannot set a breakpoint if the target application is currently running.

  评论这张
 
阅读(161)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017