logo_PLG

Electronique

Carte d'extension maison pour PICÉE

Etoiles inactivesEtoiles inactivesEtoiles inactivesEtoiles inactivesEtoiles inactives

Développer

Ma première carte d'extension, comportant 4 afficheurs 7 segments pilotés par un ULN2803A sur le PortB, les anodes quand à elles l'étant par le PortA (RA0...RA3).
J'y ai rajouté un octuple dip switch pour positionner à l'état haut chacun des 8 bits du PortB, et un quadruple dip switch, qui me permet lui de mettre en/hors service les commande d'anodes, bien pratique lors du développement, surtout lorsqu'il y a des conflits d'entrées/sorties.... Cà s'est déjà vu...smile

Bon, en même temps, c'est une carte proto, hein !!!
Mais bon, çà prend du temps à câbler, mine de rien...

extension picee dessus [300x348px] extension picee dessous [300x338px]

ICD2 Programmer & Debugger

Etoiles inactivesEtoiles inactivesEtoiles inactivesEtoiles inactivesEtoiles inactives

Platine du programmateur ICD2

Je reprends ici le montage conçu et fabriqué par Chapslab.com pour lequel j'ai légèrement redessiné le PCB afin de pouvoir l'intégrer dans un boitier HAMMOND réf. 1591 , plus facile à se procurer que celui proposé à l'origine. Cela nécessite cependant quelques découpes dans les angles de la carte afin de pouvoir l'intégrer dans son coffret.
J'ai écrit cet article en accord avec son auteur, que je remercie vivement pour sa gentillesse ainsi que sa disponibilité.


Introduction

Pour ceux qui ne connaissent pas l'ICD2 (In Circuit Debugger 2), c'est une interface qui permet de programmer et debugger des microcontrolleurs PIC depuis un PC.

Lire la suite : ICD2 Programmer & Debugger

Schéma de la carte de développement ProtoPic2840

Etoiles inactivesEtoiles inactivesEtoiles inactivesEtoiles inactivesEtoiles inactives

Cette carte s'inscrit en prolongement de la carte PICÉE.
On peut distinguer les différents sous-ensemble qui la composent, tous encadrés. Le transistor et la résistance cerclés de rouge sont une modification que j'ai apportée après avoir réalisé la carte, et sont reliés à la ligne RA4. En effet, ceci est nécessaire, étant donné que le port du processeur est à collecteur ouvert. Le schéma en lui-même n'appelle pas d'autre commentaire, ce n'est que de la circuiterie...

