《匠人手记》推荐网上购书渠道:
互动出版网(china-pub)购书入口   >>>
当当网(dangdang)购书入口   >>>
卓越亚马逊网 购书入口   >>>
淘宝网(taobao)购书入口   >>>
更多购书渠道……   >>> 

设为首页加入收藏联系匠人管理入口21IC首页21IC博客21IC社区侃单片机回复的贴参与的贴

天气预报
百宝日历
载入中...

百宝专栏

载入中...
最新货色

载入中...

粉丝评论

载入中...

载入中...



百宝信息

载入中...

百宝流量

(2006-07-01开始)


匠人手记

 匠人观点: 好记性不如烂笔头  
 黑色幽默:三鹿门——后世畅想

ICD2调试器常见问题
pcbomb 发表于 2008-4-22 9:50:00  阅读全文 | 回复(0) | 引用通告 | 编辑

ICD2调试器常见问题

ICD2 调试时出现“ICD0083: Debug: Unable to enter debug mode. Please double click this message for more information.”

通常这说明ICD2不能和调试执行程序通讯,这有可能是目标时钟或电源问题使得ICD2不能和调试执行程序通讯,保证晶振的管脚和OSCKI/OSCKO充分接近,4MHz以上晶振推荐使用HS模式,如果是外部32K低频晶振,重新“connect”一下可执行调试指令,也有可能内部或外部晶振使能了PLL功能而进不了Debug模式的,关掉PLL即可;再还有可能是配置位设置不当引起的,查看Config>Configuration Bits,确保看门狗被禁止,代码保护、掉电检测等被关闭


--------------------------------------------------------------------------------

连接ICD2时显示“ICD0021: Unable to connect with MPLAB ICD 2”?

请检查一下ICD2与电脑连接的通讯口是否设置正确(USB or COM)。


--------------------------------------------------------------------------------

连接ICD2时显示“ICD0286: Unable to communicate with ICD
ICD0082: Failed MPLAB ICD 2 operation”

这可能是操作系统有误,此时手动下载操作系统即可。


--------------------------------------------------------------------------------

连接ICD2时显示“ICD0019: Communications: Failed to open port: (Windows::GetLastError() = 0x2, '系统找不到指定的文件。') ICD0021: Unable to connect with MCU.”

通常是ICD2驱动找不到,需重装。如果MPLAB IDE V7.0以上版本,重装前要先运行C:\Program Files\Microchip\MPLAB IDE\Utilities\MPUsbClean下的MPUsbClean.exe 彻底删除


--------------------------------------------------------------------------------

ICD2自检不通过提示“... Failed Self Test. See ICD2 Settings (status tab) for details”

ICD2自检主要是对Target Vdd、Target Vpp、MCLR GND、MCLR Vdd MCLR Vpp六个管脚电压进行检测,任何的一项不正常都会通不过。出错具体情况可在ICD2 的status栏进行查看,找出出错的项,再检查该项的相关硬件连接。若是PIC18J、PIC24、dsPIC30、dsPIC33系列的器件,是无法从ICD2供电给它们的,要求目标板外接电源,且要注意它们的电压范围。

注:可能有些芯片会提示Vpp High 从而导致自检通不过,这是ICD2的固件中检测Vpp电压时所设的上限阈值偏小所致,通常可忽略,ICD2还是能正常编程和调试的


--------------------------------------------------------------------------------

ICD2自检通过,但提示没找到目标ID,读到的ID是‘0’,显示“ICDWarn0020: Invalid target device id (expected=0x89, read=0)”

此时首要任务是检查硬件连接,PGC/PGD有无接错,或PGD/PGC上有容性负载或感性负载。若是PIC18J器件,请确认vddcore是使能且该脚接了0.1-10uF的低ESR电容。注:ICD2到目标板的连接线如果是一端水晶头,一端插针的,要注意白色才是第一根,蓝色一般是不用的。(有些代理商作的icd2正好相反)


--------------------------------------------------------------------------------

ICD2自检通过,但提示没找到目标ID,读到的ID不是‘0’,但和期望的不符合,显示“ICDWarn0020: Invalid target device id (expected=0x89, read=0x71)”

首先检查芯片型号选择是否正确;如果是Debug模式下出现该提示,要先确认所选的MCU是否需要header才可通过ICD2调试。如果用了header出现该提示,那么检查header上用来设置ADC的enable/disable的跳线,这个跳线也会影响目标device的ID。


--------------------------------------------------------------------------------

ICD2编程时提示编程成功但校验失败

