Programmateur universel

Le montage que nous vous présentons ce mois-ci est loin, en apparence, d'être original. En effet, il s'agit d'un graveur de silicium, également appelé programmateur par les puristes. Il est destiné à l'amateur, aux établissements d'enseignement technique, et peut même rendre ponctuellement service aux professionnels. Encore un programmateur, me direz-vous! Voici le pourquoi du comment.

Pourquoi
Nous sommes partis du constat qu'il existe deux types de programmateurs:
* le programmateur généraliste du commerce qui est souvent très complet, mais aussi très cher, et couvre la totalité d'une gamme de produits dans un domaine donné. Par exemple, vous achetez un programmateur d'EPROM qui va vous coûter de 2 500F à 10 000F. Pour ce prix là, pas de problème! Vous pourrez programmer depuis la 27C02 jusqu'à la 27C4001, voire au-delà (vous en programmez beaucoup, des EPROM de 4Mo?);
* le programmateur spécialisé, bon marché (en principe), et qui ne traite qu'un type précis de produit. Il vous faut alors un programmateur pour chaque type de produit. Par exemple, un programmateur de 68705P3 revient à peine à 50F, mais il ne grave que les 68705P3 (d'accord, je reconnais que ce n'est peut-être pas le meilleur exemple compte tenu des services qu'il a pu rendre jadis, mais au fait que sont-ils devenus?).
C'est pourquoi nous vous proposons la réalisation de votre programmateur universel, pour un prix très abordable (voire même encore moins) et issu d'un produit professionnel commercialisé par la société SILIS ELECTRONIQUE à LIMOGES. Nous l'avons souhaité simple et évolutif, réalisable par toute personne sachant souder. Raffinement suprême, vous pourrez vous-même développer ses futures extensions. Mais au fait, que sait-il programmer? Eh bien à peu près tout, pourvu qu'on sache le lui demander gentiment.
La version logicielle de base est prévue pour les circuits suivants:
Mais il est possible, moyennant un peu de soft supplémentaire et un adaptateur adéquat, de lui faire lire et programmer pratiquement n'importe quels EPROM, micro-contrôleur, E²PROM, pZéro-power ram, Flash EPROM, composants I2C et cartes à puce. On peut même envisager, si le besoin s'en fait sentir, la programmation de divers PAL, Gate Arrays et autres EPLD (comme par exemple tout à fait au hasard la série Mach130). La carte de base du programmateur peut même se transformer en mini centrale à tout faire, interface ordinateur-autre chose, entrées-sorties logiques et moins logiques, etc.
Comment
Tout bon programmateur est destiné, en principe, à programmer (!) des données dans un bout de silicium, qui va lui-même servir dans une application. Ceci suppose qu'il y ait eu, quelque part d'une manière ou d'une autre, développement logiciel ou assimilé. Que vous surfiez pour récupérer ces données, ou que vous développiez vos propres applications, le résultat final est donc un fichier de données sur micro-ordinateur. Ces données peuvent se présenter sous différents formats (binaire pur, Hexa ASCII, HexIntel et dérivés, texte, Motorola,...). Nous verrons comment les traiter dans la partie programmation.
Vous l'aviez compris, notre programmateur va devoir se connecter sur micro-ordinateur. Le mode de connexion retenu est une liaison série RS232 (2400 Bauds, N, 8, 1) pour deux raisons: Elle ne requiert que deux sorties Rx et Tx dans sa version minimale. Inutile d'aller trop vite, il faut de toute façon plusieurs ms pour graver un octet. Afin d'assurer une compatibilité et une simplicité maximales, il n'est fait appel à aucun logiciel spécifique pour la communication. Tout terminal standard conviendra parfaitement. Cependant, pour des raisons évidentes de convivialité, nous préconisons "TERMINAL" de Windows sur P.C. Les possesseurs de MAC et autres ATARI utiliseront les utilitaires de communication spécifiques à chaque marque.
A cela, vous ajoutez un micro-contrôleur et une pincée de composants, et vous obtenez le synoptique de notre programmateur. Le support DIL 40 pattes est prévu pour recevoir directement les micro-contrôleurs de la famille 80C51. Compte tenu des différences de brochage
qui existent entre les composants programmables du commerce, il sera nécessaire d'utiliser un petit adaptateur spécifique à chaque famille. La plupart du temps, il s'agit simplement de faire correspondre les numéros de pattes entre le support de programmation et le composant à programmer.
Schéma de principe
Interface RS232
Le signal TxD provenant du micro-ordinateur (niveaux de la logique RS232: +12V/-12V) est inversé puis calibré à 0V/5V de façon classique (Q1, sur le schéma de principe). Par contre, la génération du signal RxD demande une alimentation symétrique +V/-V. Celle-ci est obtenue en prélevant du courant sur toutes les lignes RS232 disponibles: TxD, RTS/CTS, et DTR/DCD/DSR. L'alimentation ainsi fabriquée est suffisante pour couvrir les besoins de la ligne RxD. Sur la maquette, nous avons relevé un niveau moyen de +8V/-8V. Dans le cas extrême où votre micro-ordinateur ne voudrait pas fournir la tension nécessaire, il est tout à fait envisageable de recourir à une alimentation externe +12V/-12V.
La commande de RxD (Q2 à Q4) a été conçue de manière à ce qu'un niveau +V sur RxD tire le moins possible de courant sur l'alimentation -V, afin de conserver un niveau de tension compatible avec la norme RS232 et même de permettre du full duplex. Suivant le modèle de micro-ordinateur, la sortie RS232 se présente sous forme d'un connecteur DB9 broches ou DB25 broches. Le tableau ci-dessous établit pour un P.C. les correspondances entre les numéros des broches :
La liaison entre le programmateur et le micro-ordinateur peut se faire de deux manières:
* par un cordon complet 7 conducteurs + masse,
* par un cordon 4 conducteurs + masse à condition d'effectuer les liaisons manquantes côté micro-ordinateur (RTS-CTS et DTR-DCD-DSR)
A titre d'information, nous avons équipé la maquette d'un vieux cordon de magnétophone à cassette sur lequel nous avons supprimé les prises DIN 5 broches, ce qui donne entière satisfaction. Côté configuration, il suffit d'indiquer au terminal les paramètres de la liaison série, soit 2400 Bauds, pas de parité, 8 bits de données, 1 bit de stop (2400, N, 8, 1). D'un point de vue purement physique, vous pouvez soit souder directement le cordon sur le circuit imprimé, soit monter un connecteur 5 broches, ce qui rend le programmateur plus facile à monter et à démonter. Il est aussi possible de fixer sur votre boîtier un connecteur DB9 ou DB25 femelle, et d'utiliser un cordon informatique du commerce pour effectuer la liaison à l'ordinateur.
Le micro contrôleur
La gestion du programmateur est assurée par un micro contrôleur Philips (U4), qui sera monté sur support de très bonne qualité (tulipe). Le micro contrôleur version logicielle de base et le dossier complet, référence PRGUNIV1, sont diffusés par SILIS ELECTRONIQUE, ESTER Technopole, 87069 LIMOGES Cedex, pour 250 F TTC, port et emballage compris. Le micro contrôleur dispose de 4 ports complets d'entrées-sorties. Deux ports (P00-P07 et P20-P27) sont attribués aux adresses, un port (P10-P17) est attribué aux données, et enfin le dernier port (P30-P37) supporte les lignes de contrôle, la commande +Vpp, et la RS232.
Une LED verte (D4) et une LED rouge (D5) sont connectées sur les ports P27 et P28 (A14 et A15). La LED verte indique d'une part la mise sous tension, d'autre part le bon déroulement de la programmation. La LED rouge indique un problème de programmation (l'octet qui vient d'être programmé n'a pas la même valeur que l'octet relu). L'état des deux LED (indifféremment allumées ou éteintes) est sans signification au cours même de la programmation, celles-ci étant situées sur les lignes d'adresses hautes.
Un quartz de 11,0592 MHz (rassurez-vous, c'est une valeur courante) cadence le fonctionnement du micro contrôleur. Cette valeur n'est pas choisie au hasard, elle permet d'obtenir une vitesse de transmission standard sur la RS232 (en l'occurrence 2400 Bauds). Le circuit de reset (10 µF, 10 k  ) est classique. Vous remarquerez également des résistances de pull-up (rappel au +5V) montées sur les lignes d'entrées-sorties à drain ouvert.
L'alimentation
L'alimentation +5V est confiée à un régulateur type 7805 (U3) ou un équivalent, qui n'a pas besoin a priori de refroidisseur thermique (consommation de quelques dizaines de mA). Si certaines extensions venaient à consommer plus de 100mA sur l'alimentation, ce refroidisseur deviendrait alors nécessaire . Suivant les états de Q5 à Q7 commandés par P36 et P37, la tension Vpp sur la patte 31 du support de programmation prend une des valeurs suivantes : 0V, +5V ou +Vpp. Dans ce dernier cas, la LED jaune D3 signale la présence du +Vpp. Ne jamais insérer ni retirer un circuit du support de programmation lorsque cette LED est allumée . Afin d'éviter de transformer certains circuits intégrés en circuits désintégrés, le courant disponible sur le +Vpp est limité par Q8 à 50mA. Respectez la valeur de 1,69 k  , elle fixe la valeur de +Vpp . Sinon, vous seriez amenés à vendre vos microcontrôleurs au poids de la céramique! L'ensemble des besoins en énergie est assuré par un bloc secteur externe fournissant une tension de 16V minimum à 100mA. Une diode 1N4007 protège le montage en cas d'inversion (toujours fréquente!) de polarité.
Le support de programmation (U1)
C'est soit un support de qualité tulipe, soit un support à force d'insertion nulle monté sur un support tulipe (très fortement recommandé en cas d'utilisation fréquente). Le quartz de 4 MHz sert à la programmation de certains types de composants qui doivent disposer impérativement d'une base de temps interne.
Réalisation du programmateur
Circuit imprimé
Le dessin du circuit imprimé a été conçu de telle manière qu'il soit réalisable avec les moyens du bord (simple face, pas de passage entre les pastilles de circuit intégré). Si vous disposez d'une lampe UV, d'un peu de soude caustique et d'une casserole de perchlorure de fer, c'est gagné! A titre d'information, nous utilisons pour l'insolation une méthode aussi vieille que le circuit imprimé, qui va sûrement faire sourire certains d'entre vous. C'est pourtant une méthode totalement gratuite et redoutablement efficace. Vous versez un soupçon d'huile de cuisine sur le tracé du CI dessiné sur du papier de faible épaisseur (<50g/m²), ce qui va rendre le papier transparent. Enlevez le surplus d'huile, laissez séchez quelques minutes, Montage des composants
Le montage des composants s'effectuera dans l'ordre habituel selon le plan d'implantation, à commencer par les straps, puis les diodes et les résistances. Ensuite viennent les condensateurs, transistors, supports de circuits intégrés, régulateurs et quartz. Si le montage est destiné à passer sa vie au fond d'un boîtier, les LED devront être ajustées à la bonne hauteur pour effleurer la partie supérieure du boîtier. Idem pour le support de programmation dont la hauteur pourra se régler en rajoutant des supports tulipe les uns sur les autres.
Enfin, il ne reste qu'à effectuer les liaisons externes (alimentation et RS232). Inutile de vous rappeler que toutes les soudures doivent être propres et nettes . La meilleure solution consiste encore à nettoyer soigneusement le côté cuivre avec de l'alcool à brûler juste avant les opérations de montage et de soudure. En électronique, 99% des problèmes sont d'origine mécanique (connectique, soudures...) vous n'échapperez pas à la règle!
Suivant l'environnement qui sera le vôtre et l'utilisation qui est faite du programmateur, il est tout à fait possible de se passer du connecteur RS232 et du jack d'alimentation. Dans ce cas, les fils seront soudés directement sur le circuit imprimé. Lorsque toutes ces opérations sont terminées, il ne reste plus qu'à faire la mise en route.
Test et mise en route
Pour les premiers essais, il est recommandé de ne pas monter le micro-contrôleur U4 (sauf si vous êtes sûr de votre montage à 100%).
* Tout d'abord, brancher le bloc secteur. La valeur de la tension d'entrée du régulateur 7805 doit être comprise entre un minimum de 16V, et un maximum de 24V. La tension en sortie du 7805 doit être de 5V  10%.
* Connecter le port P36 (patte 16 du support de U4) au +5V (patte 40 du support de U4). La tension sur la patte 31 du support de programmation doit être inférieure à 0,5V.
* Connecter le port P36 au 0V, puis le port P37 (patte 17 du support de U4) au +5V. La tension sur la patte 31 du support de programmation doit être égale à 5V  5%. * Connecter pour finir le port P36 au 0V, puis le port P37 au 0V. La tension sur la patte 31 du support de programmation doit être comprise entre 12,6V et 12,8V. Si ce n'est pas le cas, ajustez R24 de quelques dizaines d'ohms...
* Connecter le programmateur au micro-ordinateur, envoyer un fichier quelconque sur la RS232 (ex: TYPE AUTOEXEC.BAT > COM1 ) et vérifier en même temps que les tensions +V/-V sur l'alimentation RS232 soient au moins égales à +5V/-5V.
Si tous les tests sont bons, vous pouvez déconnecter l'alimentation et monter le micro-contrôleur sur son support tulipe, votre programmateur est prêt à fondre du silicium!
Mise en route
Lancer un quelconque logiciel émulant un terminal standard. Une fois encore, nous préconisons l'emploi de "TERMINAL" de Windows sur P.C., pour la convivialité des menus de transferts de fichiers. Configurer les paramètres communication sur COM1 ou COM2, 2400 bauds, 8 bits de data, N (aucune parité), 1 bit de stop. Mettez votre programmateur en route. La LED verte doit s'allumer et vous obtenez à l'écran la première page du programmateur (nom, date, version et menu composant).
Vous pouvez essayer à loisir toutes les commandes sans aucune crainte, tant qu'il n'y a pas de composant sur le support de programmation. Lorsque vous avez sélectionné un circuit dans le menu composant, il apparaît un sous-menu dans lequel vous retrouvez la plupart des fonctions usuelles d'un programmateur:
Test : Contrôle si les données contenues dans le composant sont à FF. Le test se fait en général par blocs de 256 octets.
Lecture : Lis les données contenues dans le composant. L'affichage se fait par ligne, chaque ligne représentant un bloc de 16 octets. Certains composants (c'est le cas du PIC) utilisent le +Vpp pour la lecture, alors pas d'inquiétude si la LED jaune s'allume! Ces deux dernières fonctions peuvent être interrompues à tout moment en appuyant sur n'importe quelle touche du clavier. Si elles ne sont pas interrompues, elles iront jusqu'au terme de la capacité d'adressage, soit 7FFFh.
Securise : Programme le ou les bits de sécurité. Cette commande vous permet de rendre illisibles les données qui viennent d'être programmées dans votre micro favori.
Programme : Programmation du composant à partir du fichier de données qui va lui être envoyé. Avant la lecture du fichier de données, le programmateur vous demandera d'abord le format des données: Binaire pur (fichier .BIN), ou Hexa pur codé ASCII (en général, fichier à extension .TXT). Si votre code exécutable n'est pas sous un de ces deux formats, il est nécessaire d'utiliser un convertisseur de format. Il en existe de très nombreux sur le marché, y compris en FreeWare, vous n'aurez donc aucun problème pour vous en procurer. Attention, les fichiers .HEX sont très souvent des fichiers au format HEX INTEL ou MOTOROLA, qu'il faut alors transformer en fichiers hexa ASCII pur .
Vérifie : Relecture et comparaison des données qui viennent d'être programmées avec le fichier original. Le processus est identique à la commande Programme: choix du format des données, puis envoi du fichier pour comparaison. Si vous utilisez "TERMINAL" de Windows, celui-ci ne conserve en mémoire que les dernières pages d'écran. Si vous souhaitez conserver toute la trace de la communication (notamment très utile en mode lecture), vous devrez cliquer auparavant sur "fichier" puis "enregistrer sous". Windows conservera alors la trace complète du dialogue avec le programmateur dans un fichier à extension .TRM. N'importe quel éditeur de texte vous permettra alors de 'bricoler' les données comme bon vous semblera.
-------
Recherches associées à :
programmateur universel eprom
prix programmateur d eprom
programmateur d'eprom willem
programmateur eeprom usb
programmateur d'eprom usb
programmateur d'eprom usb std
programmateur willem
programmeur eprom
programmateur willem usb

Enregistrer un commentaire

1 Commentaires