Logiciels > Programmation PIC > Conseils

Dernière mise à jour : 05/02/2012

Présentation

L'envie de réaliser un montage électronique qui comporte un composant programmable est parfois de nature à rebuter le débutant. Certains de mes montages comportent un PIC, qui est un microcontrôleur et qui fait partie des composants programmables qui ne peut rien faire tant qu'il n'est pas préparé à accomplir les tâches qu'on attend de lui, à savoir tant qu'il n'est pas programmé. En ce qui concerne mes montages, je propose un service gratuit de programmation de PIC, dont les détails sont donnés à la page Programmation PIC - Sources. Pour ceux qui veulent programmer eux-même un PIC avec le fichier binaire compilé *.hex que je mets à disposition, il convient de suivre les recommandations et conseils que je donne ci-après.

J'utilise vos fichiers hex et ça ne marche pas !

Il existe dans la nature une multitude de programmateurs de PIC, commercialisés ou faits maison. Certains fonctionnent bien avec certains PIC et pas ou mal avec d'autres. La première chose est donc de connaître la liste des composants que votre programmmateur est supposé supporter, pour savoir si vous pouvez programmer tel ou tel modèle de composant. Si votre programmateur dispose de plusieurs supports de tailles diverses, il y a de fortes chances qu'il puisse programmer un grand nombre de références. S'il ne possède qu'un seul support (par exemple un support à 18 broches) le nombre de boîtiers supportés sera forcement plus faible. Je ne peux pas garantir à 100% que les fichiers *.hex compilés que je mets à disposition sur mon site conduiront à un fonctionnement sûr avec votre programmateur, même si un fichier *.hex est censé répondre à un standard qui doit être reconnu et accepté par le plus grand nombre de programmateurs. J'ai plusieurs types de retours de la part de ceux qui ont programmé eux-mêmes un PIC avec mes fichiers compilés :
1 - Ca fonctionne, merci !
2 - Impossible de programmer le PIC, merci de m'aider.
3 - La programmation s'est bien déroulée mais le PIC ne tourne pas ou tourne à une mauvaise vitesse d'horloge.
Voici ce que je peux dire en réponse à ces messages :
1 - Ca fonctionne ? J'en suis ravi et je vous remercie pour votre retour positif !
2 - Impossible de programmer le PIC ? Là je ne peux pas grand chose, il faut lire le mode d'emploi de votre programmateur et vérifier toutes les étapes une par une.
3 - Programmation OK mais déroulement programme inattendu ? Il y a 95% de chances que le problème vienne de la configuration des fusibles, notamment celui du reset général (MCLR) ou ceux liés aux modes d'horloge (CLOCK / CLK).
Les lignes qui suivent énumèrent les points à vérifier en premier, car il sont les causes les plus fréquentes de mauvais fonctionnement.

Remarque

Configuration MCLR (Master Clear, remise à zéro)

La broche MCLR peut avoir deux fonctions qui sont définies par un "fusible" (FUSE en anglais) appelé à juste titre MCLR et qui peut prendre deux valeurs, ON ou OFF.
On peut se trouver en présence de trois cas de figure possibles, selon l'usage du PIC et de ce qui l'entoure :

Configuration CLK/CLOCK INT/EXT (oscillateur interne / externe)

Pour tout ce qui est choix du mode oscillateur, je vous invite dans un premier temps à consulter la page PIC - Configuration oscillateur. Une fois cette page lue, vous devriez être plus à même de savoir lire le schéma et de déterminer si pour tel ou tel montage l'oscillateur est de type interne ou externe. Voici en résumé ce que je peux dire en ce qui concerne mes propres montages (globalement vrai aussi pour les autres montages qui ne sont pas de moi).

Remarques

Configuration CLOCK (fréquence d'horloge)

Une mauvaise configuration d'horloge peut conduire à des résultats curieux, surtout quand le programme du PIC utilise des routines qui ont une notion avec le temps. Il ne suffit pas de spécifier le mode d'horloge - qui ne fait que dire au PIC comment il doit travailler pour son cadencement, il faut aussi lui dire à quelle vitesse il doit travailler. Supposons par exemple que pour un programme donné on indique au PIC qu'il doit travailler à une fréquence d'horloge de 1 MHz avec un quartz externe de 1 MHz. Les opérations qu'il va dérouler au fil de l'exécution de son programme vont s'effectuer à la bonne vitesse seulement si le quartz mis en place est effectivement un modèle 1 MHz, et si la valeur spécifiée lors de la programmation du PIC est elle aussi de 1 MHz. Si la valeur d'horloge du PIC qui est spécifiée est de 32 kHz (par erreur ou par oubli) et que le quartz est un modèle 1 MHz, le programme va s'exécuter beaucoup plus vite que la normale et vous verrez parfois qu'il se passe quelques chose mais que ça ne fonctionne pas bien. A l'inverse, si le PIC est configuré sur 8 MHz alors que le quartz est un modèle 1 MHz, le programme va s'exécuter beaucoup plus lentement, et vous aurez l'impression (à juste titre) que quelque chose cloche. Le plus amusant est quand on est patient, et qu'on constate que le PIC commence à se manifester au bout de plusieurs secondes seulement. Le paramètre "Fréquence d'horloge" est, vous l'avez compris, très important et vous devez toujours vous assurer que la valeur spécifiée au moment de la programmation du PIC est celle que l'auteur du montage a désignée.