{"id":1434,"date":"2021-05-07T15:12:21","date_gmt":"2021-05-07T13:12:21","guid":{"rendered":"http:\/\/f6kmf.fr\/?p=1434"},"modified":"2021-05-11T15:30:13","modified_gmt":"2021-05-11T13:30:13","slug":"un-simple-exercice-de-memoire","status":"publish","type":"post","link":"https:\/\/f6kmf.fr\/index.php\/2021\/05\/07\/un-simple-exercice-de-memoire\/","title":{"rendered":"Un simple exercice de m\u00e9moire"},"content":{"rendered":"\n<p>\u00ab\u00a0J&rsquo;ai la m\u00e9moire qui flanche, j&rsquo;me souviens plus tr\u00e8s bien &#8230;\u00a0\u00bb<\/p>\n\n\n\n<p>J&rsquo;  ai cet air en t\u00eate, maintenant,  c&rsquo; est malin !<\/p>\n\n\n\n<p>Ca vous est jamais arriv\u00e9 d&rsquo; avoir un air dans la t\u00eate et de ne plus pouvoir vous en d\u00e9faire, et de le fredonner pendant toute la journ\u00e9e?<\/p>\n\n\n\n<p>Ca serait dr\u00f4lement pratique dans ces cas la de pouvoir d\u00e9coller une \u00e9tiquette, s&rsquo; exposer au soleil pendant un moment, et pfuit, disparu l&rsquo; air ent\u00eatant ! A l&rsquo; inverse, ce serait dr\u00f4lement bien de pouvoir stocker une info dans un coin de sa t\u00eate, et de pouvoir la retrouver des ann\u00e9es apr\u00e8s dans la m\u00eame case ou on l&rsquo; a mise .<\/p>\n\n\n\n<p>Une grosse t\u00eate avec du vide dedans, c&rsquo; est tout ce qu&rsquo; on est sans la m\u00e9moire. Eh, bien figurez vous que pour un microcontr\u00f4leur, c&rsquo; est pareil.<\/p>\n\n\n\n<p>Sans m\u00e9moire on serait oblig\u00e9 de rappeler sans cesse au \u00b5C ce qu&rsquo; il doit faire et comment le faire, \u00e7a ne serait pas bien pratique.<\/p>\n\n\n\n<p>L&rsquo; arduino par exemple a une petite m\u00e9moire, suffisante quand m\u00eame pour stocker le programme, la m\u00e9moire flash, plus une autre qui va servir \u00e0 stocker des informations acquises pendant le fonctionnement du programme. C&rsquo;est la ROM, \u00a0\u00bb read only memory\u00a0\u00bb. Au d\u00e9part, c&rsquo; est vraiment une m\u00e9moire en lecture seule, qui n&rsquo; est pas possible de modifier, on la programme une fois est c&rsquo; est tout !<\/p>\n\n\n\n<p>Ensuite, on a trouv\u00e9 le moyen d&rsquo; effacer la m\u00e9moire en vue de la r\u00e9\u00e9crire.<\/p>\n\n\n\n<p>Le composant \u00e9tait \u00e9quip\u00e9 d&rsquo; une fen\u00e8tre en quartz qui laisse passer les UV et permet d&rsquo; effacer compl\u00e8tement les donn\u00e9es, en bloc, c&rsquo; est \u00e0 dire qu&rsquo; on ne pouvait pas changer juste une adresse de donn\u00e9e, on effa\u00e7ait tout, en exposant le chip, on remettait tous les bits de m\u00e9moire \u00e0 \u00ab\u00a01\u00a0\u00bb, et la programmation consistait \u00e0 changer les \u00ab\u00a01\u00a0\u00bb en \u00ab\u00a00\u00a0\u00bb la ou il fallait, et \u00e0  laisser \u00e0 \u00a0\u00bb 1&Prime;  ceux qui y \u00e9taient d\u00e9j\u00e0 . C&rsquo; \u00e9tait d\u00e9j\u00e0 pas mal, mais on a fait un progr\u00e8s \u00e9norme en trouvant un moyen de repogrammer \u00e9lectroniquement la m\u00e9moire, non plus dans sa totalit\u00e9, mais adresse par adresse, bit par bit.<\/p>\n\n\n\n<p>L&rsquo; EEPROM, Electronically Erasable and Programmable Read Only Memory ( fermez le ban !) \u00e9tait n\u00e9e.<\/p>\n\n\n\n<p>L&rsquo; arduino poss\u00e8de une EEPROM int\u00e9gr\u00e9e de 1 Ko, et dispose d&rsquo; une librairie tr\u00e8s compl\u00e8te pour l&rsquo; utiliser . <a href=\"https:\/\/www.arduino.cc\/en\/Reference\/EEPROM\">https:\/\/www.arduino.cc\/en\/Reference\/EEPROM<\/a><\/p>\n\n\n\n<p>Mais l&rsquo; arduino peut faire mieux que \u00e7a : il peut programmer une EEPROM externe, soit qu&rsquo; on veuille plus de ROM, ou qu&rsquo; on veuille programmer la ROM pour un autre microcontr\u00f4leur.<\/p>\n\n\n\n<p>C&rsquo; est ce qui m&rsquo; a pouss\u00e9 \u00e0 m&rsquo; int\u00e9resser \u00e0 ce sujet et c&rsquo; est ce que je vais vous expliquer aujourd&rsquo;hui.<\/p>\n\n\n\n<p>L&rsquo; id\u00e9e, c&rsquo; est de reprogrammer une EEPROM 27c512 dans un vieil \u00e9metteur r\u00e9cepteur FM UHF Talco que Jean Marie de F1FDM m&rsquo; a tr\u00e8s aimablement donn\u00e9, contre bon soins. On trouve sur le net les fichiers binaires tout cousus et adapt\u00e9s au trafic radioamateur, fr\u00e9quences, shift etc.. Y&rsquo; a plus qu&rsquo; \u00e0 bourrer \u00e7a dans la 27c512, et j&rsquo; aurai un \u00e9metteur \u00a0\u00bb tout neuf\u00a0\u00bb Mouais, on n&rsquo;y est pas encore !<\/p>\n\n\n\n<p>Avant de se lancer avec l&rsquo; eeprom du talco, j&rsquo; 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&rsquo; ai r\u00e9cup\u00e9r\u00e9 sur un vieux poste 80 MHz une 27c010, m\u00eame type que la 512, mais avec le double de m\u00e9moire, et un brochage similaire, si ce n&rsquo;est le nombre plus grand d&rsquo; adresses, 128K mots de 8 bits , soit une adresse cod\u00e9e sur 17 bits ( 11 bits sur la 512).<\/p>\n\n\n\n<p>Premi\u00e8re \u00e9tape : lire des adresses sans microcontr\u00f4leur, en entrant les adresses \u00e0 la main avec des roues codeuses hexad\u00e9cimales, r\u00e9cup du m\u00eame poste 80 MHz. Le contenu de l&rsquo; adresse est envoy\u00e9 sur les sorties parall\u00e8les de la ROM, q0 \u00e0 q7, soit 8 bits, qu&rsquo; on lira en allumant des LED .<\/p>\n\n\n\n<p>C &lsquo;est ce que je vous propose dans une vid\u00e9o qui sera le premier volet d&rsquo; une s\u00e9rie ou on ira pas \u00e0 pas, et si tout se passe bien, on finira par programmer l&rsquo; eeprom du talco pour le ressuciter ( halleluiah !)<\/p>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" width=\"800\" height=\"450\" src=\"https:\/\/www.youtube.com\/embed\/R5BL5TezQ1Q?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=R5BL5TezQ1Q\"><\/a>  <br><a href=\"https:\/\/www.youtube.com\/watch?v=R5BL5TezQ1Q\">https:\/\/www.youtube.com\/watch?v=R5BL5TezQ1Q<\/a> <\/p>\n\n\n\n<p>Dans un prochain \u00e9pisode, on verra comment substituer un arduino aux roues codeuses et aux LED, et on essaiera de lire le contenu de la m\u00e9moire, et de l&rsquo; afficher dans le moniteur s\u00e9rie de l&rsquo; IDE arduino.<\/p>\n\n\n\n<p>Ensuite, on essaiera d&rsquo; effacer la ROM en lui donnant un bon coup de soleil,  de reprogrammer des donn\u00e9es, et finalement de les lire pour voir si \u00e7a a march\u00e9.<\/p>\n\n\n\n<p>Puis on adaptera notre montage \u00e0 l&rsquo; EEPROM 27c512 du Talco, on effacera et on r\u00e9\u00e9crira le fichier binaire qui va bien, et le talco ressucitera le trois\u00e8me jour. ( inch&rsquo;allah !)<\/p>\n\n\n\n<p>Mais tout \u00e7a, c&rsquo; est si \u00e7a se passe bien !<\/p>\n\n\n\n<p>le datasheet du 27c010 :<a href=\"https:\/\/www.datasheetarchive.com\/pdf\/download.php?id=a725fc7ba9d4b08faad3a8c19e4161ac9065fd&amp;type=M&amp;term=MK2716J8\">https:\/\/www.datasheetarchive.com\/pdf\/download.php?id=a725fc7ba9d4b08faad3a8c19e4161ac9065fd&amp;type=M&amp;term=MK2716J8<\/a><\/p>\n\n\n\n<p>Une superbe vid\u00e9o 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 \u00e0 sa chaine, faites gaffe, je v\u00e9rifierai, y&rsquo;aura des questions l\u00e0 dessus dans la prochaine interro ! <\/p>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" width=\"800\" height=\"450\" src=\"https:\/\/www.youtube.com\/embed\/K88pgWhEb1M?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>La chaine de Ben Eater : <a href=\"https:\/\/www.youtube.com\/user\/eaterbc\">https:\/\/www.youtube.com\/user\/eaterbc<\/a><\/p>\n\n\n\n<p>To be continued &#8230;<\/p>\n\n\n\n<p>73<\/p>\n\n\n\n<p>antoine, de F8EBL<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00ab\u00a0J&rsquo;ai la m\u00e9moire qui flanche, j&rsquo;me souviens plus tr\u00e8s bien &#8230;\u00a0\u00bb J&rsquo; ai cet air en t\u00eate, maintenant, c&rsquo; est<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[7],"tags":[],"class_list":["post-1434","post","type-post","status-publish","format-standard","hentry","category-electronique"],"_links":{"self":[{"href":"https:\/\/f6kmf.fr\/index.php\/wp-json\/wp\/v2\/posts\/1434","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/f6kmf.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/f6kmf.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/f6kmf.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/f6kmf.fr\/index.php\/wp-json\/wp\/v2\/comments?post=1434"}],"version-history":[{"count":2,"href":"https:\/\/f6kmf.fr\/index.php\/wp-json\/wp\/v2\/posts\/1434\/revisions"}],"predecessor-version":[{"id":1436,"href":"https:\/\/f6kmf.fr\/index.php\/wp-json\/wp\/v2\/posts\/1434\/revisions\/1436"}],"wp:attachment":[{"href":"https:\/\/f6kmf.fr\/index.php\/wp-json\/wp\/v2\/media?parent=1434"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/f6kmf.fr\/index.php\/wp-json\/wp\/v2\/categories?post=1434"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/f6kmf.fr\/index.php\/wp-json\/wp\/v2\/tags?post=1434"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}