Maquette de développement PICÉE (Elektor)
Expérimenter
J'ai mis longtemps à me décider, mais c'est cette carte à base de PIC16F84 de l'écurie de Microchip que j'ai choisie. Elle dispose de tout ce qu'il faut pour commencer à jouer, dont un afficheur LCD (2x16 caractères rétro-éclairé), d'un superbe connecteur 32 pins pour communiquer....., de quelques switch et Leds de visualisation des bits de chacun des 2 Ports (Port A sur 5-bits, Port B sur 8-bits). Grâce à son convertisseur DC/DC embarqué qui fabrique le +13V indispensable pour programmer, cette carte est très confortable d'utilisation.
Ce montage a été développé à l'école Ludwig Geissler de Hanau (RFA) en veillant plus particulièrement aux aspects « didactique » et « méthodique ». cette mono-carte est utilisée depuis plusieurs années déjà , avec un succès qui ne s'est jamais démenti dans différentes classes et cours techniques consacrés aux développements à base de microcontrôleurs. Pour un investissement de l'ordre de 100€ (circuit imprimé 'Elektor' compris en octobre 2012) cette mono-carte constitue, pour le radio-amateur et/ou l'électronicien engagé, une excellente plate-forme pour donner forme à ses propres idées et réaliser ses propres développements.
Schéma
Principe de fonctionnement
Le montage repose sur un microcontrôleur 8-bits PIC16F84 de l'écurie Microchip pouvant fonctionner avec une fréquence d'horloge de 20MHz maximum. Il intègre une interface sérielle disponible sur le connecteur K2, au travers d'un tampon de protection constitué par IC4. Pour générer la tension de programmation de +13V, on fait appel au convertiseur DC-DC IC2 dont la mise en/hors fonction est commandée par le switch S1. Lorsqu'il est fermé, la tension VPP est disponible en broche 2 du TL497. En outre, il permet grâce à un état bas de basculer le tampon IC4 afin d'assurer la communication série avec un PC. Lorsque S1 est ouvert, le connecteur K2 se trouve isolé du reste du circuit.
Un état bas sur la broche 3 de IC4.A permet de bloquer T2 via T1, et ainsi la tension VPP devient disponible sur la broche 4 de IC3. La LED D21 sert à indiquer que la carte se trouve, lorsqu'elle est allumée, en mode de programmation...
Les 2 signaux de programmation sériels DATA et CLOCK arrivent alors, via les étages de commande IC4.C et IC4.D, aux entrées RB6 et RB7 du contrôleur. L'étage de commande IC4.B fournit à l'interface les données lors de la lecture du contrôleur. L'étage IC4.A sert au pilotage, selon le cas, de la tension continue de programmation ou de la réinitialisation du contrôleur (reset).
Les LED D8 à D20 visualisent l'état logique de chacune des lignes des ports RA et RB du microcontrôleur.
Les boutons-poussoirs S5 à S7 constituent une sorte de mini-clavier. Une action sur les boutons-poussoirs S6 et S7 se traduit par l'application d'un niveau haut (un « 1 ») sur les lignes de port RA0 et RA1 respectivement. Le bouton-poussoir S7 remplit la même fonction pour les 2 lignes à la fois, en raison de la présence d'une fonction de « porte OU câblée » (wired OR port) que constituent la paire de diodes D3 et D4. Le décodage des actions sur ces touches est l'affaire du logiciel.
La visualisation de modes de fonctionnement se fera par le biais d'un affichage LCD alphanumérique à 2 lignes de 16 caractères (MOD1). Ce module fait appel à un contrôleur HD44780 de chez Hitachi.
Le pilotage de l'affichage se fait par le biais des lignes de validation E (Enable) et de sélection de registre RS (Register Selection) qui attaquent les lignes de port RA2 et RA3. L'entrée de lecture/écriture RW (Read/Write) du module est forcée en permanence à la masse (GND), vu que l'on n'a besoin que très exceptionnellement du mode de lecture (Read).
Toutes les lignes du contrôleur ainsi que la tension d'alimentation disponible au niveau du jack d'alimentation sont reportées vers une embase à 32 contacts du type DIN41612. Ceci permet une connexion aisée de montages personnels réalisés sur une platine d'expérimentation à pastilles dotée d'un connecteur 32 broches mâle adéquat à notre mono-carte PICÉE.
L'alimentation de la mono-carte se fait par le biais d'un adaptateur secteur externe dont la sortie vient s'enficher dans le jack d'alimentation K1. La plage des tensions admissibles fournies par l'adaptateur va de 7 à 12 V. Le régulateur de tension intégré IC1 régule à +5 V la tension d'entrée. La LED D22 signale la présence de la tension d'alimentation.
Adaptation de la carte pour E-Blocks
J'ai également procédé à la modification de ma carte pour l'adapter au système E-blocks, et pour ce faire, j'ai ajouté 2 cavaliers (S11 et S12) qui permettent de commuter du système d'origine au système compatible E-Blocks. En effet, sur le schéma d'origine, la commande de l'afficheur LCD se fait en mode 8-bit, et utilise les 2 Ports A et B du micro-contrôleur :
- RA2 : E
- RA3 : RS
- RB0..RB7 : D0..D7
La correction effectuée avec les 2 cavaliers supplémentaires ainsi que quelques coupures et straps sur le circuit imprimé permettent de libérer le Port A, et de commander l'afficheur LCD en mode 4-bit :
- RB2 : E
- RB3 : RS
- RB4..RB7 : D4..D7
Sur le schéma apparaît aussi une seconde modification sur la partie Oscillateur RC, il s'agit de la valeur du condensateur C7 (100nF) que j'ai passé à 22pF de façon à pouvoir l'utiliser dans la plage de fréquence suivante : 1,6MHZ<Fosc<5MHz, assez pratique pour débugguer...
Schéma modifié pour l'adaptation E-Blocks
[Edit du 3 août 2015] :
Avec l'avénement des nouvelles machines dépourvues d'interfaces tant sérielle RS232 que PCMCIA, il ne m'était plus possible de programmer les PIC's et j'ai donc effectué une autre modification sur ma carte, l'adjonction d'un connecteur ICSP. Ceci me permet de l'utiliser à nouveau avec l'aide de mon Programmateur/Debuggueur ICD2.
Schéma modifié pour l'adaptation d'une connexion ICSP
Logiciel de programmation
Il faut disposer, pour le développement de programmes en assembleur, d'outils de programmation additionnels, comme MPLAB sous Windows, ou encore Piklab sous Linux. Vous pouvez télécharger Piklab directement sur le site du développeur , ou encore si vous êtes sous Ubuntu l'installer à l'aide de Synaptics par exemple.
Pour programmer vos applications dans le PIC16F84, ICPROG.EXE permet lui aussi de travailler confortablement. Lors de l'installation du matériel, la mono-carte PICÉE s'identifie comme programmateur JDM . Sous Linux et en ligne de commande, il existe PicProg ou encore si vous êtes sous Ubuntu l'installer à l'aide de Synaptics par exemple.
Visitez le site du développeur pour connaître les commandes à utiliser.
Bibliographie
L'article consacré par Elektor dans sa revue n° 284 en février 2002 :
Mono-carte à PIC16F84
Lien de téléchargement de la revue complète :
https://www.elektor.fr/pdf-download-fr-02-2002
Lien pour commander le circuit imprimé :
https://www.elektor.fr/picee-development-system