Description :
Sur ce site, sont proposés deux programmateurs pour
les mémoires I2C de la série 24Cxx, l'un se
connectant sur le port série, l'autre prévu
pour le port parallèle. Ces deux dispositifs
nécessitent d'avoir sous la main un PC, ce qui
n'est pas toujours le cas, par exemple dans un atelier
de dépannage TV (ou autres) ; dans ce cas
de figure, la fonction recherchée consiste
plutôt à pouvoir dupliquer le contenu
d'une eeprom référence dans une
mémoire vierge en vue d'un échange
standard ; il suffira alors de se constituer une
petite 'bibliothèque' de mémoires servant
de modèles, et adaptées aux différents
cas de figures rencontrés. Le montage
présenté sur cette page permet d'effectuer
cette duplication de manière totalement autonome,
c'est-à-dire sans PC et avec une alimentation
constituée d'une simple pile 9V. Il est conçu
pour les 24C01, 24C02, 24C04, 24C08 et 24C16 (ou toute
référence compatible, telle que la 24C164, etc.).
Les mémoires I2C étendues (24C32 à 512) ne
sont pour l'instant pas prises en charge.
Schéma électrique :
Analyse du schéma :
Comme vous pouvez le constater, l'ensemble est d'une
grande simplicité ; le coeur du système est le
microcontrôleur PIC16F84 bien connu, largement disponible
à un prix raisonnable, et programmable avec des moyens
'rustiques' ; le recours à ce type de composant
programmable s'impose comme une évidence compte tenu de
la (relative) complexité du protocole I2C utilisé
par les EEPROMs 24Cxx.
La pile 9V, associée à un classique
régulateur 7805, fournit le +5v nécessaire
aux alimentations du PIC et des mémoires ;
la diode protège des inversions de
polarité ; le PIC est, comme presque toujours,
accompagné de son circuit d'horloge (quartz 4 MHz
et condensateurs 15 pF), et de RESET (touche + 22k +
2,2µF, ces valeurs étant peu critiques). On
trouve également trois leds (rouge, verte et jaune)
indiquant l'état des opérations, ainsi
que cinq touches pour lancer le cycle tout en indiquant au
montage le modèle de mémoires présentes.
Les résistances de 330 ohms limitent le courant dans
les leds à un peu moins d'une dizaine de mA. Les
résistances de 10 k ohms sont des résistances
de tirage, servant à assurer un niveau logique
"1" lorsque la touche sur l'entrée
considérée est relachée (ou l'inter
non passant, dans le cas de RA3).
Les mémoires I2C partagent une ligne SDA commune,
qui est la broche RA4 : cette sortie est du type
"à collecteur ouvert", ce qui convient
bien à la structure du bus I2C, contrairement aux
autres sorties du PIC (RB0 à RB7 et RA0 à
RA3) qui sont des sorties TTL. La résistance de tirage
sur RA4 est donc absolument indispensable, contrairement
à celles présentes sur RA0 et RA2 commandant
les entrées SCL des mémoires ; je les ai
mises afin de fixer les états des broches SCL lors
du RESET, les sorties du PIC étant alors en haute
impédance.
Je ne reprendrai pas ici la description du bus I2C et
des échanges avec les mémoires 24Cxx :
le visiteur intéressé se reportera à
la rubrique "Protocole I2C" du programmateur
I2C pour port parallèle, présenté
sur ce même site.
Circuit imprimé :
![]() Cop-ARES.LYT Dessin du circuit imprimé et implantation des composants au format AresLite. |
![]() Cop-CIBG.GIF Dessin du circuit imprimé au format GIF en haute définition (600 dpi), vu côté composants. |
---|
Réalisation du circuit imprimé :
Ceux d'entre-vous qui possèdent le logiciel ARES Lite (ou
même la version de démo disponible sur le web ?)
pourront directement charger le fichier "COP-Ares.LYT"
fourni et l'imprimer sur papier à l'échelle 1.
Pour les autres, pas de problème : le dessin du
circuit est également fourni ci-dessus au format GIF,
avec une résolution de 600 DPI ; vous pourrez donc
l'imprimer, par exemple avec
Paint Shop Pro V3.11,
en indiquant les dimensions : 7,20 cm x 5,93 cm (ou 2,83
pouces x 2,33 pouces). Avec les marges, une plaque de 6 cm x
7 cm suffit.
Il reste alors à réaliser une photocopie de
bonne qualité (laser) sur un transparent. Une
alternative consiste à rendre la feuille de
papier transparente aux UV en vaporisant un produit
comme le "Diaphane", de KF : j'ai
utilisé cette méthode avec satisfaction,
mais il est préférable de prolonger un peu
l'insolation aux UV (dans mon cas, 5 mn au lieu de 3).
Pour terminer, gravez, puis percez, selon votre
méthode habituelle.
|
Remarques :
Utilisez impérativement des supports 'tulipe', en
particulier pour les mémoires I2C, car ils seront
appelés à supporter de nombreux retraits et
insertions.
Un mot concernant les touches : ce modèle de
touche (carrée, de 6 mm de côté) est
assez courant, on le trouve dans les souris d'ordinateurs,
en façade de magnétoscopes, lecteurs de CD
et autres appareils audio ou vidéo en tous genres :
Comme le montrent le schéma et les photos ci-dessus, les touches possèdent quatre connexions, mais qui sont en fait reliées deux à deux de manière interne : ce sont les extrémités de deux bandes parallèles (bandes mises en contact lors de l'appui sur la touche) ; dans le doute, contrôlez le contact à l'ohmmètre. Cette structure permet de réaliser facilement des claviers matricés, sans avoir à ajouter de strap pour faire se croiser les lignes et les colonnes. Vous pouvez choisir un modèle de touche différent pour la touche RESET, ou vous abstenir de la câbler si vous préférez utiliser un bouton poussoir externe (relié au bornier triple).
Implantation des composants :
Câblage :
Commencez par souder les résistances et le strap
(constitué d'une patte de résistance), puis
la diode, puis les six touches, puis les trois supports de CI,
les condensateurs 'céramique', chimiques, les leds, le quartz,
et enfin les borniers. Connectez le clip de pile 9v au bornier
double, avec éventuellement un interrupteur en série.
Si vous n'utilisez ni le poussoir RESET externe, ni l'interrupteur
"Mode" (voir Mise en service), il n'est pas
vraiment nécessaire de souder le bornier triple.
Comme vous le constatez sur la photo ci-dessus, il reste un peu de place sous les touches pour coller des étiquettes indiquant le type de mémoire auquel est associée chaque touche ; de gauche à droite : 24C01, 24C02, 24C04, 24C08 et 24C16. La touche RESET (blanche, à côté du régulateur) permet de se remettre en attente d'un cycle de programmation.
Programmation du PIC :
Personnellement, j'utilise le programmateur JDM ;
sa structure est simple, et il tire son alimentation
directement du port série auquel il est
connecté, si vous avez la chance d'avoir un
PC qui en possède encore un (on évitera
les adaptateurs USB / port série).
Description en français du programmateur JDM, sur le site de F5JTZ :
http://f5jtz.free.fr/pjacquet/pip02.htm |
Plutôt que le programme DOS PIP02 proposé, je vous
engage à utiliser des softs plus récents, mieux
adaptés aux PC actuels et aux OS modernes : |
Le programme :
Vous pouvez indifféremment utiliser un PIC16C84, un
PIC16F84, ou un PIC16F84A / PIC16LF84A, à
condition de l'indiquer au logiciel de votre programmateur.
Voici le fichier
Cop10.HEX (version 1.0) à
programmer dans le PIC. Exceptionnellement, j'ai
décidé de fournir le fichier 'source' du
programme si vous souhaitez y apporter des modifications ;
téléchargez pour cela l'archive
ASM-PIC.ZIP (80 ko) ; elle
contient les quatre fichiers suivants :
Mise en service :
Utilisation :
La pile est branchée, les mémoires ayant
été insérées sur les supports
8 broches (l'original du côté du bornier
triple, et la mémoire vierge du côté
du quartz).
La programmation dure environ :
|
L'interrupteur 'Mode', lorsqu'il est passant, permet d'éviter une phase de vérification et de réduire ainsi la durée de la programmation d'environ un tiers (ainsi, pour une 24C16, elle passe à environ 11 secondes). Mais il est dommage de limiter de la sorte la fiabilité du système, et je n'exclus pas d'attribuer à l'interrupteur une autre fonction, dans une version ultérieure du système.
Retour au sommaire |
---|
Dernière mise à jour : le 05-08-2016.