Cette rubrique PicTrain est toute nouvelle, elle a débuté il y un mois  ! Vous pouvez aisément nous rattraper et sauter en marche !
Aujourd´hui à notre menu :
6.
6.1.
6.1.1.
6.1.2.
6.1.3.
6.2.
6.2.1.
  MISE EN OEUVRE
   Qu´est-ce qu´il faut  ?
      Electronique
      Programmateur de PIC
      Logiciel de programmation
   Les étapes de la mise en oeuvre
      Programmation
Initialisation du projet
Modification du programme
Contrôle du programme
Fermeture du programme
6.2.2.      Ecriture du microP
6. Mise en oeuvre
6.1. Qu´est-ce qu´il faut ?
Dans ce chapitre nous allons voir en pratique et en détail comment réaliser le montage.
6.1.1. Électronique
Pour la partie purement électronique, rien de plus que ce que nous avons vu :
Un haut-parleur (4 à 16 ohms), une résistance de 150 ohms (plus ou moins, c´est pour contrôler le volume sonore), un condensateur de 1 µF et un condensateur de découplage de 10 ou 100 nF.
Le microprocesseur Microchip PIC 12F675 : se trouve chez tous les VPCistes pour pas cher (moins de trois euros !).
Une alimentation 5 volts stabilisée (voir Meccano électronique : AlimFixe).
Une plaquette d´essai sans soudure pour les tests, un Cimec pour la fabrication.

Attention : dans vos achats, ne vous trompez pas, il existe aussi des microP 12C675 (avec C à la place du F) ; ne prenez surtout pas ceux-là, car il y a UNE seule différence, mais de taille : on ne peut les écrire qu´une seule fois, on ne peut donc plus les modifier ou réutiliser !
6.1.2. Programmateur de PIC
Pour ma part, j´utilise le programmateur PIC-01, que l´on trouve aussi chez tous les VPCistes (par exemple Gotronic) pour 60 euros, avec le logiciel IC-prog qui nous servira pour l´écriture. [Erratum Gotronic : pour ce programmateur, il faut une alimentation de 15 V d´au moins 500 mA (et non 50). Nous avons tous chez nous une telle alimentation.]
L´installation du logiciel ne devrait pas poser de problèmes. Pour les bricoleurs, le programmateur peut aussi être fabriqué, voir des schémas sur Internet. Le câble “série” est fourni avec le programmateur.
Des programmateurs à installer sur le port USB des PC (et non le port série, absent de beaucoup de portables modernes) sont aussi proposés, nous reviendrons sur cette offre.
6.1.3. Le logiciel de programmation
Le logiciel MPLAB IDE est gratuit et disponible sur le site de Microchip, voir sur cette page  (le téléchargement se trouve en bas de page) ; l´installation ne doit pas poser de problèmes non plus.
Si vous êtes familiers avec la langue anglaise, flânez un peu sur le site de Microchip, il y a des milliers de pages de documentations, applications, compléments, une véritable mine d´or.
6.2. Les étapes de la mise en oeuvre
Il y a fondamentalement quatre étapes dans la réalisation de montages à microprocesseurs :
Conception de l´application, tant électronique que programme : nous n´examinerons pas cette étape qui est hors de notre propos, et puis c´est déjà fait ici.
La programmation : écriture du programme avec le logiciel MPLAB ; dans notre cas, le programme existe, mais il cependant nécessaire de passer par cet outil pour obtenir le fichier à écrire dans le microP.
Attention à l´ambiguïté des termes : programmation est utilisé dans cette étape et aussi dans la suivante, pour ma part je préfère garder “programmation” pour écriture (réalisation) du programme, et “ écriture” pour la copie du programme dans le microP.
Ecriture du microP : consiste simplement à écrire le fichier obtenu dans l´étape précédente dans le microP avec le programmateur PIC-01.
Réalisation du montage et test.
Voyons les détails
6.2.1. Programmation
La programmation consiste à construire le programme, écrire les instructions. Le programme sous sa forme lisible (tel qu´utilisé dans cette présentation) est dans des fichiers en suffixe .ASM (pour le programme) et.INC (pour les fichiers ‘include´).
L´outil MPLAB permet de faire beaucoup de choses, notamment des simulations, mais il sert surtout à contrôler le code (les instructions) pour vérifier la syntaxe de votre programme.
Cela ne vous donnera jamais la totale certitude que votre montage fonctionne, mais s´il reste des erreurs de programmation, vous pouvez être certain qu´il ne fonctionnera pas !
En fin de programmation, on retrouve un fichier avec le suffixe .HEX, que l´on utilisera à l´étape suivante d´écriture dans le microP.
Vous pouvez sauter cette étape car vous pouvez récupérer directement le fichier .HEX, mais je vous recommande quand même de passer par là, vous comprendrez mieux les manipulations.
6.2.1.1. Le processus de programmation : initialisation du projet
Pour commencer, il vous faut créer quelque part votre répertoire du projet, dans lequel vous copiez les deux fichiers « Klaxon_V1_0 .asm » et « Param_Std_v1_0 .inc ».
Lancez MPLAB, et on va créer le projet.
Au départ, vous devez récupérer un écran de ce style :
Dans le menu « Project », on va utiliser « Project Wizard… » pour créer le projet :
Ensuite, toujours par le bouton « suivant », d´abord le choix du microprocesseur, dans notre cas 12F675 :
Puis le choix des outils ; normalement, vous devriez avoir cette proposition ci-dessous, si ce n´est pas le cas regardez dans la liste déroulante.
Ensuite vous donnez un nom au projet (rouge) et choisissez le répertoire, c´est-à-dire celui que vous avez créé tout au début (bleu) :
Et il vous propose d´ajouter les deux fichiers à votre projet : double-clic sur chaque fichier, et ils apparaissent à droite :
À la fin, il vous propose un résumé où tout doit être bon, et vous cliquez sur terminer.
Votre projet est maintenant créé, vous devez avoir cet écran :
6.2.1.2. Modification du programme
Par double clic sur le nom du fichier programme, vous ouvrez une fenêtre d´édition du texte  :

