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