{"id":361,"date":"2013-09-25T13:00:20","date_gmt":"2013-09-25T11:00:20","guid":{"rendered":"http:\/\/pila.fr\/wordpress\/?p=361"},"modified":"2021-10-20T23:30:43","modified_gmt":"2021-10-20T21:30:43","slug":"un-minitel-comme-terminal-linux-usb-partie-1-hardware","status":"publish","type":"post","link":"https:\/\/pila.fr\/wordpress\/archives\/361","title":{"rendered":"Un minitel comme terminal linux USB. Partie 1 : Hardware"},"content":{"rendered":"<p style=\"text-align: justify;\">Le r\u00e9seau Minitel \u00e9tant maintenant hors service depuis plus d&rsquo;un an, on voit appara\u00eetre de nombreux Minitels dans les vides-greniers. Devenus totalement inutiles pour le commun des mortels, certains Minitels poss\u00e8dent cependant la capacit\u00e9 \u00e0 \u00eatre connect\u00e9 \u00e0 des p\u00e9riph\u00e9riques, via une liaison s\u00e9rie, permettant notamment d&rsquo;imprimer les pages minitel affich\u00e9es, mais \u00e9galement d&rsquo;utiliser le minitel comme le terminal d&rsquo;un ordinateur fonctionnant sous UNIX. Si la fabrication d&rsquo;une telle interface est d\u00e9crite maintes fois sur le web, il est toujours question d&rsquo;utiliser le port COM de l&rsquo;ordinateur. Celui-ci devenant de plus en plus rare, cet article d\u00e9taille la fabrication d&rsquo;une interface analogue, mais employant une connectique USB, plus adapt\u00e9e aux ordinateurs actuels.<\/p>\n<div style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/pila.fr\/content\/interface_usb_minitel\/apertureScience.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/pila.fr\/content\/interface_usb_minitel\/apertureScienceRedux.png\" alt=\"Illustration Minitel\" width=\"500\" height=\"583\" \/><\/a><p class=\"wp-caption-text\">Un minitel affichant le logo Aperture Science en ASCII art, transmis par un ordinateur.<\/p><\/div>\n<p><!--more--><\/p>\n<h3 style=\"text-align: justify;\">Identifier les Minitel compatibles<\/h3>\n<p style=\"text-align: justify;\">Tout d&rsquo;abord, tous les Minitels ne peuvent pas \u00eatre utilis\u00e9s de la sorte, <del>seuls les Minitel 1B<\/del> les Minitels 1B et 2 sont \u00e9ligibles \u00e0 cet usage. Ils poss\u00e8dent 2 signes permettant de les distinguer des autres minitels : leur clavier est dot\u00e9 d&rsquo;une touche \u00ab\u00a0Fnct\u00a0\u00bb, et leur face arri\u00e8re est pourvue d&rsquo;une prise DIN 5 broches, qui sera essentielle \u00e0 la poursuite des op\u00e9rations :<\/p>\n<div style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/pila.fr\/content\/interface_usb_minitel\/minitel1B.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/pila.fr\/content\/interface_usb_minitel\/minitel1BRedux.png\" alt=\"signes distinctifs Minitel 1B\" width=\"500\" height=\"167\" \/><\/a><p class=\"wp-caption-text\">Le Minitel 1B est reconnaissable \u00e0 la touche Fnct de son clavier et \u00e0 sa prise DIN situ\u00e9e \u00e0 l&rsquo;arri\u00e8re, au dessus du cordon d&rsquo;alimentation.<\/p><\/div>\n<p>Merci \u00e0 Benjamin pour le test sur Minitel 2 !<\/p>\n<h3>Communication avec le Minitel<\/h3>\n<p>C&rsquo;est cette fameuse prise DIN, destin\u00e9e \u00e0 la communication avec des p\u00e9riph\u00e9riques, que l&rsquo;on va exploiter. L&rsquo;illustration suivante, tir\u00e9e de la page 68 de la documentation officielle du Minitel nous renseigne sur son brochage :<\/p>\n<div style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/pila.fr\/content\/interface_usb_minitel\/socket.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\" \" src=\"http:\/\/pila.fr\/content\/interface_usb_minitel\/socket.png\" alt=\"Brochage fiche DIN\" width=\"500\" height=\"318\" \/><\/a><p class=\"wp-caption-text\">Brochage de la prise DIN, tir\u00e9e de la documentation du Minitel.<\/p><\/div>\n<p>Les fonctions des diff\u00e9rentes broches sont les suivantes :<\/p>\n<ol>\n<li><strong>signal Rx<\/strong> : communication p\u00e9riph\u00e9rique vers Minitel.<\/li>\n<li><strong>Masse<\/strong>.<\/li>\n<li><strong>signal Tx<\/strong> : communication Minitel vers p\u00e9riph\u00e9rique.<\/li>\n<li><strong>p\u00e9riph\u00e9rique en transmission<\/strong><\/li>\n<li style=\"text-align: justify;\"><strong>Alimentation<\/strong><\/li>\n<\/ol>\n<p style=\"text-align: justify;\">Seuls les 3 premiers signaux nous int\u00e9ressent (les 2 autres semblent de plus ne pas \u00eatre pr\u00e9sents sur tous les Minitels 1B). Il s&rsquo;agit des signaux qu&rsquo;on retrouve sur toute liaison s\u00e9rie. Je me suis alors mis \u00e0 la recherche d&rsquo;un adaptateur USB vers liaison s\u00e9rie (UART). Mon choix s&rsquo;est port\u00e9 sur un c\u00e2ble \u00e0 base de la puce PL2303HX, disponible sur eBay pour quelques euros. J&rsquo;ai \u00e9galement achet\u00e9 une prise DIN 5 broches m\u00e2le, qui ira cot\u00e9 minitel :<\/p>\n<div style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/pila.fr\/content\/interface_usb_minitel\/cableEtDIN.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\" \" src=\"http:\/\/pila.fr\/content\/interface_usb_minitel\/cableEtDIN.png\" alt=\"\" width=\"500\" height=\"375\" \/><\/a><p class=\"wp-caption-text\">Prise DIN m\u00e2le, et c\u00e2ble convertisseur USB UART PL2303HX<\/p><\/div>\n<p style=\"text-align: justify;\">Ce c\u00e2ble comporte d&rsquo;un cot\u00e9 une prise USB abritant la puce PL2303HX charg\u00e9e de la conversion USB &lt;-&gt; UART, et de l&rsquo;autre 4 fils :<\/p>\n<ul>\n<li>Noir : masse<\/li>\n<li>Rouge : +5V<\/li>\n<li>Vert : Tx<\/li>\n<li>Blanc : Rx<\/li>\n<\/ul>\n<p>Attention : il semblerait que sur certains adaptateurs, les couleurs des signaux Tx et Rx soient invers\u00e9es. Si votre adaptateur est d\u00e9montable, le nom des signaux est souvent inscrit \u00e0 sur la carte, cot\u00e9 de chaque fil.<\/p>\n<p>Les signaux Tx et Rx d\u00e9livr\u00e9s par la PL2303HX sont en 3.3v, mais dits \u00ab\u00a0compatible TTL\u00a0\u00bb, ce qui signifie qu&rsquo;il est possible d&rsquo;envoyer un signal TTL 5v directement sur le fil Rx.<\/p>\n<p>La documentation du Minitel nous informe des contraintes \u00e9lectriques que l&rsquo;interface se doit de respecter :<\/p>\n<div style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/pila.fr\/content\/interface_usb_minitel\/electrical_spec.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\" \" src=\"http:\/\/pila.fr\/content\/interface_usb_minitel\/electrical_spec.png\" alt=\"\" width=\"500\" height=\"346\" \/><\/a><p class=\"wp-caption-text\">Les contraintes \u00e0 respecter lors de la conception de l&rsquo;interface<\/p><\/div>\n<p>Ce qu&rsquo;il faut retenir :<\/p>\n<ul>\n<li>En entr\u00e9e, pour obtenir un \u00e9tat logique haut, l&rsquo;interface doit absorber moins de 150\u00b5A, la tension sera alors comprise entre 2.5 et 15v<\/li>\n<li>En entr\u00e9e, pour obtenir un \u00e9tat logique bas, l&rsquo;interface doit pr\u00e9senter une r\u00e9sistance inf\u00e9rieur \u00e0 800 ohms ( Soit 0.4\/800=0.5mA absorb\u00e9s)<\/li>\n<li>En sortie, la r\u00e9sistance de l&rsquo;interface doit \u00eatre de l&rsquo;ordre de 200 kohms.<\/li>\n<\/ul>\n<p>De plus, les signaux du minitel sont dit \u00ab\u00a0\u00e0 collecteur ouvert\u00a0\u00bb, c&rsquo;est \u00e0 dire que l&rsquo;\u00e9metteur tire un signal \u00e0 la masse pour signifier un niveau logique 0, et rel\u00e2che le signal (qui doit \u00eatre ramen\u00e9 au +5V par le r\u00e9cepteur) pour signifier un niveau logique 1.<\/p>\n<h3>Sch\u00e9ma de l&rsquo;interface<\/h3>\n<p style=\"text-align: justify;\">Voil\u00e0 le sch\u00e9ma complet du circuit d&rsquo;adaptation :<\/p>\n<div style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/pila.fr\/content\/interface_usb_minitel\/schema.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\" \" src=\"http:\/\/pila.fr\/content\/interface_usb_minitel\/schema.png\" alt=\"Illustration circuit adaptation\" width=\"500\" height=\"213\" \/><\/a><p class=\"wp-caption-text\">Circuit d&rsquo;adaptation entre le PL2303HX et le Minitel<\/p><\/div>\n<p>Dans le sens Minitel -&gt; ordinateur, aucun probl\u00e8me, on relie la broche Tx du Minitel au fil Rx du c\u00e2ble, en ajoutant une r\u00e9sistance de tirage au +5V de 200 kilo-ohms, comme illustr\u00e9 dans la documentation du Minitel.<\/p>\n<p>Dans le sens ordinateur -&gt; Minitel, la situation n&rsquo;est pas aussi simple : le PL2303Hx d\u00e9livre un signal 3.3v, et la tension pr\u00e9sente sur la broche Rx du Minitel peut monter jusqu&rsquo;\u00e0 15V. J&rsquo;ai utilis\u00e9 un simple transistor 2N2222A pour r\u00e9aliser l&rsquo;adaptation des signaux. La tension pr\u00e9sente sur sa base est de 3.4v (5*R1\/(R1+R2) gr\u00e2ce au pont diviseur de tension form\u00e9 par les r\u00e9sistances R1 et R2. \u00e0 partir de l\u00e0, 2 cas se pr\u00e9sentent :<\/p>\n<ul>\n<li>Le PL2303HX envoi un niveau logique 1. L\u2019\u00e9metteur du transistor est \u00e0 3.3v, la tension base-emetteur est nulle, le transistor ne conduit pas, la broche Rx du Minitel est tir\u00e9e \u00e0 une tension comprise entre 2.5V et 15V , et, conform\u00e9ment \u00e0 sa documentation, il interpr\u00e8te cela comme un niveau logique 1.<\/li>\n<li>Le PL2303HX envoi un niveau logique 0. L&rsquo;\u00e9metteur du transistor est mis \u00e0 la masse (0v), sa tension base-emetteur vaut 0.6v, le transistor est en saturation et tire la broche Rx \u00e0 la masse, ce que le Minitel interpr\u00e8te comme un niveau logique 0.<\/li>\n<\/ul>\n<p>Ce montage permet de prot\u00e9ger le PL2303HX de la tension qui pourrait se trouver sur la broche Rx du Minitel. En effet, avec ce montage, la tension qui arrive sur la broche Tx du PL2303HX ne peut pas d\u00e9passer la tension de base du transistor Q1, soit 3.4V.<\/p>\n<h3>R\u00e9alisation<\/h3>\n<p>J&rsquo;ai choisi de r\u00e9aliser le montage dans la fiche DIN qui se connecte au Minitel. Cependant, cela implique de souder tr\u00e8s serr\u00e9, si vous ne vous sentez pas de le faire ainsi, autant r\u00e9aliser ce montage sur une plaque \u00e0 trou pour \u00e9viter les probl\u00e8mes.<\/p>\n<div style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/pila.fr\/content\/interface_usb_minitel\/level_adapter.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\" \" src=\"http:\/\/pila.fr\/content\/interface_usb_minitel\/level_adapter.png\" alt=\"illustration ma r\u00e9alisation\" width=\"500\" height=\"375\" \/><\/a><p class=\"wp-caption-text\">Ma r\u00e9alisation : tout tient dans la fiche DIN<\/p><\/div>\n<p><span style=\"color: #ff0000;\"><strong> Attention :<\/strong> Enfiler le capot de la fiche DIN sur le fil <strong>AVANT <\/strong>de souder le fil.<span style=\"color: #000000;\"> Comme on dit : \u00ab\u00a0Y&rsquo;en a qu&rsquo;ont essay\u00e9s de faire l&rsquo;inverse, bah ils ont eu des probl\u00e8mes\u00a0\u00bb ^^<\/span><\/span><\/p>\n<h3>R\u00e9sultat final et test sous windows<\/h3>\n<p>Au final l&rsquo;ensemble fait tr\u00e8s \u00ab\u00a0pro\u00a0\u00bb, sans \u00e9lectronique apparente :<\/p>\n<div style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/pila.fr\/content\/interface_usb_minitel\/interface_terminee.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\" \" src=\"http:\/\/pila.fr\/content\/interface_usb_minitel\/interface_terminee.png\" alt=\"illustration adaptateur termin\u00e9\" width=\"500\" height=\"375\" \/><\/a><p class=\"wp-caption-text\">Le c\u00e2ble d&rsquo;adaptation termin\u00e9<\/p><\/div>\n<p style=\"text-align: justify;\">Il est possible de le tester sous windows avec le logiciel TeraTerm, il faut cependant configurer la liaison s\u00e9rie en 1200 bauds, avec 7 bits de donn\u00e9es, et une parit\u00e9 paire (\u00ab\u00a0even\u00a0\u00bb en anglais). Il faut \u00e9galement passer le Minitel en mode p\u00e9ri-informatique : combinaison de touches FNCT+T puis A, et d\u00e9sactiver l&rsquo;\u00e9cho local : combinaison de touches FNCT+T puis E. Il faudrait r\u00e9p\u00e9ter cette manipulation apr\u00e8s chaque mise sous tension du Minitel, car il ne poss\u00e8de pas de m\u00e9moire.<\/p>\n<p>Pour se donner une id\u00e9e de la vitesse d&rsquo;affichage du Minitel, j&rsquo;ai r\u00e9alis\u00e9 une vid\u00e9o o\u00f9 le <a href=\"http:\/\/youtu.be\/WRF1uCQT5uc\" target=\"_blank\" rel=\"noopener\">Minitel affiche un logo en ASCII ART<\/a>.<\/p>\n<p>Il est possible de configurer le minitel pour communiquer \u00e0 4800 bauds avec la combinaison de touches FNCT+P puis 4.<\/p>\n<h3>Test sous Linux<\/h3>\n<p>Le but final \u00e9tant d&rsquo;utiliser le minitel sous Linux, voil\u00e0 comment tester l&rsquo;interface (cette partie provient directement du blog de x0r)<br \/>\n<code>$ stty -F \/dev\/ttyUSB0 1200 istrip cs7 parenb -parodd brkint \\<br \/>\nignpar icrnl ixon ixany opost onlcr cread hupcl isig icanon \\<br \/>\necho echoe echok<br \/>\n$ echo 'bonjour Minitel !' &gt; \/dev\/ttyUSB0<\/code><\/p>\n<h3>Conclusion<\/h3>\n<p>Au final, l&rsquo;ensemble r\u00e9pond parfaitement \u00e0 mes besoins : une interface Minitel utilisant une connectique contemporaine, disponible sur tout ordinateur, mais \u00e9galement sur des plateformes de type Raspberry Pi. Ll&rsquo;utilisation d&rsquo;un minitel sur ceux ci fera d&rsquo;ailleurs l&rsquo;objet d&rsquo;un prochain article. L&rsquo;ensemble est \u00e9galement tr\u00e8s propre, et assez robuste, la fiche DIN r\u00e9sistant aux arrachages.<\/p>\n<p>Comme d&rsquo;habitude, si vous avez des questions, des id\u00e9es, des photos de vos r\u00e9alisations, etc&#8230; n&rsquo;h\u00e9sitez pas \u00e0 commenter \ud83d\ude42<\/p>\n<h3>Liens utiles :<\/h3>\n<p><a href=\"http:\/\/pila.fr\/content\/interface_usb_minitel\/specifications%20techniques%20d%27utilisation%20du%20minitel.pdf\" target=\"_blank\" rel=\"noopener\">Documentation officielle du Minitel<\/a> (STUM, attention PDF de 56Mo !!)<\/p>\n<p><a href=\"http:\/\/furrtek.free.fr\/index.php?p=crea&amp;a=telinux\" target=\"_blank\" rel=\"noopener\">Article de Furrtek<\/a><\/p>\n<p><a href=\"http:\/\/x0r.fr\/blog\/5\" target=\"_blank\" rel=\"noopener\">Article de x0r<\/a><\/p>\n<p>La suite : <a href=\"http:\/\/pila.fr\/wordpress\/?p=425\" target=\"_blank\" rel=\"noopener\">utilisation du Minitel avec un Raspberry Pi<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Le r\u00e9seau Minitel \u00e9tant maintenant hors service depuis plus d&rsquo;un an, on voit appara\u00eetre de nombreux Minitels dans les vides-greniers. Devenus totalement inutiles pour le commun des mortels, certains Minitels poss\u00e8dent cependant la capacit\u00e9 \u00e0 \u00eatre connect\u00e9 \u00e0 des p\u00e9riph\u00e9riques, via une liaison s\u00e9rie, permettant notamment d&rsquo;imprimer les pages minitel affich\u00e9es, mais \u00e9galement d&rsquo;utiliser le &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/pila.fr\/wordpress\/archives\/361\">Lire la suite<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,151],"tags":[52,66,63,65,64,67],"class_list":["post-361","post","type-post","status-publish","format-standard","hentry","category-electronique","category-raspberry","tag-interface","tag-linux","tag-minitel","tag-terminal","tag-usb","tag-vintage","item-wrap"],"_links":{"self":[{"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/posts\/361","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/comments?post=361"}],"version-history":[{"count":72,"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/posts\/361\/revisions"}],"predecessor-version":[{"id":1569,"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/posts\/361\/revisions\/1569"}],"wp:attachment":[{"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/media?parent=361"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/categories?post=361"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/tags?post=361"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}