Cette rubrique PicTrain est assez nouvelle (deux mois) pour que vous puissiez aisément nous rattraper et sauter en marche ! Aujourd´hui à notre menu :
8.
8.1.
8.2.

8.3.
 L´écriture dans le microP
   Le logiciel ICprog
   Ecriture

 ANNEXES : Pense-bête
8. L´écriture dans le microP
Si vous avez bien lu et compris (et expérimenté) la première présentation sur les microP, inutile de repasser en détail ce chapitre, je ne fais en gros que me répéter. Sinon, place à la révision !
L´opération consiste uniquement à écrire dans le microP le fichier PicTrain1.hex créé par MPLAB dans le répertoire du projet. Elle ne nécessite aucune réflexion, uniquement l´application des règles que nous allons revoir ci-dessous. Il faut cependant bien comprendre que cette opération est primordiale car, si le microP est mal écrit, le montage ne fonctionnera pas, et de plus on peut détruire le microP en cas de mauvaise manipulation. D´accord, 2,35 euros, ça n´est pas la ruine, mais ce n´est pas une raison...
Pour l´écriture dans le microP, il faut disposer du logiciel ICprog et d´un programmateur, pour ma part j´utilise PIC-01.
PTI+   Précision. — Dans ma présentation, je propose la combinaison IC-Prog et PIC-01, car c’est celle que j’utilise avec entière satisfaction depuis un certain temps. J’ai essayé plusieurs autres cartes et logiciels, mais j’ai trouvé que c’était la plus simple d’emploi, et qui marchait à tous les coups. Bien entendu des tas d’autres solutions sont possibles, vous trouverez même sur Internet des schémas pour construire vous-même votre programmateur avec une poignée de composants.
Je ne suis pas un professionnel de la chose, et n’ai aucun intérêt dans un fabricant ou un autre, je ne préconise dons rien en particulier. Fidèle à l’esprit Ptitrain, j’essaye simplement de présenter une solution qui marche, à un coût raisonnable. Je n’ai pas non plus les moyens de conduire des études comparatives des solutions, et je pense que cela ne présente pas d’intérêt.
Mais quelle que soit la solution, d’après mon expérience, il y a deux aspects fondamentaux à prendre en considération :
1) gestion des fusibles (fuses) : votre système doit vous permettre d’avoir un contrôle permanent des fusibles, à chaque écriture dans le microP ;
2) calibrage de l’oscillateur (OSCAL) : votre système doit vous permettre, à chaque écriture dans un microP, de récupérer automatiquement cette valeur et de la réécrire.
99,9% des problèmes proviennent de ces deux dispositifs.
Avec le 1) une erreur peut être fatale pour votre microP, et il n’y a rien à faire ; pour le 2) il y a une précaution qui devrait être automatique pour vous : avant toute utilisation d’un microP, il faut le lire et noter la valeur de calibrage. Pour ma part, je la note sur un petit (tout petit) bout d’étiquette autocollante collée sous le microP ; si vous avez un microP devant vous, vous voyez ce que veux dire “tout petit”. Cela vous permettra en cas de problème de la réintroduire dans la mémoire.

8.1. Le logiciel ICprog
Ce logiciel ne nécessite pas d´installation, il faut juste le lancer. À la première exécution, il est nécessaire de vérifier les paramètres généraux, dans le menu Configuration et puis Hardware (ou par F3). 
Trois points sont à vérifier :
Programmateur : indique le type de programmateur que vous utilisez ; pour le programmeur PIC-01, la valeur JDM Programmer fonctionne bien.
Ports : indique sur quel port série le programmateur est connecté (sur quel port série vous avez connecté le câble), en général Com1 ;
Interface : cochez la valeur Windows API, c´est celle qui fonctionne le mieux, de l´avis des spécialistes.
8.2. Ecriture
Pour commencer, il faut choisir le type de microP, un PIC 12F675 dans notre cas . Attention : il faut toujours vérifier le type de microP, cela n´est pas automatique.
Ensuite, il faut charger le fichier .hex, par le menu Fichier puis Ouvrir fichier ou l´icône d´ouverture à gauche  :
Tout est maintenant prêt pour l´écriture si vous avez l´écran suivant  :
Quelques explications :
La fenêtre du haut contient le programme, en langage machine ; c´est assez incompréhensible, mais c´est strictement conforme au programme en assembleur.
Dans la fenêtre du bas il y a la mémoire du microP ; je n´en ai pas encore parlé pour l´instant, mais en plus des registres il existe une autre mémoire (dite “EEPROM”), qui a la particularité de ne pas s´effacer quand on coupe le courant. Oubliez pour l´instant.
À droite figurent certains paramètres de l´écriture, que je vous recommande de contrôler :
— Oscillateur : IntOSC GP4 indique que nous utilisons l´oscillateur interne de 4 MHz.
— Les fuses sont de vrais fusibles, que l´on peut faire “griller” ; il ne doit y avoir que le PWRT de coché, ; sinon vous pouvez bloquer le microP et il sera impossible de le réutiliser.
— En bas vous avez Checksum qui est un peu un contrôle ; la valeur indiquée ici doit être la même que celle qui se trouve au haut de l´écran de l´autre outil MPLAB IDE.
Il est temps maintenant d´insérer le microP dans le support adéquat sur la carte (attention au sens), et puis de mettre le courant.
PTI+   Recommandation : Dans notre utilisation, à chaque écriture du programme, il faut déplacer le microP de votre plaquette d´essai vers le programmateur et vice-versa, ce qui arrive très souvent en phase d´essai.
Or les "pattes" du microP étant relativement fragiles, je recommande fortement de monter votre microP sur un support "tulipe", et c´est ce support qui "supporte" (sic) tous les montages et démontages : il est bien plus solide, et puis si finalement une des pattes rend quand même l´âme, il suffit de changer le support.
À titre d´exemple, regardez de près la photo qui se trouve à côté du sommaire de chaque page sur le site, entouré de bleu. Vous y verrez clairement que le microP (8 pattes) est monté sur un support 16 pattes qui facilite les manipulations.
L´écriture se lance par le bouton marqué d´une icône “éclair”  !
Le logiciel vous demande d´abord confirmation. Ensuite, il commence par lire le contenu pour retrouver le calibrage de l´horloge.
Vous avez donc le message suivant (OSCCAL = oscillateur calibrage) :
Le logiciel a lu la valeur présente dans le microP, ici 3458h, mais propose bêtement d´utiliser la valeur 3FFFh du fichier .hex ; la réponse est évidemment non, il faut conserver la valeur existante.
PTI+   Vitesse du microP : La vitesse de l´horloge du microprocesseur est précise à 1%, mais il y a une condition : chaque microP est « calibré », c´est-à-dire qu´il y a une variable d´ajustement de la vitesse, spécifique à chaque exemplaire, déterminé en usine. Avant écriture, le logiciel lit cette valeur, pour pouvoir la réécrire avec le programme.
Il propose cependant de la modifier si on le désire, ce que je ne recommande bien sur pas !
À titre de précaution, notez la valeur : un jour, suite à une fausse manœuvre, vous risquez de l´effacer.
Durant toute l´écriture, vous avez la possibilité d´interrompre l´opération par Cancel, mais ce n´est vraiment pas recommandé, il vaut mieux laisser courir jusqu´au bout.
À la fin, le logiciel vous informe du succès de l´opération (car après l´écriture il se relit, pour contrôle) ; si vous n´avez pas ce message, il y a un problème.
Il ne reste plus qu´à le tester sur la plaque d´essai ; si cela ne marche pas, vérifiez d´abord l´électronique, l´alimentation et ensuite le processus d´écriture avant de m´envoyer des mails vengeurs sur la liste — le montage doit fonctionner du premier coup.