Vous avez ici le programme en assembleur tel que nous l´avons vu précédemment, avec :
En bleu les instructions,
En rouge, les paramètres et opérandes,
En vert les commentaires.
PTI+   LES LANGAGES INFORMATIQUES. — Il existe différents niveaux de langages informatiques, du niveau le plus loin de la machine jusqu’au niveau du silicium de la puce :
• Les “méta-langages”, en général spécifiques à un domaine particulier comme les mathématiques, où les programmes sont écrits dans un langage proche du nôtre.
• Les langages évolués, les plus fréquents, sont proches de notre raisonnement, exemple : anciennement Cobol, Fortran, aujourd’hui C, C++, Basic… Ces langages sont indépendants du matériel utilisé.
• L’assembleur : dans ce langage, les instructions sont celles réellement effectuées par le microP, sauf qu’elles sont codifiées d’une manière plus ou moins compréhensibles par un humain (qui comprendrait l’anglais !). Un assembleur est spécifique du microprocesseur (celui que nous utilisons ici ne pourra pas servir pour d’autres fabricants).
• Le langage machine. : c’est le niveau où le programme est finalement exécuté, une suite de bits, qui n’ont de signification que pour les circuits dans notre microP.
Vous pouvez maintenant modifier le programme, même si ce n´est pas recommandé pour l´instant.
6.2.1.3. Contrôle du programme
Parmi les fonctions du logiciel, il n´y en a qu´une seule qui nous intéresse pour l‘instant : la fonction “make”, que vous déclenchez par F10, et qui  :
contrôle votre programme,
s´il n´y a pas d´erreurs, génère le fichier .HEX nécessaire ultérieurement,
sauvegarde votre programme.
Vous voyez apparaître fugitivement une fenêtre d´avancement, mais comme le programme est petit, elle est très rapide ; cependant, si vous voyez du vert, c´est que cela doit être bon, si vous voyez passer du rouge, il doit y avoir une erreur. Chez moi, c´est tellement rapide que je n´arrive pas en faire une copie d´écran.
De toute façon, une nouvelle fenêtre s´est ouverte, nommé « output », dans laquelle vous avez le résultat. Si vous avez quelque chose comme ça , c´est mauvais :
“Error” vous indique l´erreur et la ligne du programme où vous vous êtes plantés. Si vous avez ça , c´est bon :
6.2.1.4 Fermeture du programme
Comme tout logiciel, vous ferlez par clic en haut à droite, et quand il vous demande de sauvegarder vous répondez bien entendu OUI.
Pour revenir dans votre programme, vous lancez MPLAB, et cette fois-ci dans le menu “Projet” vous choisissez “Open…”.
C´est à peu près tout ce qu´il faut savoir sur MPLAB pour l´instant.
6.2.2. Ecriture du microP
Le fichier .HEX est le fichier de notre programme, mais cette fois-ci en langage machine. Nous allons maintenant écrire le programme dans le microP. Il faut pour cela ouvrir le logiciel IC-Prog, et nous allons avoir un écran qui ressemble à ça  :
Le première fois que vous lancez le logiciel, il est nécessaire de vérifier les paramètres généraux , dans le menu “Settings” et puis “Hardware” (ou par F3) :
Trois points sont à vérifier :
Programmer : indique le type de programmeur que vous utilisez ; pour le programmeur PIC-01, la valeur JDM Programmer fonctionne bien.
Ports : indique sur quel port série le programmeur 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.
ATTENTION : je n´ai aucune idée comment tout ceci fonctionnera avec la nouvelle version 2007 de Windows Vista, je n´aurai ce nouveau système que dans deux semaines !
Passons maintenant à l´écriture proprement dite. Pour commencer, il faut choisir le type de microP , un PIC 12F675 dans notre cas :
Ensuite, il faut charger le fichier .HEX créé à l´étape précédente (ou chargé), par le menu “File” puis “Open file” 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 haut contient le programme, en langage machine binaire  ; c´est assez incompréhensible, mais c´est strictement conforme au programme en assembleur.
Dans la fenêtre bas, il y a un autre morceau de 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, qui a la particularité de ne pas s´effacer quand on coupe le courant (c´est une EEPROM). Oubliez-la pour l´instant, on l´utilisera dans le montage va-et-vient.
À droite de la fenêtre , figurent certains paramètres de l´écriture, que je vous recommande de contrôler :
Oscillator : 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 il y avoir que le PWRT de coché, sinon par exemple vous bloquez 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.

