不,实际上,您不需要使用SPI,UART或I 2 C对PIC进行编程。将新程序导入没有为此目的加载特殊代码的PIC(引导加载程序)的唯一方法是使用外部硬件编程接口。在电气上,这意味着连接到Vss,MCLR,PGC和PGD。将编程器也连接到Vdd可能会很有用,但对于此芯片而言并不必要,只要知道Vdd电平并相应地调整了编程器即可。
低层硬件接口非常简单。PGD是数据线,由PIC在PGC的下降沿(时钟线)采样。首先,要使PIC进入编程模式,需要相对于MCLR上的特定边沿计时一个特殊的32位密钥(尽管有关高压编程,请参见以下注释)。
更高级别的协议变得更加复杂。大多数事情都是用6位命令完成的,其中一些命令后面是14位数据字。您必须仔细阅读编程规范。请注意,编程规范是与数据手册分开的文档。转到Microchip网站上特定PIC的产品页面,然后在“文档”部分中找到编程规范的链接。
添加了有关高压编程的信息
这类PIC有两种进入编程模式的方式:高压(HVP)和低压(LVP)。高压方法要求将MCLR升高到8到9伏之间,并在编程过程中保持在该水平。不管在PIC中编程了什么数据,该方法始终有效。
进入编程模式的低电压方法是先将MCLR驱动为高电平,然后为低电平,然后通常使用PGC和PGD以特殊的32位键控时钟进行计时。器件将按照正确的按键顺序进入编程模式,并且只要MCLR保持低电平就可以保持编程模式。
可以通过配置位之一禁用低电压方法。但是,配置位的擦除状态允许进行低压编程,这种方式是出厂时出厂的,并且如果使用高压方法输入编程,则只能将该配置位设置为禁止LVP。因此,要使LVP不启用,必须满足以下所有条件:
- 最后用具有HVP功能的编程器对PIC进行编程,并使用HVP程序输入模式。
- 编程到PIC中的HEX文件会故意将配置字2中的LVP位置为未擦除状态。
由于禁用LVP几乎需要经过深思熟虑的操作和正确的程序员,因此它仍然可能启用。如果由于某种奇怪的原因而故意将其禁用,则必须在MCLR上提供8-9 V电压,以使PIC进入编程模式的时间至少足够长以执行批量擦除(重新启用LVP)。