开发工具ICD2使用问题解决PIC编程Word格式.docx
《开发工具ICD2使用问题解决PIC编程Word格式.docx》由会员分享,可在线阅读,更多相关《开发工具ICD2使用问题解决PIC编程Word格式.docx(31页珍藏版)》请在冰豆网上搜索。
1.3问:
无法连接到MPLABICD2。
我现在该怎么做?
MPLABICD2的电源灯亮了吗?
这个LED应该是明亮的。
如果它比较暗,可能只连接了USB,用户可能需要连接一个电源。
PC的RS-232口不能为MPLABICD2提供电源,不过USB口可以。
注意有些USB集线器不能提供电源。
请针对当前的故障线索,查看在线帮助。
USB驱动安装正确吗?
在Windows设备管理器对话框(如图6-1所示)中应该可以看到MPLABICD2的USB驱动。
一些USB集线器不能给连接的USB设备提供电源。
使用这些集线器时,需要在MPLABICD2上接一个电源。
1.4问:
ICD2响应“Targetnotindebugmodeerror.”这是什么意思?
通常这说明MPLABICD2不能和调试执行程序通讯。
只能通过选择Debugger>
Program菜单,对用户应用中的目标PICmicro单片机编程,来下载调试执行程序。
也可能是其它原因使得调试执行程序不能通讯,如目标时钟或电源问题。
查看配置位,确保“BackgroundDebug”使能。
查看Config>
ConfigurationBits...,确保看门狗被禁止,代码保护被关闭,并且振荡器设置正确。
1.5问:
MPLABICD2能和一个低电压运行的目标器件一起工作吗?
是的。
只要目标PICmicro单片机支持低电压运行,它就能在VDD低至约2V的情况下运行。
在MPLABICD2的输入/输出缓冲器中有电平转换器。
这些输入/输出缓冲器通过目标器件的VDD供电。
另外,MPLABICD2会检测目标器件的工作电压,并正确地调整其功能来处理低电压操作,即使用正确的FLASH擦除算法。
在MPLABICD2的“Settings”对话框中,VDD需选择为“FromTarget”,并且在目标板上要有一个电源用于低电压运行。
1.6问:
MPLABICD2支持低电压编程(LVP)吗?
不支持。
但这并不表示当目标器件运行在低电压VDD时,MPLABICD2不能正常工作。
只是表示施加到VPP上的编程电压应总是+12V。
1.7问:
为什么我在配置锁相环(PLL)振荡器时有问题?
MPLABICD2被挂起
这是PICmicro单片机所要求的。
在对PLL振荡器的配置位编程后,电源需要断开然后再加到目标板上。
如果没有这样做,目标PICmicro单片机将没有时钟。
没有时钟,调试模式将不能工作。
同样,如果在切换到PLL模式时,电源没有被断开再连接,器件可能会运行,但没有使用PLL。
1.8问:
当我尝试安装时,为什么找不到驱动,即使当我能在驱动文件夹中看到它们,并且我在驱动向导中指向了正确的文件夹也不行?
这个问题可以这样解决:
退出驱动安装向导,再到控制面板选择“AddNewHardware(添加新硬件)”。
在系统搜索新硬件后,选择“No,thedeviceisn’tinthelist.”,然后选择“No,Iwanttoselectthehardwarefromalist.”,再选择“UniversalSerialBusController,”。
当出现“HaveDisk...”按钮时,进入驱动文件夹,并选择正确的驱动。
1.9问:
我能使用MPLABICD2实现代码保护吗?
不能。
代码保护,特别是程序存储器中任何区域的表读保护会妨碍MPLABICD2正常工作。
当使用MPLABICD2调试时,不要使用任何代码保护或表读保护的配置设置。
当烧写器件进行测试时,如果没有连接MPLABICD2,可以使能代码保护。
1.10问:
单步执行时,定时器为什么运行不正常?
这是使用在线调试器的缺点之一。
由于代码实际上是在调试执行程序中运行,在调试执行程序运行期间,即使用户的应用程序被中止,定时器也会继续运行。
1.11问:
在使用PIC12F629/675或PIC16F630/676时,为什么会有警告和错误?
在使用MPLABICD2过程中,这些器件的GP1/RA1引脚不能被拉高。
参见MPLABICD2Header(DS51292)文档,获得更多关于对这些器件使用ICD2的信息。
1.12问:
什么使电源和忙信号LED闪烁?
这可能表示目标板上MPLABICD2连接插座的接线顺序反了(与接线图相反)。
灯闪烁表示由于有大电流,MPLABICD2正在关闭。
下面的测试表明目标板上接线顺序反了:
•查找闪烁的Power和Busy信号LED(电源可能都关断了)。
•执行一次“SelfTest”,查找“MCLR=VPP”上的小错误
(所有其它测试可能都会通过)。
•使用目标单片机的默认地址范围,执行一次编程。
引脚1
(VPP)上7-8V的电平太低了。
注意,如果目标板接线顺序相反,MPLABICD2中的保护电路会防止对模块造成破坏。
当目标板正确连线时,可以看到其正常运作。
1.13问:
MPLABICD2中的“SelfTest”起什么作用?
“SelfTest”按钮有助于确定MPLABICD2模块或目标板连接的问题。
目标VDD如果选择了“PowerfromICD2”,则测试由MPLABICD2提供的VDD〔仅5V〕。
如果选择了“Powerfromtarget”,则测试由目标板提供的VDD〔2至6V〕。
Pass/Fail码:
错误表示在Advanced对话框中“Power”设置不正确,或者目标板的VDD高于/低于规定值。
模块VPP测试在编程过程中由MPLABICD2提供给目标板VPP/MCLR引脚
的编程电压(VPP)。
出现错误表明目标板VPP/MCLR引脚接线不正确。
MCLR=Gnd测试MPLABICD2为复位目标单片机,提供地电平给目标VPP/MCLR引脚的能力。
出现错误表明VPP/MCLR引脚接线不正确。
00=PassVDD在指定的范围内
01=MinerrorVDD低于指定的范围
80=MaxerrorVDD高于指定的范围
00=PassVPP在指定的范围内
01=MinerrorVPP低于指定的范围
80=MaxerrorVPP高于指定的范围
00=Pass地电平可以提供给目标VPP/MCLR引脚
80=Maxerror地电平对于目标VPP/MCLR引脚太高
MCLR=VDD
测试正常工作〔如‘Run’〕期间,MPLABICD2提供VDD给目标VPP/MCLR引脚的能力。
出现错误表明在Advanced对话框中“Power”设置不正确,或者目标的VDD高于/低于规定值。
MCLR=VPP
测试在编程过程中MPLABICD2提供VPP给目标VPP/MCLR引脚的能力。
1.14问:
通过RETFIE指令来使用高优先级中断时,为什么W、STATUS和BSR寄存器的值会改变?
用于高优先级中断和CALLFAST的影子寄存器被MPLABICD2使用了。
这些是保留给MPLABICD2操作的资源。
如果断点设置在CALLFAST子程序内,或者在通过RETURNFAST或RETFIE指令使用了影子寄存器的高优先级中断服务程序内,将会出现问题。
00=PassVDD可提供给目标VPP/MCLR引脚
01=MinerrorVDD对于目标VPP/MCLR引脚太低
80=MaxerrorVDD对于目标VPP/MCLR引脚太高
00=PassVPP可提供给目标VPP/MCLR引脚
01=MinerrorVPP对于目标VPP/MCLR引脚太低
80=MaxerrorVPP对于目标VPP/MCLR引脚太高
1.15问:
当我在程序的起始位置设置一个断点时,为什么它停止在地址0001,而不是地址0000?
MPLABICD2在断点后的指令上暂停。
这意味着设置了断点的地址0000处的指令会被执行,接着当它发现断点时,程序计数器会指向地址0001。
如果用户需要在其代码的第一条指令处暂停,他们必须在地址0000处插入一条NOP指令。
1.16问:
为什么我的校准存储器显示已擦除的值?
MPLABIDE正在显示默认的存储器值。
要显示器件上的实际值,必须使用MPLABICD2进行一次器件读操作。
1.17问:
单步执行代码时,我的定时器超时了,但为什么我的定时器中断服务程序没有执行?
单步执行时,在线调试器不允许PICmicro单片机响应中断。
如果允许的话,当用户有外部中断时,那么单步执行将几乎总是在中断服务程序中结束。
要调试中断,应在中断服务程序中设置断点并运行,这样在产生中断后执行到断点。
1.18问:
MCHP的工具串口属性都要做调整
右击我的电脑——属性——硬件——设备管理器——端口(COM)——COM1(如果用其他COM,则选择相应的COMx)——属性——端口设置,好现在开始两个步骤的设置。
1,流控制方式——选择硬件
2,点击“高级”按纽——FIFOxxxxx....前面那个钩去掉。
不管用PLUS,还是ICD2用串口调试/烧写时,都要做以上动作。
设置完,可以考虑重新启动电脑,因为有的电脑需要重新启动后对串口的修改才能生效,有的是不需要。
拨特率,细心的客户可能会发现MCHP做的东西要嘛是19200,要嘛是57600,但电脑默认是9600,那么电脑的COM属性要做匹配调整吗,答案是——不需要。
1.19:
问:
经常有人用MCHP的ICD2,PLUS烧写,然后校验的时候提示错误0161
这就表示烧写没烧成功,很多时候这是串口属性没设置引起的,修改后就OK了。
还有的可能比如工具底层固件突然崩溃。
PLUS的底层尤其脆弱。
解决也很简单——重新DOWNLOAD一下底层固件,也就是工具的OPERATINGSYSTEM。
另外,如果由于电源比较异常,也可能引起0161的问题。
1.20:
MCHP的PLUS烧16C57
MCHP的PLUS烧16C57,记得把芯片的26脚与烧写座脱离接触。
可以翘起来,烧完翘回去,当然,还可以在加一个28PIN座,把座子的26脚废了,那芯片与PLUS的烧写座26脚就实际上脱离了接触。
还有的人,打开了PLUS,断开了26脚,搞了个跳线,平时连通,需要烧57的时候把跳线拔掉,本质上也是做到脱离接触。
1.21:
经常有这样的事情发生,仿真OK,烧写失败
其中一点,烧写方法有误导致的烧写失败。
烧PIC的片子,除非你用的是MCHP设计的工具,比如ICD2,ICE2000/4000,用任何的第三方设计的仿真工具,请执行按以下动作烧写,以保证烧写OK。
1,在仿真器下调试通过的源代码,拿到MCHP的编译器MPLABIDE下(现在最高版本V7.31),再次编译。
这时候可能需要建立必要的项目,而且必须对芯片类型,CONFIGBITS,进行相应的设置。
2,此时生产的HEX文件才是必然包含config信息的HEX文件,是值得信赖的烧写文件。
可以从FILE——EXPORT——导出HEX文件,提交烧写的专人。
3,用FILE——IMPORT导入HEX文件,检查检查芯片设置和CONFIG,然后烧写。
我们公司的2004,2002软件环境下生成的HEX文件是不包含config信息,一个同事用过wave的某款仿真器,也发现可能有类似的问题,最后拿到MPLABIDE下一编译再烧写,天下太平。
由于我们公司仅代理制造PLUS,ICD2,PIKIT2,遇到其他MCHP的烧写工具问题,请咨询相关的代理商或MCHP的FAE。
1.22:
PICMCU中有A結尾和沒A結尾的兩中型號有什區別?
带A的便宜。
不带A的行将停产,又贵。
877到877A,内部资源增加,工艺改变。
627到627A,内部资源不动,工艺改变。
使用ICD2支持dsPIC注意事项
使用ICD2调试dsPIC时需要注意以下内容:
1、调试线不能太长,建议20cm以内;
2、调试dsPIC时应先连接ICD2,然后再对用户板上电,否则有可能出现ICDWarning20或烧写失败提示
在使用某些旧版本ICD2调试dsPIC过程中可能会出现重新烧写项目时烧写失败的提示,解决方案如下:
1、拆开ICD2机壳,在主机板上找到R23、R36(180欧,0603);
2、将R23、R36更换为0欧0603的电阻,或使用焊锡将其短路即可;
如果用户不希望作以上更改也可以采用如下方式解决:
1、使用ICD2提供电源时,将调试线从用户板取下再插上(用户板下电),然后重新连接ICD2即可进行调试;
或点击Debugger->
DebuggerSettings->
power设置为使用用户板电源,点“应用”,然后改回使用ICD2电源,再次点“应用”然后重新连接ICD2即可进行调试。
2、使用用户板电源时,应去掉用户板电源,连接ICD2一次,然后再对用户板上电。
此时重新连接ICD2即可进行调试。
开发工具ICD2使用方面需要注意的问题。
rogram菜单,对用户应用中的目标PICmicro单片机编程,来下载调试执行程序。
Pass/Fail码