Conseil : Les pattes de circuits intégrés comme le microP sont un peu fragiles et risquent de plier. Si vous prévoyez de réutiliser le microP pour d´autres expérimentations, et donc de le démonter fréquemment pour passer de votre montage à la carte du programmateur, il est préférable de le monter sur un support “tulipe” 8 ou 16 broches. Le support tulipe est bien plus résistant et supporte bien les montages-démontages.
 
Nous allons ensuite écrire dans le microP, par le bouton “ éclair” !
Le logiciel vous demande d´abord confirmation  :
Ensuite, il commence par lire le contenu pour retrouver le calibrage de l´horloge. Qu´est-ce que cela veut dire ? J´ai indiqué que la vitesse 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 ! A titre de précaution, notez la valeur, un jour suite à une fausse manœuvre vous risquez de l´effacer. Vous avez donc le message suivant (OSCCAL = oscillateur calibrage) :
Le logiciel a lu la valeur présente dans le microP, ici 3430h, mais propose bêtement d´utiliser la valeur du fichier .HEX ; la réponse est évidemment non, il faut conserver la valeur existante.
Durant toute l´écriture, vous avez la possibilité d´interrompre l´opération par “Cancel”, mais ce n´est vraiment pas recommandé, il vaux mieux laisser courir jusqu´au bout.
Remarque : on peut écrire 100 000 fois dans ce microprocesseur, ce qui, si vous faites 20 tests par jour, permet de tester durant quinze ans — il y a de la marge.
A la fin, le logiciel vous informe du succès de l´opération, car après l´écriture il relit pour contrôle ; si vous n´avez pas ce message , il y a un problème :
Ça y est, vous avez votre premier microprocesseur en état de marche !
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 e-mails vengeurs sur la liste Ptitrainmatique, mais le montage doit fonctionner du premier coup !
Téléchargez en cliquant ci-dessous les fichiers .ASM (à gauche) et .INC (à droite). [D´autres docs sont ici.]
À suivre
Psi

16/12/08
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