首先检查PGC/PGD有无外电路干扰,再看看Vdd有没有达到4.5V以上(PIC18J/PIC24/dsPIC33F系列除外),ICD2对芯片编程时首先要全擦,对大部分PIC来说执行“Bulk Erase”时Vdd最小电压是4.5V。这就要求即使是LF版的PIC在用ICD2编程时Vdd至少是4.5V,当然编完程后还是可以在低电压下(3V)使用ICD2调试的。

如果芯片有AVdd和AVss脚, 请在ICSP编程时分别接到Vdd和Vss, 否则也会出现这样的错误。

有些芯片使用时用到了内部晶振和内部复位,如PIC16F630/690等,用ICD2编程时一旦使能内部晶振和内部复位会有警告信息:

ICDWarn0033: You have selected Internal MCLR and Internal Oscillator in your configuration settings. If your code makes use of port pins that correspond to Clock and Data pins in programming mode, you may not be able to reprogram your device. See on-line help for this warning for more information. (OK/Cancel)

忽略该信息,初次ICD2可以成功编程该芯片。但如果芯片中已有配置字是内部晶振和内部复位的程序,且程序中有对ICSPCLK和ICSPDAT管脚的操作,再次编程就会有校验失败的错误提示。这是因为当使用内部晶振和内部复位时, ICD2一旦和目标板相连,目标芯片即已工作,ICD2对ICSPCLK和ICSPDAT的控制被目标芯片对这两脚的操作打乱,故而进不了编程模式。这时该考虑其他编程工具,或者在程序开头加2ms以上延时,保证芯片在真正执行程序前进入编程模式。 也有可能是ICD2占用了部分资源引起的。


--------------------------------------------------------------------------------

用ICD2调试或烧写PIC16F630/676,PIC12F629/675等带内部RC的器件,连接ICD2时警告“ICDwarn0044:Target has an invalid calibration memory value (Value). Continue?”

这是这些器件的程序存储器最后一个单元上的内部RC校准值(retlw xx)被修改了,可用PICkit 1重新生成一个值;也可在MPLAB IDE的Programmer--settings--calibration memory选项卡里把Allow ICD2 to program calibration memory 前的勾打上再填一个新的值,烧写后再次连接就没问题了。


--------------------------------------------------------------------------------

为什么在配置锁相环(PLL)振荡器时有问题,ICD2被挂起?

这是PICmicro单片机所要求的。在对PLL振荡器的配置位编程后,电源需要断开然后再加到目标板上。如果没有这样做,目标PICmicro单片机将没有时钟。没有时钟,调试模式将不能工作。同样,如果在切换到PLL模式时,电源没有被断开再连接,器件可能会运行,但没有使用PLL。


--------------------------------------------------------------------------------

ICD2在调试PIC12F629/675或PIC16F630/676时,为什么会有Invalid target device id警告?

在使用MPLAB ICD2和ICD2 仿真头调试这些器件过程中,这些器件的GP1/RA1 引脚不能被拉高,否则会警告Invalid target device id。参见MPLAB ICD 2 Header文档。


--------------------------------------------------------------------------------

ICD2单步执行时,定时器为什么运行不正常?

这是使用在线调试器的缺点之一。由于代码实际上是在调试执行程序中运行,在调试执行程序运行期间,即使用户的应用程序被中止,定时器也会继续运行。


--------------------------------------------------------------------------------

ICD2通过RETFIE 指令来使用高优先级中断时,为什么 W 、 STATUS 和BSR寄存器的值会改变?

用于高优先级中断和CALL FAST 的影子寄存器被MPLAB ICD 2 使用了。这些是保留给MPLAB ICD 2 操作的资源。如果断点设置在CALL FAST 子程序内,或者在通过RETURN FAST 或RETFIE 指令使用了影子寄存器的高优先级中断服务程序内,将会出现问题。


--------------------------------------------------------------------------------

dsPIC 使用ICD2在线调试的接口选择

在某些情况下,dsPIC默认的编程和调试引脚功能PGC/EMUC和PGD/EMUD,可能与其他外设(如I2CTM?、SPI或UART模块等)引脚复用。在这种情况下,应用能将这些引脚用于编程,但不能用于在线调试。此时在线调试应该使用备用调试通道,EMUC/EMUD1、EMUC2/EMUD2或EMUC3/EMUD3,具体的电路设计请参考152816.pdf文档。


--------------------------------------------------------------------------------

ICD2当在程序的起始位置设置一个断点时,为什么它停止在地址0x0001 ,而不是地址0x0000 ?

MPLAB ICD 2 在断点后的指令上暂停。这意味着设置了断点的地址0000 处的指令会被执行,接着当它发现断点时,程序计数器会指向地址0001。如果用户需要在其代码的第一条指令处暂停,他们必须在地址0000 处插入一条NOP 指令。