SCH carte proto 527x303
Lors de la réalisation de la carte ProtoPic2840, le plus grand soin devra être apporté aux travaux de soudage, pour plusieurs raisons :
compte tenu du prix de revient (n'étant pas équipé pour cela, j'ai fait réaliser la gravure de la carte chez UTIL'POCKET pour un peu moins de 30€ port compris...), je n'ai pu m'offrir le luxe de trous métallisés, encore moins de sérigraphie. Ceci implique la présence de très nombreux VIA (liaison permettant la connexion d'une face à  l'autre...). D'autre part, les pistes sont fines (20mil = 0,508mm), sauf pour les alimentations VDD & GND qui font 40mil (1,016mm). Les pastilles quant à elles font 60mil (1,524mm) de diamètre, perçage à 0,8-1mm selon les cas. Ils n'y a donc guère de marge d'erreur ! Un bon fer à souder équipé d'une panne très fine est chaudement recommandé. Entrainez-vous avant, d'autant que certaines pins des supports tulipe servent également de VIA...
Il est à noter que j'ai de nouveau routé la carte rien que pour vous, afin d'y faire figurer la modification concernant le transistor et sa résistance sur la ligne RA4 (T1 & R38). Vous n'aurez ainsi pas besoin de les monter comme je l'ai fait, côté soudures (bottom side)...

Une fois terminée, cette nouvelle carte vous procurera sûrement pas mal de satisfaction, et cela à  un coût tout à  fait raisonnable. Elle ne peut pas bien sûr rivaliser avec la HP488 ou encore la EasyPic7, mais le public visé n'est pas non plus le même. Ces 2 cartes sont surtout destinées au monde de l'éducation. A partir de la ProtoPic2840, il n'y a guère de limitations, si ce n'est peut-être l'IDC2 (programmateur/debugger pour les microcontroleurs PIC de chez Microchip) ?

Carte de développement ProtoPic2840

Etoiles inactivesEtoiles inactivesEtoiles inactivesEtoiles inactivesEtoiles inactives
pic ready onboard 250Recherchant l'évolutivité à un coup relativement abordable, et étant plutôt limité par les caractéristiques du Pic16F84A, j'ai tout d'abord commencé par regarder ce qui existait déjà , histoire de mieux cerner le problème. J'ai vu des platines simples et accessibles comme la PIC READY BOARD commercialisée par mikroElektronika, et autour de laquelle il est parfaitement possible de "greffer" différents modules complémentaires, HP488 317x223ou une platine plus complète comme la HP488-00-3 de Matrix Multimedia, compatible E-Blocks, possédant déjà une belle interface utilisateur ...

ou encore l'EasyPIC7 de mikroElektronika, extrêmement complète (trop peut-être ?)... par exemple... il en existe bien d'autres...

Mon choix ne figure pas içi, j'aurais pourtant bien aimé me faire plaisir !
La carte dont j'avais besoin, je l'ai conçue moi-même. Elle a les dimensions du format "Europe" (100x160mm), et peut recevoir l'ensemble des familles 8-bit de Microchip en 28/40 pins, et j'en ai dénombré quelques 127 ! de quoi déjà pour bien commencer à jouer... J'ai volontairement délaissé le support 18 pins car il existe déjà sur PICÉE. Inutile donc de le placer à nouveau !
board easypic7 2
Hormis donc ces 2 supports 28/40 pins, j'ai doublé celui de 40 grâce à des barrettes tulipes de 20 pins, permettant d'envisager une évolution future. Les 5 ports alimentent chacun une batterie de Leds de couleur différente (rouge pour les MSB, jaune pour les LSB), et communiquent avec le monde extérieur grâce à des connecteurs HE10 mâles (2x5), permettant d'y connecter par exemple des modules (fort nombreux...) compatibles avec la carte EasyPIC7. J'ai en effet respecté le brochage de leur connectique. Les Leds de chaque ports peuvent être à tout moment isolées grâce à des cavaliers de codage, au nombre de 5. DSCN4596 297x300En outre, une isolation totale du port A est possible à l'aide d'un commutateur Dip-switch, indispensable notamment lorsque l'on travaille en mode analogique sur ces voies. L'impédance générée par les Leds et leurs résistances de polarisation fausseraient les mesures. La platine reçoit bien évidemment un bouton poussoir de Reset, ainsi qu'un support de quartz et un potentiomètre ajustable permettant le réglage de la fréquence de l'oscillateur RC (11Hz à 1KHz  valeurs relevées à l'oscilloscope ). Le tout étant paramètrable grâce à des cavaliers de codage. Ajoutons à cela une Led (verte) permettant de visualiser la présence du +5V, et une autre (rouge) matérialisant le mode de programmation via la ligne MCLR (mode ICSP).
Une petite chose qui a son importance... cette carte ne dispose pas d'alimentation embarquée et pour cause... elle est destinée à être enfichée grâce à un connecteur DIN41612 à 32 contacts dans celui de la carte de développement PICÉE pour laquelle j'ai déjà écrit un petit article. C'est un choix qui m'est personnel, c'est sûr, les raisons en étant l'économie de composants, et de place sur la carte proto. Et comme de plus je n'utilise pas le 16F84A en même temps que le 16F877A, pourquoi doubler des circuits qui peuvent resservir ? c'est cela aussi, l'évolutivité. Par contre, je l'ai un peu modifiée car, d'origine, son afficheur LCD était piloté en 8-bit (sur le port B donc...), et les lignes de commandes RS et E étaient tirées du port A.easyproto2 J'ai donc effectué une petite modification sur la carte PICÉE, consistant à ramener les lignes de commande sur le port B, les data circulant dorénavant sur 4-bit. Et me voici pour trois fois rien avec une carte compatible E-Blocks !DSCN4593 194x150 L'ensemble est alimenté par un bloc secteur à découpage de 12V/1,2A PSS1212, et la prise DB9 reliée à mon PC au travers d'une interface PCMCIA/RS232 permet la programmation ICSP (In-Circuit Serial Programming) du processeur.
Si toutefois vous désiriez la réaliser sans pour autant déjà posséder PICÉE, cela est possible car, puisque communicante, cette carte peut bien sûr recevoir une extension RS232 sur son port C, et après avoir programmé un bootloader dans votre PIC , il ne vous manquera plus qu'une alimentation de +5V pour la faire fonctionner. Vous voyez que son champ d'utilisation est assez large.
La nappe souple que vous pouvez voir, c'est un petit accessoire bien pratique qui permet de raccorder un port à une plaque de développement sans soudure (breadboard), sur laquelle j'ai câblé un capteur de température DS1821 de chez DALLAS. Une petite merveille !

Le seul semi-conducteur présent est le micro-contrôleur (PIC16F877A), pas de quoi s'affoler, donc...

DSCN4597 232x300
modification de la carte compatible E-Blocks... DSCN4591 289x300
modification du câblage de la carte...

Pour sélectionner le mode 4-bit de l'afficheur LCD, rien de plus simple... j'ai utilisé des barrettes sécables qui réhaussent judicieusement celle existante sur la platine PICÉE. Dès lors, les bits D0...D4 ne sont plus utilisés. Pas la peine de faire plus compliqué !
Voilà , maintenant, il ne reste plus qu'à la programmer...

linkAccéder aux schéma & typons (Ech 1:00)


Schéma de la carte de développement PICÉE modifiée

PICée modifié [640x526px]

Maquette de développement PICÉE (Elektor)

Etoiles inactivesEtoiles inactivesEtoiles inactivesEtoiles inactivesEtoiles inactives

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.

picee dessus 400x268px

Didactique

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

PICée original [640x526px]

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-BlocksPhoto de la carte PICée modifiée 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...
DSC 15159 [236x151px]DSC 15157 [236x159px]

Schéma modifié pour l'adaptation E-Blocks

Schéma de la carte PICée modifiée pour 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
PICée modifié ICSP [640x445px]

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 :

Système de développement PICÉE
Mono-carte à PIC16F84

Lien de téléchargement de la revue complète :
link
https://www.elektor.fr/pdf-download-fr-02-2002

Lien pour commander le circuit imprimé :
link
https://www.elektor.fr/picee-development-system

Quelques liens vers les sites de mes amis...

Licence Creative Commons

 Licence CC BY NC SA 3.0 FR DEED L'ensemble de ce site hormis une notification spécifique est mis
à  disposition selon les termes de la Licence Creative Commons
Attribution - Pas d'Utilisation Commerciale - Partage dans les Mêmes Conditions
3.0 France.
Licence Creative Commons