admin 管理员组

文章数量: 1086019


2024年4月30日发(作者:杨戬下一部是什么)

PIC单片机在线串行编程(ICSP)和低电压编程(LVP)

前言:

呵呵,不是论文。

刚开始研究PIC,因为想自己做个开发板。除了如何让板子工作外,如何下程序就最关

键了。所以搜罗了些资料,经过一番研究,终于懂得了一些,拿出来分享一下。有些前辈们

在网上早就写过的资料,摘了一些。特此感谢啊!

副言:

因为想做PIC16F877和16F887的板子,所以只对这两个做了研究,但是貌似其他的型

号的PIC单片机的在线编程和这个一样!

正文:

ICSP,全称In-Circuit Serial Programming,在线串行编程。这行英文和ICSP这四个

字母,一般使用时都带有TM标记的,也就是说,这是MICROCHIP的商标。也是MicroChip

独有的吧。呵呵!

ICSP分高电压在线串行编程(High-voltage In Circuit Serial Programing)和低电压在

线串行编程(low-voltage ICSP)两种方法。低电压编程和高电压编程只是略微有一些不同

(详见下文)。

硬件连接方式:

MicroChip的ICSP,只需要使用芯片上的5个脚就可以,其中包括VDD、VSS(GND),,

然后就是VPP编程电压和输入的数据和时钟两个脚。一般是端口B口的RB6(PGC,也叫

ICSPCLK)和RB7(PGD,也叫ICSPDAT)。

若要对芯片的Flash和其他内存等进行编程,要使单片机工作到“编程/校验模式”。编程

器可以通过以下两种方法单片机工作到“编程/校验模式”。

第一种,VPP优先,时序图如下:

说明:

首先,保持和为低电平。在此期间,先将从低电平(VIL)拉高到编程电压(VIHH,大

约13V),然后将拉高,为芯片供电。接下来,就可以通过和对芯片编程了。不管芯片内的

配置字(Configuration Word)如何配置,都可以使单片机工作到“编程校验模式”。

第二种,优先,时序图如下:

说明:这种方法在板上已经为芯片提供电源时非常有用。这样可以在不切断板上电源的

情况下对芯片进行编程。与上一种方法的区别就是:保持和为低电平的期间,将从低电平(VIL)

拉高到编程电压(VIHH,大约13V),而不必管VDD。

备注:如果芯片的配置为或,并且(具体含义见芯片数据手册),则必须使用第一种编

程方法。

好了,常规编程(即高电压编程)说的差不多了,现在说说低电压编程

高电压编程时,VPP要拉高到13V,低电压编程与高电压编程的区别是,VPP只要拉到

VDD(5V)就可以。

单片机内的配置位LVP控制是否可以使用这种编程方式。并通过RB3(PGM)引脚控制

进入和退出低电压编程模式。

LVP为1时,RB3专门用于低电压编程的控制,而不在用作普通IO口。芯片出厂时

LVP为1,芯片被擦除后,LVP的状态也是1。

LVP使能时,通过先将RB3拉到VDD,然后将VPP拉到VDD,进入低电压编程模式。

其余的的规定就与高电压编程一样了!

接下来,编程接口的设计

编程接口设计的注意事项在《PICKIT2 单片机编程用户指南》上写的很好,网上可以

下载到!俺把它给粘到这里:

在线串行编程(ICSP)需要五个信号:

•VPP——编程电压;施加此电压时,器件进入编程模式。

•ICSPCLK/PGC——编程时钟;编程器到目标器件的单向同步串行时钟线。

•ICSPDAT/PGD——编程数据;双向同步串行数据线。

•VDD——电源正电压。

•VSS——电源参考地。

但是,必须将应用电路设计为允许所有编程信号连接至PIC单片机器件,而不会干扰编

程信号。下图显示了一个典型电路,设计ICSP应用电路时,可以此电路为起点。要成功实

现ICSP编程,必须遵守以下各节中的注意事项。

1)隔离VPP/MCLR/ 端口引脚

施加VPP电压时,必须考虑到应用电路中的典型VPP电压为+12V。在下列情况下,这

可能是一个需要考虑的问题:

a)将VPP 引脚用作MCLR 引脚时

根据器件数据手册的建议,应用电路一般与一个上拉电阻/电容电路连接。注意不要使

VPP电压的变化率变慢,而使其超出编程规范中规定的上升时间(通常为1us)。如果在

MCLR引脚连接监控电路或按钮,建议使用肖特基二极管或限流电阻将它们与VPP电压隔离,

如上图所示。有关配合ICSP使用监控电路的更多信息,请参见应用笔记AN820“

System

Supervisors in ICSP™ Architectures

”(DS00820)。

b)将VPP 引脚用作I/O 端口引脚时

连接到I/O引脚的应用电路可能无法处理+12V电压。建议如图所示使用肖特基二极管

或限流电阻来隔离此电路。

2)隔离ICSPCLK/PGC 和ICSPDAT/PGD 引脚

必须将ICSPCLK/PGC和ICSPDAT/PGD引脚与应用电路隔离,以防止应用电路影响编程

信号。ICSPCLK/PGC是编程器到目标器件的单向同步串行编程时钟线。ICSPDAT/PGD是双

向同步串行编程数据线。如果设计时允许,请将这些引脚专用于ICSP。但是,如果应用电

路需要使用这些引脚,就请采用不会改变信号电平和电压变化率的方式来设计电路。根据不

同的应用,隔离电路会有所差异。图3-1显示了其中一种隔离电路,它使用串联电阻将ICSP

信号与应用电路隔离。

3)VDD

在ICSP编程过程中,必须根据器件规范对PICMCU供电。一般情况下,将PICMCU的

电源连接到应用电路的电源。应用电路可由编程器或外部电源供电。


本文标签: 编程 电路 电压