英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 3984|回复: 0
打印 上一主题 下一主题

MCD2能烧写IC但是不能调试的主要原因

[复制链接]
跳转到指定楼层
1#
发表于 2009-5-5 16:19:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MCD2能烧写IC但是不能调试的主要原因有两个:

1、实验板上的晶振没正常工作,这可能是晶振本身质量问题,也可能是电容不匹配,还有可能是芯片配置位不正确。
2、MCD2本身的问题。


1.1 问: 为什么我的系统编程或校验失败?
   
答:检查PGC、PGD 和VPP 连接以及电压,这些引脚的外围不能有感性或容性器件,VPP引脚不能有二极管或电容。确保目标PICmicro 单片机已上电。如果目标PICmicro 单片机有AVSS 和AVDD引脚,确认这些引脚都已正确连接。

1.4 问: ICD 2 响应“Target not in debug mode error. ”这是什么意思?

答:通常这说明MPLAB ICD 2 不能和调试执行程序通讯。只能通过选择Debugger>rogram 菜单,对用户应用中的目标PICmicro单片机编程,来下载调试执行程序。也可能是其它原因使得调试执行程序不能通讯,如目标时钟或电源问题。查看配置位,确保振荡方式正确。查看Config>Configuration Bits...,确保看门狗被禁止,调试时代码保护一定要被关闭。


1.7 问: 为什么我在配置锁相环(PLL )振荡器时有问题?MPLAB ICD 2 被挂起

答:这是PICmicro 单片机所要求的。在对PLL 振荡器的配置位编程后,电源需要断开然后再加到目标板上。如果没有这样做,目标PICmicro 单片机将没有时钟。没有时钟,调试模式将不能工作。同样,如果在切换到PLL 模式时,电源没有被断开再连接,器件可能会运行,但没有使用PLL。
1.8 问: 当我尝试安装时,为什么找不到驱动,即使当我能在驱动文件夹中看到它们,并且我在驱动向导中指向了正确的文件夹也不行?

答:这个问题可以这样解决:退出驱动安装向导,再到控制面板选择“Add New Hardware (添加新硬件)”。在系统搜索新硬件后,选择“No, the device isn’t in the list.”,然后选择“No, I want to select the hardware from a list.”,再选择“Universal Serial Bus Controller,”。当出现“Have Disk...”按钮时,进入驱动文件夹,并选择正确的驱动。
1.10 问: 单步执行时,定时器为什么运行不正常?

答:这是使用在线调试器的缺点之一。由于代码实际上是在调试执行程序中运行,在调试执行程序运行期间,即使用户的应用程序被中止,定时器也会继续运行。
1.11 问:在使用PIC12F629/675 或PIC16F630/676 时,为什么会有警告和错误?

答:在使用MPLAB ICD 2 过程中,这些器件的GP1/RA1 引脚不能被拉高。参见MPLAB ICD 2 Header (DS51292)文档,获得更多关于对这些器件使用ICD 2 的信息。
1.12 问: 什么使电源和忙信号LED 闪烁?

答:这可能表示目标板上MPLAB ICD 2 连接插座的接线顺序反了(与接线图相反)。灯闪烁表示由于有大电流, MPLAB ICD 2 正在关闭。下面的测试表明目标板上接线顺序反了:
• 查找闪烁的Power 和Busy 信号LED (电源可能都关断了)。
• 执行一次“Self Test”,查找“MCLR=VPP”上的小错误
(所有其它测试可能都会通过)。
• 使用目标单片机的默认地址范围,执行一次编程。引脚1
(VPP)上7-8V 的电平太低了。
注意,如果目标板接线顺序相反, MPLAB ICD 2 中的保护电路会防止对模块造成破坏。当目标板正确连线时,可以看到其正常运作。

1.13 问:MPLAB ICD 2 中的“Self Test ”起什么作用?

答:“Self Test”按钮有助于确定MPLAB ICD 2 模块或目标板连接的问题。目标VDD如果选择了“Power from ICD2”,则测试由MPLAB ICD 2 提供的VDD 〔仅5 V〕。如果选择了“Power from target”,则测试由目标板提供的VDD 〔2 至6V〕。Pass/Fail 码:错误表示在Advanced 对话框中“Power”设置不正确,或者目标板的VDD 高于/ 低于规定值。模块VPP测试在编程过程中由MPLAB ICD 2 提供给目标板VPP/MCLR 引脚
的编程电压(VPP)。Pass/Fail 码:出现错误表明目标板VPP/MCLR 引脚接线不正确。MCLR=Gnd测试MPLAB ICD 2 为复位目标单片机,提供地电平给目标VPP/MCLR 引脚的能力。Pass/Fail 码:出现错误表明VPP/MCLR 引脚接线不正确。
00 = Pass VDD 在指定的范围内
01 = Min error VDD 低于指定的范围
80 = Max error VDD 高于指定的范围
00 = Pass VPP 在指定的范围内
01 = Min error VPP 低于指定的范围
80 = Max error VPP 高于指定的范围
00 = Pass 地电平可以提供给目标VPP/MCLR 引脚
80 = Max error 地电平对于目标VPP/MCLR 引脚太高
MCLR=VDD
测试正常工作〔如‘Run’〕期间, MPLAB ICD 2 提供VDD 给目标VPP/MCLR 引脚的能力。
Pass/Fail 码:
出现错误表明在Advanced 对话框中“Power”设置不正确,或者目标的VDD 高于/ 低于规定值。
MCLR=VPP
测试在编程过程中MPLAB ICD 2 提供VPP 给目标VPP/MCLR 引脚的能力。
Pass/Fail 码:
出现错误表明VPP/MCLR 引脚接线不正确。

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

答:用于高优先级中断和CALL FAST 的影子寄存器被MPLABICD 2 使用了。这些是保留给MPLAB ICD 2 操作的资源。如果断点设置在CALL FAST 子程序内,或者在通过 RETURN FAST 或RETFIE 指令使用了影子寄存器的高优先级中断服务程序内,将会出现问题。
00 = Pass VDD 可提供给目标VPP/MCLR 引脚
01 = Min error VDD 对于目标VPP/MCLR 引脚太低
80 = Max error VDD 对于目标VPP/MCLR 引脚太高
00 = Pass VPP 可提供给目标VPP/MCLR 引脚
01 = Min error VPP 对于目标VPP/MCLR 引脚太低
80 = Max error VPP 对于目标VPP/MCLR 引脚太高

1.15 问: 当我在程序的起始位置设置一个断点时,为什么它停止在地址0001 ,而不是地址0000 ?
  

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

1.16 问: 为什么我的校准存储器显示已擦除的值?
  

答:MPLAB IDE 正在显示默认的存储器值。要显示器件上的实际值,必须使用MPLAB ICD 2 进行一次器件读操作。

1.17 问: 单步执行代码时,我的定时器超时了,但为什么我的定时器中断服务程序没有执行?

答:单步执行时,在线调试器不允许PICmicro 单片机响应中断。如果允许的话,当用户有外部中断时,那么单步执行将几乎总是在中断服务程序中结束。要调试中断,应在中断服务程序中设置断点并运行,这样在产生中断后执行到断点。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-11-24 09:43 , Processed in 0.053910 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表