Un simple exercice de mémoire
« J’ai la mémoire qui flanche, j’me souviens plus très bien … »
J’ ai cet air en tête, maintenant, c’ est malin !
Ca vous est jamais arrivé d’ avoir un air dans la tête et de ne plus pouvoir vous en défaire, et de le fredonner pendant toute la journée?
Ca serait drôlement pratique dans ces cas la de pouvoir décoller une étiquette, s’ exposer au soleil pendant un moment, et pfuit, disparu l’ air entêtant ! A l’ inverse, ce serait drôlement bien de pouvoir stocker une info dans un coin de sa tête, et de pouvoir la retrouver des années après dans la même case ou on l’ a mise .
Une grosse tête avec du vide dedans, c’ est tout ce qu’ on est sans la mémoire. Eh, bien figurez vous que pour un microcontrôleur, c’ est pareil.
Sans mémoire on serait obligé de rappeler sans cesse au µC ce qu’ il doit faire et comment le faire, ça ne serait pas bien pratique.
L’ arduino par exemple a une petite mémoire, suffisante quand même pour stocker le programme, la mémoire flash, plus une autre qui va servir à stocker des informations acquises pendant le fonctionnement du programme. C’est la ROM, » read only memory ». Au départ, c’ est vraiment une mémoire en lecture seule, qui n’ est pas possible de modifier, on la programme une fois est c’ est tout !
Ensuite, on a trouvé le moyen d’ effacer la mémoire en vue de la réécrire.
Le composant était équipé d’ une fenètre en quartz qui laisse passer les UV et permet d’ effacer complètement les données, en bloc, c’ est à dire qu’ on ne pouvait pas changer juste une adresse de donnée, on effaçait tout, en exposant le chip, on remettait tous les bits de mémoire à « 1 », et la programmation consistait à changer les « 1 » en « 0 » la ou il fallait, et à laisser à » 1″ ceux qui y étaient déjà . C’ était déjà pas mal, mais on a fait un progrès énorme en trouvant un moyen de repogrammer électroniquement la mémoire, non plus dans sa totalité, mais adresse par adresse, bit par bit.
L’ EEPROM, Electronically Erasable and Programmable Read Only Memory ( fermez le ban !) était née.
L’ arduino possède une EEPROM intégrée de 1 Ko, et dispose d’ une librairie très complète pour l’ utiliser . https://www.arduino.cc/en/Reference/EEPROM
Mais l’ arduino peut faire mieux que ça : il peut programmer une EEPROM externe, soit qu’ on veuille plus de ROM, ou qu’ on veuille programmer la ROM pour un autre microcontrôleur.
C’ est ce qui m’ a poussé à m’ intéresser à ce sujet et c’ est ce que je vais vous expliquer aujourd’hui.
L’ idée, c’ est de reprogrammer une EEPROM 27c512 dans un vieil émetteur récepteur FM UHF Talco que Jean Marie de F1FDM m’ a très aimablement donné, contre bon soins. On trouve sur le net les fichiers binaires tout cousus et adaptés au trafic radioamateur, fréquences, shift etc.. Y’ a plus qu’ à bourrer ça dans la 27c512, et j’ aurai un émetteur » tout neuf » Mouais, on n’y est pas encore !
Avant de se lancer avec l’ eeprom du talco, j’ aimerais bien faire des essais sur une eeprom similaire, histoire de se faire la main et de comprendre deux trois trucs encore un peu obscures. J’ ai récupéré sur un vieux poste 80 MHz une 27c010, même type que la 512, mais avec le double de mémoire, et un brochage similaire, si ce n’est le nombre plus grand d’ adresses, 128K mots de 8 bits , soit une adresse codée sur 17 bits ( 11 bits sur la 512).
Première étape : lire des adresses sans microcontrôleur, en entrant les adresses à la main avec des roues codeuses hexadécimales, récup du même poste 80 MHz. Le contenu de l’ adresse est envoyé sur les sorties parallèles de la ROM, q0 à q7, soit 8 bits, qu’ on lira en allumant des LED .
C ‘est ce que je vous propose dans une vidéo qui sera le premier volet d’ une série ou on ira pas à pas, et si tout se passe bien, on finira par programmer l’ eeprom du talco pour le ressuciter ( halleluiah !)
https://www.youtube.com/watch?v=R5BL5TezQ1Q
Dans un prochain épisode, on verra comment substituer un arduino aux roues codeuses et aux LED, et on essaiera de lire le contenu de la mémoire, et de l’ afficher dans le moniteur série de l’ IDE arduino.
Ensuite, on essaiera d’ effacer la ROM en lui donnant un bon coup de soleil, de reprogrammer des données, et finalement de les lire pour voir si ça a marché.
Puis on adaptera notre montage à l’ EEPROM 27c512 du Talco, on effacera et on réécrira le fichier binaire qui va bien, et le talco ressucitera le troisème jour. ( inch’allah !)
Mais tout ça, c’ est si ça se passe bien !
le datasheet du 27c010 :https://www.datasheetarchive.com/pdf/download.php?id=a725fc7ba9d4b08faad3a8c19e4161ac9065fd&type=M&term=MK2716J8
Une superbe vidéo sur le sujet par Ben Eater, super gourou, God-Level sur le sujet. Je vous recommande, que dis-je, je vous demande, vous commande, vous ordonne solennellement de jeter un oeil à sa chaine, faites gaffe, je vérifierai, y’aura des questions là dessus dans la prochaine interro !
La chaine de Ben Eater : https://www.youtube.com/user/eaterbc
To be continued …
73
antoine, de F8EBL
Vite la suite …….
Trop bien, merci Antoine,
n’oublie pas d’aller faire un tour sur 28 et/ou 50 Mhz, on fait de belles rencontres !
Amitiès,
Gilles F1EFW