--------------------------------------------------------------------------------

ICD2通信不上

有可能操作系统有误,此时需要寄到原厂重新下载;也有可能是升级模块跟主板没有接触好。


--------------------------------------------------------------------------------

ICD2调试时出现ICDWarn0015: Program memory has changed since last program operation?

程序修改之后没有再重新编译、烧写到芯片里


--------------------------------------------------------------------------------

ICD2连接时出现ICD0152: Failed to read all of requested bytes (0x0 of 0x8)?

首先,ICD2是用USB还是串口跟电脑连接的?如果是串口连接的,改一下串口属性,具体步骤如下:

右击我的电脑--属性--硬件--设备管理器--端口(COM)--COM1(如果用其他COM,则选择相应的COMx)--属性--端口设置,在这里要做两个设置:

1,流控制方式--选择硬件

2,点击“高级”按纽--使用FIFO缓冲区。。。前面那个钩去掉。 设置完后可能还需要重启电脑。其次,升级一下IDE版本。


--------------------------------------------------------------------------------

PICKit2烧写完程序时出现Warning - No configuration word found in hex file?

那是因为烧写的程序里没有包含Config信息,需要在MPLAB IDE里对configbits进行设置,具体步骤:

1、打开MPLAB IDE;

2、通过file->import,打开要烧写的HEX文件;

3、对configbits进行设置;

4、通过file->export,导出HEX文件。

此时的HEX文件才是包含了config 信息的HEX文件,这样再用PICKIT2烧写的话应该就不会提示那个错误了。

看《匠人手记》,与匠人同行!北航出版,正在热卖!

发表评论:
载入中...

芯片专题

器件专题

软件专题

硬件专题

综合专题

项目专题

原创专题

器件检测
LCD LED
按键 触摸键
E2PROM
电池 电机
电阻 电容 电感

指令系统
软件算法
编程规范
滤波算法
串行通讯

PCB设计
I2C PWM
红外遥控
充电技术
中断 ADC 

匠人手记
匠人夜话
网络心路
一周热点串烧
从零开始玩PIC
DIY旋转时钟

广告5号位 [投放]


学习板、开发板、编程器、下载器、仿真器(查看详情……)

广告3号位 [投放]

站内搜索


站外搜索


百度  google
mp3  歌词 
图片  FLASH 
知道  文档
新闻  词典 
地图  mp3 
软件  天网 
雅虎  爱问 
搜狗  讯雷 
网讯  华军 
天空 

21IC器件搜索
百宝箱分站
  • 《匠人的百宝箱》21IC站
  • 《匠人的百宝箱》21IC笔记团队
  • 《匠人手记》21IC书友会
  • 《匠人的百宝箱》MCUBLOG站
  • 《匠人的百宝箱》MCUBLOG笔记团队
  • 《匠人的百宝箱》EDN站
  • 《匠人手记》EDN书友会
  • 《匠人的百宝箱》与非网站
  • 《匠人的百宝箱》新浪站
  • 《匠人的百宝箱》百度站
  • 《匠人的百宝箱》网易126站
  • 《匠人的百宝箱》网易163站
  • 《匠人的百宝箱》互动出版网站
  • 广告4号位 [投放]

     
     

    匠人原创

    往日酷贴

     
     
     

    大千八卦

    友情连接

    新浪新闻:
    新浪财经:
    AK58新闻:
    新浪股票:
    新浪股票:
    证券之星:

     [更多酷站连接]

     

     

    [欢迎交换连接]

    [百宝箱之与非门分舵]

    [电脑圈圈的家当]

    [IC921的博客]

    [柔月阁]

    [八楼的呼吸]

    [hotpower 的水潭]

    [xwj的文君阁]

    [所长的BLOG]

    [阿摆手记]

    [电子伙伴]

    [unaided的笔记]

    [小飞的笔记]

    [单片机开发联盟]

    [网址之家]

    [好东西网址大全]

    [美萍中文精选]

    [数字电视之家]

    [SMARTCODE电子书斋]

    [软件开发之窗]

    [Armoric]

    [我爱研发网]

    [infernal的笔记]

    [雄鹰的空中加油站]

    [SunK]

    [逍遥电子]

    [ningpanda的博客]

    [C-Design]

    [一网见天下]

    [海边淘沙]

    [嵌入式365]

    [水牛的仓库]

    [股剩是怎样炼成的]

    [PIC论坛]

    [ICC AVR开发网]

    [中国高校自动化网]

     

     

     

    MCU博客-中国电子工程师博客网 

    大学生电子网 

     

     

     

     

     

    !!! 《匠人的百宝箱》 !!!