Non, vous n'avez pas besoin, en fait vous ne pouvez pas, utiliser SPI, UART ou I 2 C pour programmer le PIC. La seule façon d'obtenir un nouveau programme dans un PIC qui n'a pas de code spécial chargé à cet effet (un chargeur de démarrage) est d'utiliser l'interface de programmation matérielle externe. Électriquement, cela signifie la connexion à Vss, MCLR, PGC et PGD. Il peut être utile que le programmateur soit également connecté à Vdd, mais pas nécessaire pour cette puce tant que le niveau Vdd est connu et que le programmeur est ajusté en conséquence.
L'interface matérielle de bas niveau est assez simple. PGD est la ligne de données, qui est échantillonnée par le PIC sur le front descendant de PGC (la ligne d'horloge). Pour mettre le PIC en mode de programmation en premier lieu, une clé spéciale de 32 bits est synchronisée par rapport à des bords spécifiques sur le MCLR (bien que voir la note ci-dessous concernant la programmation haute tension).
Le protocole de niveau supérieur devient plus compliqué. La plupart des choses se font avec des commandes 6 bits, dont certaines sont suivies de mots de données 14 bits. Vous devez lire attentivement les spécifications de programmation. Notez que la spécification de programmation est un document distinct de la fiche technique. Accédez à la page du produit pour votre PIC particulier sur le site Web de Microchip, et vous trouverez un lien vers les spécifications de programmation dans la section des documents.
Ajouté sur la programmation haute tension
Ces types de PIC ont deux façons d'entrer en mode de programmation: haute tension (HVP) et basse tension (LVP). La méthode haute tension nécessite d'élever le MCLR entre 8 et 9 volts et de le maintenir pendant la programmation. Cette méthode fonctionne toujours, indépendamment des éventuelles données programmées dans le PIC.
La méthode basse tension pour entrer en mode de programmation commence par conduire le MCLR à haut, puis à bas, puis à cadencer dans une séquence de touches spéciale de 32 bits en utilisant PGC et PGD normalement. La pièce entrera en mode de programmation sur la séquence de touches correcte et restera en mode de programmation tant que MCLR est maintenu bas.
La méthode basse tension peut être désactivée par l'un des bits de configuration. Cependant, l'état effacé du bit de configuration permet une programmation basse tension, il est expédié de l'usine de cette façon, et ce bit de configuration ne peut être défini pour interdire LVP que si la programmation a été entrée avec la méthode haute tension. Par conséquent, pour que LVP ne soit pas activé, toutes les conditions suivantes doivent être remplies:
- Le PIC a été programmé pour la dernière fois avec un programmateur compatible HVP et le mode d'entrée du programme HVP a été utilisé.
- Le fichier HEX programmé dans le PIC définit délibérément le bit LVP du mot de configuration 2 à l'état non effacé.
Étant donné que la désactivation de LVP nécessite à peu près une action délibérée et le bon programmeur, il est probablement toujours activé. S'il a été délibérément désactivé pour une raison étrange, vous devez fournir 8-9 V sur MCLR pour mettre le PIC en mode de programmation au moins assez longtemps pour effectuer un effacement en masse (qui réactive LVP).