8.3. Pense-bête
8.3.1. Les instructions connues à ce jour

8.3.2. Les registres déjà utilisés

8.3.3. Nos conventions de programmation
8.3.4. Les directives d'assemblage connues
8.3.5. L´“argot” de www.ptitrain.com
Dans le magazine Ptitrain, a été lancée début 2007 une rubrique Pictrain, qui concerne l´utilisation dans le monde du modélisme ferroviaire de microcomposants informatiques, microcontrôleurs ou microprocesseurs, que nous appelerons génériquement microP. Ces microP viendront en renfort des montages électroniques à composants séparés décrits en pratique dans notre autre rubrique le Meccano électronique et dont la théorie est développée dans la Techno facile.
Un fabricant, Microchip, présente une gamme très répandue, les PIC Mid-Range, qui comprend des dizaines de modèles ; parmi ceux-ci, PSi, l´auteur de notre rubrique, a choisi le 12F675, petit, puissant, très bon marché. Pour les présenter, il a déjà décrit une application, un programme de démonstration pédagogique, nommé Pictrain0, un klaxon, dit aussi Youbitonmatic : en effet ce montage sonore avait déjà été fabriqué par nous en composants discrets et il était tentant de faire un parallèle entre les deux solutions, discrète et microP ! Les autres applications se nommeront Pictrain1, Pictrain2, etc. Les codes .asm et fichiers annexes sont stockés ici (Hors-textes).
La série sera du niveau d´un ptitrainiste moyen, ni bébête ni absconse, comme nous espérons vous en avoir donné par ailleurs l´habitude... Pour les curieux, des encadrés Pti+ qu´on peut ne lire que si on veut, entrent dans les détails non indispensables.
Jidé, qui vient de découvrir les PIC, mais tripote l´informatique depuis 25 ans, contribue à la rubrique en assurant la transition en douceur Techno - Meccano - Pictrain, en répondant aux questions fréquemment posées (99 Questions), en mettant en ligne jusqu´à ses propres brouillons et fiches en carton (Docs_en_vrac).
Sur le web, nos lecteurs sont conviés sur la liste Ptitrainmatique (qui compte 642 abonnés), avec le mot-clé [PIC] : questions, réponses, idées, fichiers, photos, listings... Sur cette liste sont aussi pré-publiées les pages de la rubrique Pictrain afin que les connaisseurs les lisent, les critiquent, les corrigent avant publication officielle en “une” du magazine.
8.3.6. Le code de couleurs de www.ptitrain.com
PTI+   Les listings de programme respectent un code de couleurs choisi par Jidé pour Jidé mais dont nous n'hésitons pas à vous faire profiter ;–)

Psi

10/11/07
N.B. — Textes, schémas, programmes © Psi pour Ptitrain. Photos Jidé ou D.R. quand signalé. — Toutes vos remarques et commentaires sont bienvenus, et les pages de Ptitrain ne sont pas statiques : les erreurs sont corrigées sitôt connues, les améliorations, éclaircissements, etc. feront l´objet de mises à jour fréquentes.
Ptitrain, l´e-magazine du train éclectique. — Directeur de la publication : Christophe Franchini.
Rédacteur en chef : Jean-Denis Rondinet