当前位置:首页 >> 信息与通信 >>

MPLABicd2调试故障说明


MPLAB ICD2 调试问题的处理

1、 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,确保看门狗被禁止,代码保护、 掉电检测等被关闭。

也有可能是复位引脚接了电容或二极管之类引起的。 2、 连接 ICD2 时显示“ICD0021: Unable to connect with MPLAB ICD 2” 答:请检查一下 ICD2 与电脑连接的通讯口是否设置正确(USB or COM) 。 3、 连接 ICD2 时显示“ICD0286: Unable to communicate with ICD。ICD0082: Failed MPLAB ICD 2 operation”

答:这可能是操作系统有误,此时手动下载操作系统即可。 4、连接 ICD2 时显示 “ICD0019: Communications: Failed to open port: (Windows::GetLastError() = 0x2, '系统找不到指定的文件。') ICD0021: Unable to connect with MCU.” 答:通常是 ICD2 驱动找不到,需重装。也可能是由于 PC 的 USB 口供电不足导致驱动无法 正确加载。 5、 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 还是能正常编程和调试的。 6、 ICD2 自检通过,但提示没找到目标 ID,读到的 ID 是‘0’ ,显示“ICDWarn0020: Invalid target device id (expected=0x89, read=0)”

答:此时首要任务是检查硬件连接,PGC/PGD 有无接错,或 PGD/PGC 上有容性负载或感 性负载。 若是 PIC18J 器件,请确认 vddcore 是使能且该脚接了 0.1-10uF 的低 ESR 电容。 注: ICD2 到目标板的连接线如果是一端水晶头,一端插针的,要注意蓝色才是第一根,白色一 般是不用的。 7、 ICD2 自检通过,但提示没找到目标 ID,读到的 ID 不是‘0’ ,但和期望的不符合,显 示“ICDWarn0020: Invalid target device id (expected=0x89, read=0x71)” 答:首先检查芯片型号选择是否正确;如果是 Debug 模式下出现该提示,要先确认所选的 MCU 是否需要 header 才可通过 ICD2 调试。如果用了 header 出现该提示,那么检查 header 上用来设置 ADC 的 enable/disable 的跳线,这个跳线也会影响目标 device 的 ID。 8、 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, 否则也会出现这样的 错误。 其次,也有可能是由于从 ICD2 向目标板供电,使烧写电流不足导致的,此时建议从目标板 供电。 9、 用 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 前的勾打上再填一个新的值, 烧写后再次连接就没问题了。 10、 为什么在配置锁相环(PLL)振荡器时有问题,ICD2 被挂起? 答:这是 PICmicro 单片机所要求的。在对 PLL 振荡器的配置位编程后,电源需要断开然后 再加到目标板上。如果没有这样做,目标 PICmicro 单片机将没有时钟。没有时钟,调试模 式将不能工作。同样,如果在切换到 PLL 模式时,电源没有被断开再连接,器件可能会运 行,但没有使用 PLL。 11、 在调试 PIC12F629/675/PIC16F627A/628A/PIC16F630/676/PIC16F648A 时,为什么会有 Invalid target device id 警告? 答:在使用 MPLAB ICD2 和 ICD2 仿真头调试这些器件过程中,这些器件的 GP1/RA1 引

脚不能被拉高,否则会警告 Invalid target device id。参见 MPLAB ICD 2 Header 文档。 12、 单步执行时,定时器为什么运行不正常?

答:这是使用在线调试器的缺点之一。由于代码实际上是在调试执行程序中运行,在调试执 行程序运行期间,即使用户的应用程序被中止,定时器也会继续运行。 13、 通过 RETFIE 指令来使用高优先级中断时,为什么 W 、STATUS 和 BSR 寄存器的值 会改变? 答:用于高优先级中断和 CALL FAST 的影子寄存器被 MPLABICD 2 使用了。这些是保留 给 MPLAB ICD 2 操作的资源。如果断点设置在 CALL FAST 子程序内,或者在通过 RETURN FAST 或 RETFIE 指令使用了影子寄存器的高优先级中断服务程序内,将会出现 问题。 14、 dsPIC 使用 ICD2 在线调试的接口选择 答:在某些情况下,dsPIC 默认的编程和调试引脚功能 PGC/EMUC 和 PGD/EMUD,可能与 其他外设(如 I2CTM、SPI 或 UART 模块等)引脚复用。在这种情况下,应用能将这些引 脚用于编程,但不能用于在线调试。此时在线调试应该使用备用调试通道,EMUC/EMUD1、 EMUC2/EMUD2 或 EMUC3/EMUD3,具体的电路设计请参考 152816.pdf 文档。 15、当在程序的起始位置设置一个断点时, 为什么它停止在地址 0001 , 而不是地址 0000 ? 答:MPLAB ICD 2 在断点后的指令上暂停。这意味着设置了断点的地址 0000 处的指令会 被执行,接着当它发现断点时,程序计数器会指向地址 0001。如果用户需要在其代码的第 一条指令处暂停,他们必须在地址 0000 处插入一条 NOP 指令。 16、 调试时出现 ICDWarn0015: Program memory has changed since last program operation?

