摘要 介绍一种简便实用的PIC编程器实现方案。设计思想是:以单片机作为主控机,欲写入的PIC程序代码存放在主控机中,由主控机提供PIC芯片编程所需信号,并监测整个编程流程。在时钟脉冲信号作用下,把代码写入PIC的Flash中以达到对芯片编程的目的。该方案可以在脱离PC的环境下运行,适用于对批量的PIC芯片进行编程。
关键词 PIClOF202 串行编程 89C51
随着工业生产的扩大,存在着对同一型号芯片进行相同代码编程的需要。目前采用的编程方式是通过专用的编程器来执行,其编程过程离不开PC机。在对一定批量的芯片编程时,操作比较烦琐,保密性能差,且难以在工业现场进行。
本编程器设计简单,操作方便,保密性好,易携带,需要的外部设备少。编程器以PIClOF202为例进行设计。PIClOF2xx系列是 Microchip公司生产的低功耗,高性能Flash单片机。其封装小,易于使用,成本低。性能稳定,在通用电子设计中被广泛使用。本设计的基本思想适用于其他类型的单片机。
1 PICl0F2xx的存储结构及编程方法
1.1 存储空间映射
以PICl0F202为例,其内部程序存储空间映射如下:
0000H~0lFFH是用户可以使用的代码存储空间,0200H~03FFH是系统的配置空间。其中01FFH单元是复位向量,系统复位后程序指针PC 将指向此地址单元。0200H~0203H是用户ID信息存储区间。0204H地址单元存放的是备份的OSCCAL值,被预留用来测试内部晶振,因此该值在任何情况下都不应该被更改。一旦被擦除,必须恢复该值,否则芯片不能正常工作。03FF地址单元存放系统的配置字,其他地址单元系统保留。
1.2 芯片编程方法
采用串行在线编程的方式,串行时钟信号由主控单元的I/O口发出,从PIC的时钟引脚ISCLK输入。在串行时钟信号作用下,串行数据从数据引脚ISDAT输入/输出,完成对芯片的Flash的代码写入。
只有在进入编程模式后,PIClOF202才能允许对其存储空间的操作,如图l所示。当保持ISDAT(串行数据输入端)和ISCLK(串行时钟输入端) 为低电平时,VCC(芯片电源)上升到高电平。经tl延时,MCLR(编程模式选择端)上升到高电平,再经t2延时,开始时钟脉冲和数据的输入/输出。此时PIClOF202进入编程模式。
2 系统硬件结构
系统逻辑框图如图2所示,由主控机、控制模块、监控显示模块和目标芯片组成。主控机选用89C51单片机,用单片机的2个I/O口分别提供ISDAT和 ISCLK信号;目标芯片即PIC。PIC的MCLR端为编程模式选择端。为了让PIC10F202能够进入编程状态,需要由控制模块实现对MCLR端的电平控制。监控显示模块用于指示目前系统的工作状态和监控系统运行。