第四节 ICD2 的常见问题(ICD2相关基本问题汇总)
ICD2是什么?
MPLAB-ICD2在线调试器是一款低价位的PIC单片机开发工具,它利用Flash工艺芯片的程序区自读写功能,使用芯片来实现仿真调试功能。MPLAB-ICD2由Microchip公司设计,使用的软件平台是MPLAB-IDE v6.20(集成开发环境软件包)或更高版本,兼容Windows95/98/NT/2000/XP等操作系统。其通信接口方式可以是USB(最高可达到2Mbit/s)或RS-232串行接口方式;工作电压范围为2.0~5.5V,可支持最低2.0V的低压调试。MPLAB-ICD2可以支持大部分的Flash工艺的芯片,它不仅可以用做调试器,同时还可以作为开发型的烧写器使用。ICD2是一种方便廉价的开发工具,这种调试工具所使用的方式也是一种日趋普遍运用的开发方式,这是由于新的芯片的推出不断加快,仿真器往往只支持已有芯片的调试,而ICD2可以支持未来推出的芯片。
调试器、仿真器、编程器有什么不同?
简单的说,仿真器相当于一块可以迅速修改代码的单片机。它通过仿真头插在目标电路上放置单片机的座子上,用户可以方便的调试程序代码,一般不会占用芯片资源,调试也很便捷。程序调试完毕,就需要用编程器,把代码烧写到一块空白单片机里,再把这块含有代码的单片机插入原来仿真头的位置,开发工作就完成了。仿真器用于调试程序代码;编程器用于烧写程序代码。而ICD2是一种在线调试器工具,简单的说,它是简单的仿真器+简易的编程器。使用ICD2,需要在目标电路上已经存在一片支持ICSP接口的单片机。ICD2通过ICSP接口(包括电源最少是5根线)连接到这块芯片。这样,程序代码可以通过ICD2下载到单片机了,同时可以执行程序进行调试,程序修改后能够重复下载再调试,直至完成,而此时,程序已经在单片机里了,断开ICSP连接就可以脱机工作。但是,ICSP连接方式占用了一些芯片资源,在调试阶段不能使用。针对这个问题,我们可以采用写好代码下载,然后脱机调试解决。
ICD2的ICSP接口占用哪些芯片资源?
ICD2在线调试占用的资源,包括目标芯片的RB6,RB7引脚(如果需要低压编程还有RB3引脚),MCLR/VPP脚,还占用部分程序存储器空间和RAM,以及2级硬件堆栈。对于某些芯片还有特殊要求。这些资源在调试阶段不能使用,在脱机状态完全可以使用。
ICSP接口的RB3引脚有什么功能,是否也要占用?
RB3引脚是用于低压编程(一般在程序执行的过程中对局部代码进行改变,但是又不具备13V的编程电压的应用)情况下的控制,如果目标芯片不需要低压编程,完全可以不用连接。当然这时可以把RB3作为一般I/O口处理。
USB接口和RS232接口的ICD2有什么不同?
USB通信接口方式下数据传输最高可达2Mbit/s,RS-232串行接口方式数据传输为19,200或57,600bit/s。所以采用USB接口的ICD2在调试状态下能够获得更高的响应速度。其他功能两者完全一样。由于USB接口比较复杂,而且使用的芯片昂贵,所以不适合一般条件的自制。
ICD2支持的芯片有哪些?
ICD2支持的芯片是含有ICSP接口的带FLASH程序空间的单片机,软件平台则与MPLAB-IDE版本有关,一般来说,更高版本的IDE条件下,ICD2支持更多的芯片。然而由于历史的原因,许多常见的芯片(主要是那时还没有ICSP接口)ICD2不支持。对于不支持的芯片,可以先用功能相同或者涵盖的其他芯片代替,等到调试完毕,修改配置字,重新按照需要的芯片型号编译再烧写就可以达到目的。目前支持的芯片列表可查询Microchip网站。
制作ICD2的方法(电路图)有许多,它们有什么差异?
ICD2电路本身很简单,主要包括:以PIC16F877(A)为核心的控制部分、MAX232组成的串口通讯电路、13V编程电压调节控制电路、VPP/MCLR控制输出电压选择电路、ICSP接口(RB6/RB7/RB3)电路、5V工作电源电路,如果具有USB接口,还包括CY7C64613为核心的USB通讯电路。PIC16F877和PIC16F877A有一些差异,所以需要不同的Boot程序。ICD2电路的不同主要就是实现这些功能采取的不同方法,原因包括元件的价格、是否容易获得,一些次要的不常用的功能的简略。需要注意的是有些电路存在错误,必须仔细分析对照。
ICD2的编程(烧写)电压是多少?
ICD2的VPP编程电压在12.5~14.0V范围之间,13.0V时为最佳状态,可重复编程上万次。14.0V时能写1000次左右;而较低的编程电压可以延长擦写次数,但是写入的代码容易校验错误。一般来说,调试一个程序,烧写次数不会超过几百次,所以编程电压在12.5~14.0V之间都是可以的。
ICD2需要仿真头吗?
上面已经提及,ICD2是调试器,不是仿真器,所以一般情况不需要仿真头。只要在目标电路设计时预留ICSP接口就可以了。如果没有考虑到或者不想预留,只需在调试阶段,把ICSP连接所需要的几根线连接到芯片对应引脚就可以了。调试完毕,拆了这几根调试连接线。另外,芯片的种类、封装、引脚位置都不一样,不会有完全兼容的仿真头。其实,ICSP开发方式,就是避免了使用仿真器开发不同芯片需要配置多种仿真头的弊端。只有当ICD2调试一些不能直接支持的芯片时,才需要特殊的"仿真头",它其实是一种Microchip专用的芯片,这种仿真头只有Microchip指定的代理商才能提供。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。