mini ICD2.docx
《mini ICD2.docx》由会员分享,可在线阅读,更多相关《mini ICD2.docx(31页珍藏版)》请在冰点文库上搜索。
miniICD2
MiniICD2系列说明书
声明:
本说明书仅针对MPLABICD2、本站ICD2硬件部分,配合使用软件为MPLABIDEV7.30以上版本。
软件附在随机光盘中,也可到网站上下载。
软件详细使用说明请查阅MPLABIDE中文使用说明书。
本文档内容按“现状”提供,除非适用的法律另有规定,否则不对本文档的准确性、可靠性和内容做出任何类型的、明确或默许的保证。
本公司遵循发展的策略,因此保留在不预先通知的情况下对本文档描述的产品进行修改和改进并修订、更新文档的权利。
目录
使用软件
在线调试器和在线仿真器
装箱单
6芯排线连线说明
调试保留资源
ICD2支持的芯片型号
ICD2USB驱动安装
使用ICD2作为调试器
使用ICD2作为烧写器-
常见问题(FAQ)
ICD2使用说明
ICD2装箱单
附录一DEMO2
MPLABICD2简介
MPLABICD2,简称ICD2,由美国Microchip公司设计,本公司授权制造。
使用软件
MPLABICD2使用的软件平台是Microchip的MPLAB-IDEv7.51(建议使用最新版本),兼容Win98、WinNT、Win2000和WinXP等操作系统。
因为MPLAB集成环境是Microchip为其所有的开发工具研发的,故使用ICD2前需要选择工具。
又由于ICD2可以充当调试器和烧写器,所以在debugger和Programmer菜单中都可以进行选择。
注意区分ICD2在这两种状态下的Program按键所表示功能的不同。
在debugger模式下,Program表示把用户目标文件和监控程序一起烧入待调试的MCU中,这个程序在离开ICD2后是不能单独运行的。
在线调试器和在线仿真器
MPLABICD2在线调试器是ICE(在线仿真器,如Picmate系列和ICE2000系列等)的一个廉价替代品。
这款低价位的PIC开发工具,利用Flash工艺芯片的程序区读写功能,把监控程序连同用户程序一同烧入待调试的芯片中,利用监控程序来实现仿真调试功能。
当然,ICD2也具备烧写功能,可作为开发型的编程器使用。
它能完成很多以前只有昂贵的ICE才能做的工作,但这些好处是以牺牲在线仿真器的一些便利为代价的。
与ICE相比,在线调试器需要满足如下要求:
●需要占用被仿真MCU的一些软硬件资源(详见下文)。
●需要占用MCU的管脚,这些管脚的连接有一定的限制。
●目标MCU必须有一个正常运行的时钟,并工作正常。
●系统中所有的连接都正常
●只能设置一个断点,每次调试都必须重新烧写一次程序。
●仿真功能和调试手段受限制,详见下文。
而ICE则完全没有上述限制,提供了最强大的调试能力(断点类型丰富,断点个数不限,跟踪、触发等等)。
在开发和调试期间,ICE仿真器提供存储器和时钟,并能运行代码(即使没有与目标应用板相连);而ICD2要求每次研发时都必须有样片,在应用不运行时将根本无法进行调试,这两点要求(样片和硬件正常)对研发来说制约很大。
调试手段的限制主要有以下几点:
1)使用单步不能响应中断。
由于的硬件条件限制,ICD2在执行单步时不能跳转到中断入口处。
2)用户可以访问堆栈,但是不能观察其变化。
3)MPLAB-IDE状态栏中显示的时钟频率与实际情况无关。
实际频率是由用户板上的振荡情况决定的,IDE不能正确的体现它。
4)每次修改程序之后或通讯异常都需要重新对芯片进行编程。
仿真功能的限制主要有以下几点:
1)调试时不能使用SLEEP指令,即无法仿真睡眠的情况。
2)调试时不能使用WDT。
3)调试时不能开启芯片的代码保护(不能烧写保密位)。
4)调试时不能开启低电压烧写模式。
5)有内部复位内部振荡的芯片如16F917,不能同时使用内部复位,内部振荡。
一旦使用过一次,下次再连接有可能无法识别到目标芯片,此时需要用专用烧写器如PLUS,PICPRO将其插除后再次使用。
尽管ICD与ICE相比有一些不足,但它也有一些突出的优点:
●在产品量产后,只要保留6芯插针,即可直接与ICD2相连,而不需要取下单片机来插入ICE仿真头。
●ICD2可以在目标应用中对固件再编程,而不需要其它在线烧写器设备。
装箱单
ICD2开发套件包括:
1)ICD2主机
2)USB电缆、
3)电源适配器
4)2根6芯电缆排线
5)安装光盘
6)DEMO2板:
选配
6芯排线连线说明
2根6芯电缆排线,为了避免调试dsPIC时线缆过长导致的不稳定,我们特意提供了一条短线。
排线可以直接把ICD2连接到用户板。
只需用户板在布板时预留一个6芯插针接口(其中RB3不用接)。
请注意排线的三角标记,以此来鉴别第一脚在哪边。
图1-2ICD26芯排连线
调试保留资源
当使用MPLABICD2进行开发时,用户必须知道保留给调试用的器件资源。
可查看MPLABIDE在线帮助或者当前软件的README文件来获得所使用处理器资源的细节。
通常来说,在线调试使用如下片内资源:
●MCLR/VPP为编程所共用。
●低电压编程(Low-voltageprogramming,LVP)禁止。
●PGC和PGD被保留用于编程和在线调试。
●一或两个堆栈单元被MPLABICD2调试器使用。
●几个通用数据寄存器被保留用于在线调试。
●程序存储器的高地址部分保留给调试执行代码。
●PIC18FXXXX单片机的影子堆栈在调试时不可用。
应用程序可以使用影子堆栈,但不能调试快速中断返回或快速CALL子程序返回,因为ICD在获得一个断点时会覆盖影子堆栈。
●当使用MPLABICD2调试DSPIC系列芯片时下列RAM空间无法使用:
0x800-0x84F。
ICD2支持的芯片型号
MPLABICD2支持大部分F系列PIC芯片。
详情请查看MPLABIDE菜单下的Configure->SelectDevice。
目前ICD2不支持的FLASH工艺的PIC芯片有:
PIC16F7x、PIC16F84A、PIC16F54/57。
此外,由于ICD2占用了MCU的一些管脚,对于管脚数量较少(8~20pin)的芯片,这将变得不可接受,因为MCU的可用IO本来就不多。
这时ICD2需要使用仿真头,而不能直接通过6芯线进行调试。
下表列出了常见仿真头型号:
仿真头型号
可仿真的芯片型号
备注
AC162050*
PIC12F629/675
仿真头上为专用芯片,不能用普通芯片替代;专用芯片其实为普通芯片+调试管脚,从而减少对MCU管腿的占用。
AC162052*
PIC16F630/676
AC162053*
PIC16F627A/628A/648A
AC162054
PIC16F716
AC162055
PIC16F684
AC162056
PIC16F688
AC162057
PIC12F635/PIC16F636
AC162058
PIC12F683
AC162059
PIC10F200/2/4/6、PIC12F508/509、PIC16F505
AC162066
PIC16F639
仿真头型号
可仿真的芯片型号
备注
AC162060
PIC16F785/HV785
AC162061
PIC16F685/687/689/690、PIC16F631/677
AC162070
PIC10F220/222、PIC12F510、PIC16F506
带*的仿真头,必须使用内部振荡或外部有源振荡;MCLR脚必须是高电平;当GP1/RA1为高电平时将无法进行调试;不能在对GPIO操作的指令上设置断点。
调试PIC18FXXX时:
1)设置的程序区必须8个word对齐。
例如起始地址可以设置为0x10,而不能是0x12;结束地址可以是0x1F而不能是0x14。
2)对于PICXX20,AVDD和AVSS引脚必须接上。
ICD2USB驱动安装
如果安装了错误的驱动,ICD2工作会有问题。
Windows经常会尝试安装默认的USB驱动。
MPLABICD2不能使用默认的驱动。
如果遇到了问题,应查看硬件设备管理器来确认Microchip的USB驱动列在USB设备下。
有时未知的USB设备会出现在“otherdevices(其它设备)”列表下。
如果发现这样的设备,应将其移除,然后根据PC的相应操作系统按以下步骤进行操作。
手动安装步骤如下:
1、安装好MPLABIDE软件;
2、当一个新的USB设备第一次插入Windows98/ME系统时,会出现一个对话框提示系统找到了新硬件设备。
也可能出现对话框告知用户设备的数据库正在建立或更新。
点击“下一步”继续安装;
3、选择“搜索适于我的设备的驱动程序”,点击“下一步”;
4、
如下图所示,选择“指定一个位置”,点击“下一步”;
图2-1安装USB驱动步骤1
5、如下图所示,在弹出的窗口中使用“浏览”按钮来选择厂商文件复制来源。
图2-2安装USB驱动2
在常规安装下,这个路径(取决于您的操作系统)应该为:
C:
\ProgramFiles\Microchip\MPLABIDE\ICD2\Drivers(或Drivers2000等等)\ICD2_USB
这个路径必须包括以下文件:
ICD2W98.INF或ICD2W2K.INF等等
ICD2W98.SYS或ICD2W2K.SYS等等
ICD2W98L.SYS或ICD2W2KL.SYS等等
6、设置完成后,点击“下一步”。
此时,MPLABICD2将“re-enumerate”。
可能会再次出现提示这种情形的一系列对话框。
系统应会自动加载与设备通讯所需的MPLABICD2USB客户端驱动。
安装最后一个对话框将提示“MicrochipMPLABICD2FirmwareLoader”已经安装完毕。
点击“完成”来结束安装。
上述步骤完成后就可以正常使用了。
使用ICD2作为调试器
1.硬件连接
硬件的正确连接步骤是:
1)用USB线或连接PC和ICD2主机;
2)用6芯软线连接ICD2主机和仿真头;
3)将仿真头插到用户板上;
4)确认ICD2的电源设置后接上ICD2电源或给用户板上电;
注:
如果用户不使用仿真头,而是通过用户板预留接口进行调试,那么步骤2)和3)应合并为:
用6芯软线连接ICD2主机和用户板的调试接口(调试接口的连接方式见第一章的“烧写配置”章节)。
2.设置ICD2
2.1选择芯片
首先,用户需要选择调试芯片的型号(不同系列的芯片其调试系统是不一样的),点击主菜单的Configure->SelectDevice,在Device窗口的下拉菜单里选择需要调试的芯片型号。
如图3-1所示。
选择了相应芯片之后,用户将会在下面的“MicrochipProgrammerToolSupport”框和“MicrochipDebuggerToolSupport”框里看到各种Microchip烧写工具和调试工具对该芯片的支持情况;其中:
1)红点表示该工具目前还不支持当前芯片;
2)绿点表示该工具可以支持当前芯片;
3)黄点表示该工具目前对当前芯片的支持还处在测试状态;
在选择芯片完型号之后点击“OK”确认。
2.2设置工具选项
2.2.1选择工具类型
如果用户选择ICD2作为调试工具,那么需要在MPLABIDE中进行设置。
点击主菜单的Debugger->SelectTool,选择为MPLABICD2。
图3-1选择芯片型号窗口
这时系统将会提示“ICDWarn0030:
ICD2isabouttodownloadanewoperatingsystem.……DownloadingOperatingSystem”。
这是系统在下载配合该芯片使用的硬件操作系统,用户需要等待一段时间以便完成此操作。
当硬件操作系统下载完成之后,系统将会检查ICD2的连接情况。
如果提示“TargetDevice****found”那么一切正常;如果提示“ICDWarn0020:
Invaildtargetdeviceid……”那么请检查电源设置以及6芯电缆的连接情况。
2.2.2设置通信方式
如果用户连接了ICD2的USB线,并安装了相应的USB驱动程序,那么MPLABIDE将默认ICD2的通信方式为USB接口方式。
如果用户需要更改通信的方式,那么用户需要重新设置它。
点击主菜单的Debugger->Settings。
系统将弹出一个ICDDebugger窗口,选择“Communication”。
在“ComPort”栏里选择相应的COM口,然后在“BaudRate”栏里选择相应的通讯波特率(如图3-2所示)。
设置完成后点击下方的“应用”按钮来保存设置。
图3-2设置通信方式
2.2.3设置编程选项
在ICDDebugger窗口里选择“Program”来设置相应的编程选项。
在“SelectMemories”栏目里相应的选项之前打上钩,比如如果在“ID”前打上勾,在编程时将会写入用户ID码。
用户还可以设置编程时程序的起始和和终止地址,在“ProgramMemoryAddress”(程序存储器地址)栏目里设置相应的选项。
在设置时请注意开始字节不能超过0x10,而结束地址则需要符合ICD2的编程要求为监控程序模块预留255个语句的空间。
合理设置起始和结束地址可以增加调试的速度。
设置完成后点击下方的“应用”按钮来保存设置。
图3-3设置编程选项
2.2.4电源设置
如果用户没有为目标板设计电源,那么需要选择为由ICD2提供电源的方式。
在ICDDebugger窗口里选择“Power”来设置相应选项,如图3-4所示。
为避免对目标板负载过重对ICD2带来损伤影响调试,编程,强烈建议采用目标板独立供电。
如果用户目标板上面已经有电源了,不需要由主机来提供那么请您把“PowertargetcircuitfromMPLABICD2”(从ICD2供电)前面的勾去掉。
使用“Update”按键可以让用户刷新目前目标板上的Vdd、Vpp以及主机提供的烧写电压情况。
设置完成后点击下方的“应用”按钮来保存设置。
图3-4设置电源
2.2.5工具信息
用户还可以在ICDDebugger窗口面了解到调试器其他相关的信息:
◆“Status”栏目:
显示当前状态,在此栏目中可以执行自检;
◆“Warning”栏目:
显示警告信息,用户可以在这个栏目里决定是否打开相关的警告信息;
◆“Limitation”栏目:
从这里用户可以了解到ICD2的一些使用限制;
◆“Versions”栏目:
版本信息;
当ICDDebugger窗口的所有项目设置完成后,如果点击“确定”退出设置,则系统将会保存所有当前的设置;如果点击ICDDebugger窗口右上方的“×”来退出设置,那么所有未“应用”的设置将不被保存。
2.3设置芯片的CONFIG字
要使芯片能正确地工作用户还需要设置相应的CONFIG字,点击主菜单的Configure->ConfigurationBits来进行相应的设置。
系统将会弹出一个“ConfigurationBits”窗口,如图3-5所示。
图3-5Configuration设置窗口
点击“Setting”列里面的相应选项之后系统将会出现一个下拉菜单,用户可以在这个菜单里面选择相应的设置。
请注意在使用ICD2作为调试器的时候,需要关闭“LowVoltageProgram”(低电压编程)选项,以及关闭“CodeProtect”(代码保护);同时将“BackgroundDebug”(背景调试)选项打开。
用户芯片的配置是需要根据实际情况来选择,否则芯片可能无法正常工作而导致ICD2出现错误提示。
2.4设置语言工具
如果用户需要使用C语言来编程,那么用户还需要设置语言工具的路径。
点击主菜单的Project->SetLanguageToolLocations…来设置语言工具路径。
在系统弹出的“SetLanguageToolLocations”(设置语言工具位置)对话框里选择相应的语言工具,本例中选择的是HITECHPICC编译器。
在相应的语言选项的子树“Executables”(可执行文件)树下点击相应的选项,使用“Browse”(浏览)来设置对应的可执行文件。
如图3-6所示。
图3-6设置语言工具的路径
在本例中,我们将“HI-TECHAssembler”、“HI-TECHComplier”和“HI-TECHLinker”都设置指向为D:
\HT-PIC\bin\picc.exe,这是我的PC上的HITECHPICC编译器路径,用户应该根据实际安装情况来设置。
如果用户只使用汇编语言进行编程,那么他们可以不设置这项,直接使用默认设置。
3建立工程项目
3.1建立项目
在对源程序进行调试之前首先需要建立一个项目,这样MPLABIDE系统就能把相关的调试信息包含进去。
点击主菜单的Project->New,来建立新的项目。
在系统弹出来的“NewProject”(新项目)窗口里面的“ProjectName”(项目名称)栏里面是输入相应的项目名,建议项目的名称要和源程序的名次一致。
然后使用“Browse”(浏览)按钮来选择源程序所在的路径。
如图3-7所示。
建议用户将所有的调试所需的文件放在同一个目录里,以便于调试。
在所有设置完成之后点击“OK”退出。
图3-7建立新的项目
这时系统将在所选择的路径里生成一个后缀为.mcp的文件。
3.2添加(删除)文件
接下来需要把调试所需的文件加入到项目里。
用户将会在主界面里看到一个“*.mcw”的窗口,在“*.mcp”的树下有四个分支,分别是“SourceFiles”(源程序)、“HeadFiles”(头文件)、“ObjectFiles”(目标文件)及“LibraryFiles”库文件。
如图3-8所示。
用户可以通过右键菜单“AddFiles”来添加文件,这些文件通常被称之为节点文件,是需要在调试过程调用的。
同样,用户可以在选定的文件上使用右键菜单来删除文件。
在删除该文件之前请确认此文件已经不再被该项目使用。
4使用ICD2进行调试
4.1调试准备步骤
在完成前面的设置应正确连接好硬件之后,用户就可以开始使用了。
4.1.1连接
使用主菜单的Debugger->Connect,或直接使用工具栏上的快捷图标来连接。
连接成功之后在“Output”窗口的“MPLABICD2”信息页里将提示“TargetDevice****found,revision=**”,如图3-10所示,如果提示“ICDWarn0020:
Invaildtargetdeviceid……”那么请检查电源设置以及6芯电缆的连接情况。
图3-10主界面及信息窗口
4.1.2编译
接下来用户要进行编译,以便生成相应的调试文件。
点击主菜单的Project->BuildAll来编译整个项目,或者使用工具栏上的快捷图标。
如图3-10所示。
编译的结果将在“Output”窗口的“Build”页显示。
如果编译发现了错误,则将不能生成调试所需的.hex文件,这样是不能继续进行下一步的。
用户需要根据该页的提示改正程序之后,重新编译,直至编译器没有发现错误。
4.1.3编程(烧写)
当“Output”窗口的“Build”页中提示编译成功之后,编译过程生成了相应的.hex文件。
此时用户需要使用工具栏上的“编程”快捷图标对目标芯片进行编程,在编程时需要注意芯片的CONFIG字设置(祥见§3.2.3设置芯片的CONFIG字)以及编程区域设置(详见§3.2.2.3设置编程选项)。
如果编程过程中出现“Config区校验失败”的提示,请检查芯片的MCLR脚电路。
如果您采用的是直接接到电源的上拉方式,请直接断开该线路。
4.2运行及调试
在编程成功之后用户就可以进行调试了。
ICD2提供了多种运行及调试的手段。
综合运用这些运行调试手段可以比较方便的验证程序的功能,并发现其中存在的缺陷和错误。
4.2.1运行方式
按工具栏上的快捷图标的顺序由左至右,ICD2运行的方式有:
◆“Run”:
全速运行,如果运行过程中遇到了断点将会停止。
使用这个运行方式可以直观的观察到程序的运行效果,并整体的验证其功能;
◆“Halt”:
停止运行。
请注意,由于ICD2是通过使用Flash工艺芯片的自编程功能来实现调试功能的,在执行此功能时,并不代表芯片已经实际停止了运行,而只是不再执行当前程序的功能了。
此时如果发生了掉电或者干扰导致芯片与ICD2主机之间发生了通信错误,则用户需要重新执行“连接->编程”的过程。
◆“StepInto”:
单步执行。
使用单步的功能可以观察到当前语句执行的效果。
利用单步功能可以实现多种调试目的,例如,可以使用该功能来观察程序分支的跳转方向,或者用来观察数据的转移、运算等。
◆“StepOver”:
块单步。
使用这个功能时系统将跳过子程序的调用过程,直接执行到调用的下一语句,这样用户在遇到“CALL”语句时就可以利用这个功能直接看到调用的结果了。
假如该语句调用的是没有必要进行分析的延时子程序,那么使用此功能就可以避免陷入单步执行烦琐的循环过程的麻烦。
◆“Reset”:
使芯片复位。
对于汇编源程序来说,执行此功能后程序PC将指向芯片的复位地址;对于C语言源程序来说,执行此功能后程序PC则是指向main()函数首地址。
4.2.2断点设置
断点功能是在调试中经常使用到的功能,这项功能使芯片在运行到相应的程序语句时停止下来。
在程序运行到断点停下为的时候,用户可以根据目标板的运行情况或者相关RAM的值来分析运行的情况。
(ICD2只能提供一个断点。
)
4.2.3观察变量设置
在运行调试的过程中,用户可能经常会需要观察一些寄存器的值。
为了使用方便,可以把一些经常要查看的寄存器设置为观察变量。
使用主菜单命令View->Watch来进行设置,系统将会弹出一个“Watch”(观察变量)窗口。
如图3-11所示。
图3-11观察变量窗口
在窗口的“AddSFR”按钮后面的下拉菜单中显示的是特殊寄存器的名称,用户可从下拉菜单中选取并使用“AddSFR”按钮将需要观察的特殊寄存器添加到观察变量列表中。
同样的,用户可以在“AddSymbol”按钮后的下拉菜单中选取自定义的标号,并使用该按钮将所选标号添加到观察变量列表中去。
为了观察的方便,用户还可以利用观察变量窗口中的“Watch1”~“Watch4”4个子窗口分类添加观察变量。
ICD2提供了多种的变量观察方式,用户可以使用包括用户自行设定的观察变量以及通用存储器、程序存储器、硬件堆栈和EEPROM等窗口。
使用主菜单的“View”选项可以打开或关闭这些窗口。
使用ICD2作为烧写器
1ICD2的烧写设置
1.1选择芯片
同上(见第19页)
1.2设置工具选项
1.2.1选择工具类型
如果用户选择ICD2作为烧写工具,那么需要在MPLABIDE中进行设置。
点击主