答:程序修改之后没有再重新编译、烧写到芯片里。 17、 连接时出现 ICD0152: Failed to read all of requested bytes (0x0 of 0x8) 答:首先,ICD2 是用 USB 还是串口跟电脑连接的?如果是串口连接的,改一下串口属性, 具体步骤如下: 右击我的电脑--属性--硬件--设备管理器--端口(COM)--COM1(如果用其他 COM,则选择 相应的 COMx)--属性--端口设置,在这里要做两个设置: 1,流控制方式--选择硬件 2,点击“高级”按纽--使用 FIFO 缓冲区。。前面那个钩去掉。 设置完后可能还需要重启 。 电脑。

其次,升级一下 IDE 版本。 18、 安装 USB 接口时,选择的是从指定位置安装,第一次提供的是 ICD2W2K1.INF,安装 完后又重复让安装,提供的是 ICD2W2KL.INF,这是怎么回事?

答:这是正常的,它需要安装两次。 19、 为什么软件上无法选择由 ICD2 向目标板供电? 答:对于 PIC18FXXJXX、PIC24、dsPIC30F、dsPIC33F 系列的器件,MCHP 为了保护开发 工具,禁止了该项操作,调试或烧写的时候目标器件需要独立供电。 20、 在内存中看见 70h 为 RR,在 watch 窗口中显示“reserved memory” ,且不能手动修改, 这是为什么? 答:这个地址的寄存器可能被 ICD2 占用了,ICD2 在线调试的时候会占用芯片的部分资源, 具 体 的 可 以 参 考 下 面 文 档 : Microchip\MPLAB IDE\ICD2\hlpMPLABICD2.chm\Operation\MPLAB ICD2 Overview\Resources Used By MPLAB ICD2 21、 为什么 ICD2 在调试的时候中断不正常? 答:这是因为 ICD2 在调试的时候占用了一些内部资源,导致不能调试芯片的定时器中断和 PIC18 系列器件的高优先级中断 22、 在用 PIC12F629/675/16F630/676/627A/628A/648A 仿真头时,需要注意哪些地方? 答:必须使用内部振荡或外部有源振荡;MCLR 脚必须高电平;当 GP1/RA1 为高电平时将 无法进行调试;不能在对 GPIO 操作的指令上设置断点。 23、 ICD2 USB 驱动程序在哪里? 答 : 在 MPLAB IDE 的 安 装 目 录 下 : Program IDE\ICD2\Drivers\icdw2k.inf(icd2w2kl.inf) Files\Microchip\MPLAB

24、 ICD2 调试的时候 ERROR 灯突然亮,但调试其它 MCU 又正常 答:这可能是 ICD2 占用了芯片内部资源,程序到一定规模如果发生 RAM 或 ROM 资源冲 突,就会飞掉,ERROR 灯就亮。 25、 有些芯片使用时用到了内部晶振和内部复位,如 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 以上延时,保证芯 片在真正执行程序前进入编程模式。



相关文章:
mplab ICD2-0625烧写器使用说明
mplab ICD2-0625烧写器使用说明_工学_高等教育_教育专区。烧写器必备工具ICD2...1 目录 使用软件 - 2 在线调试器和在线仿真器 - 3 装箱单 - 5 6 芯...
MPLAB ICD2初次使用流程
2, 选择工具(Select Tool) 用户选择 ICD2 作为调试工具,那么需要在 MPLAB IDE...MPLAB ICD2 使用说明 39页 1下载券 MPLAB_ICD2占用资源列表... 暂无评价 9页...
MPLAB-ICD使用说明书
mplab IC2使用说明书 53页 2下载券 MPLAB_ICD2使用手册 100页 1下载券 MPLAB...使用说明书 http://www.pic16.com 位机的通讯、控制逻辑和所有的调试、编程功...
DSC调试常见问题
DSC调试常见问题_信息与通信_工程科技_专业资料。微芯公司控制器DSC调试常见问题DSC...其他问题,请详细查阅 MPLAB ICD2 使用说明书,MPLAB IDE 安装目录下的 readme ...
实验一 PIC集成开发环境MPLAB IDE 的使用
学习使用在线调试和编程器 MPLAB ICD2 二、实验方法:本项目是为第一次接触单片机的同学而设计的,要求同学通过运行例程 1 来初步认识单片机的开发环境, 学会利用在线...
实验一 PIC集成开发环境MPLAB IDE 的使用
MPLAB ICD2 进行调试,用watch窗口观察程序执行结果:寄存器PORTD和TRISD的 值,...MPLAB IDE 简单使用说明 25页 1下载券 第一章 PIC16系列单片机... 29页 1...
MPLAB及C18安装使用简介
··· MPLAB6.XX 及 PICC18 安装使用简介 MPLAB...MPLAB ICD2 也一样) ,调试时用 USB 口进行调试,...继续安装,此 后将出现几个说明的文档,关闭这些文档...
MPLAB IDE 汇编建工程
点击 OK 选择 MPLAB ICD2 作为调试器: 1. 注意:如果 MPLAB IDE 在启动时试图连接到 MPLAB ICD2,但 是因为 USB 口或一个非 COM1 的 COM 口被使用而失败,...
更多相关标签: