ICSP(In-Circuit Serial Programming)即在线串行编程,通过保持RB6和RB7引脚为低电平,VDD 为编程电压,并将MCLR(VPP)引脚电压从VIL增加到VIHH,器件便进入编程/校验模式。此时,RB6为编程时钟线,RB7为编程数据线。在该模式下,RB6和RB7都是施密特触发器输入,当RB7驱动数据时,它是CMOS输出驱动。
复位后,为使器件进入编程/校验模式,程序计数器(PC)指向00h地址。然后可向器件发送一个6位的命令,根据这一命令是装入还是读出,14位编程数据将被提供给器件或是从器件中读出。但是在线串行编程模式下,看门狗定时器电路不能产生器件复位。
硬件电路
在线串行编程电路应该注意以下问题:
1) MCLR/VPP引脚与电路其它部分相隔离
通常设计中MCLR/VPP引脚与RC电路相连,上拉电阻接VDD,电容接地。VPP电压必须与电路的其它部分隔离,根据电容器的大小,RC电路可能影响ICSP的操作。因此当RC电路与MCLR/VPP相连时,可以使用了肖特基型二极管来隔离电路。当对PICmicro ® 单片机编程时,MCLR/VPP引脚将被同时驱动至大约13V,因此应用电路必须与编程器提供的编程电压隔离。
2) RB6和RB7的负载
RB6和RB7引脚用于PICmicro®单片机的串行编程。RB6是时钟线,RB7是数据线。RB6由编程器驱动,RB7是双向引脚,编程时由编程器驱动,校验时由PICmicro®单片机驱动。这两个引脚必须与电路的其它部分隔离,从而