Une 'espèce' de recueil de blogs (et autres) susceptibles d'informer utilement sur des sujets divers en électronique. Avec 'tentative' de classement selon les thématiques suivantes :
- Electronique
- Retro-computing
- Synthétiseurs
- Open source spécifique
- Outils de développement
- Et peut-être d'autres thématiques et/ou sous-thématiques...
Note : je ne suis pas censé vérifier la validité perpétuelle des liens. Si vous constatez des problèmes, n'hésitez pas à m'en faire part...
Parce que ça n'est pas simple de trouver un testeur d'anciennes RAM dynamiques à prix intéressant.
Tel pourrait être le sous-titre de ce billet.
Alive or dead?
Il m'arrive à l'occasion de réparer d'anciennes machines, que ce soit des synthétiseurs ou des ordinateurs. J'ai déjà eu quelques soucis avec un Studio 440 de Sequential Circuits à ce sujet, et, comme je souhaite dépanner une carte mère d'Apple IIE qui ne démarre pas, je me retrouve avec le même problème de test de la validité des circuits mémoire.
J'ai donc cherché sur le Net un appareil capable de répondre à mon besoin. Les deux seules alternatives aujourd'hui consistent en un appareil 'Made in China' qui coutera un prix plancher (frais de port aidant), capable de tester des 'milliers' de composants et dans lequel je n'aurai absolument aucune confiance. J'ai eu ce problème avec un programmateur d'EPROM qui ne fonctionne que sous conditions radicales!
Ou alors, je peux acheter un appareil professionnel qui fera plus sérieusement ce qu'on lui demandera, tout en proposant beaucoup plus que mes besoins de base, à un prix bien trop élevé si l'on considère le temps d'utilisation de l'appareil pour ce type de travail.
C'est l'effet 'magnétoscope' qui, rapporté au nombre de cassettes visionnées dans certaines famille, rendait l'acquisition de l'appareil d'un coup absolument exorbitant! Pour une utilisation plus 'sérieuse', d'aucun objectera que cela n'est pas tant le cout de l'appareil, mais surtout le nombre d'heures économisées qui rendent l'achat d'un tel testeur intéressant. Heu, oui, pourquoi pas. Seulement il faudrait travailler pendant un certain nombre de semaines à tester des RAM dynamiques pour rentabiliser l'achat.
Reste donc une solution, le faire soi-même :
Basic de chez Basic!!!
Cela demande un petit temps de travail, mais construit par petites tranches de temps libre, le prix d'un tel développement est insignifiant. Le cout en composants est aussi dérisoire. Il restera à développer les quelques algorithmes pour tester les différents type de boitiers RAM existants à savoir les RAM de la famille 41xxx et 44xxx (4416, 4164, 41256, 4416, 4464 etc...).
Un petit circuit imprimé devrait permettre la construction d'un appareil facile à utiliser :
Comment cela est-il censé fonctionner?
J'utilise un processeur ATMEL ATmega328. L'avantage de ce type de processeur est qu'il peut fonctionner en 5V, donc directement interfaçable avec un boitier mémoire. L'alimentation provient d'un micro-connecteur USB qui passe par un interrupteur pour permettre l'insertion du composant à tester, hors tension. Un transistor BS170 permet de ramener directement à la masse la broche 17 du support de circuit à tester dans le cas du test d'un boitier non pas à 18 mais à 16 broches comme ceux de la famille 41xx. Quatre micro-interrupteurs permettront de sélectionner le type de mémoire à tester. L'état final du test sera présenté sur les LEDs.
Le fonctionnement sera simple. On choisi le type de RAM avec les dip-switchs, on place le composant sur le support (je n'ai pas prévu de support à force d'insertion nulle), on met le montage sous tension avec le bouton poussoir, et on attend. Si la LED rouge s'allume, c'est qu'un problème aura été détecté.
Parce que quand même, quand arrive une machine avec un problème de RAM dynamique, c'est une vraie galère à détecter surtout si, comme le plus souvent, on n'a pas à disposition une banque complète du type de mémoire voulu, réputée fiable. Ce petit système devrait donc combler ce manque!
01 mars 2017 : reçu!
Il n'y à plus qu'à programmer le petit algorithme 'qui va bien'...
Pour commencer l'année j'ai choisi de publier un petit sujet qui me tient à cœur depuis des années sur l'évolution des microprocesseurs. Évidemment la situation a bien évolué depuis les années 80 ou seuls étaient disponibles pour le 'grand public' les composants 8bits que furent les célèbres Z80, 6502, 6809, 8080, 8085, CDP1811 et j'en passe, sans oublier le 68000, icône du modernisme et de la puissance naissante de la micro-informatique.
Z80... the brave!
Depuis cet 'âge d'or', l'évolution des microprocesseurs à suivi son cours technologique et surtout commercial, en amenant toujours plus de puissance (discutable sur bien des points) certes, mais aussi et surtout sa complexité croissante, propre à exclure toute concurrence. Ne pas oublier que l'Apple 1 fût construit par deux 'amateurs' (aidés par le père de Woz) dans un garage. L'idée même, de construire aujourd'hui de la même manière une machine avec un processeur actuel n'est même pas imaginable tellement la demande en ressources humaines et en techniques sont importantes.
le mythe!
De leur côté, les circuits permettant à une équipe très restreinte de développer des appareils 'embarqués' se sont développés sous la forme de micro-contrôleurs puissants, souvent en 32 bits, tout intégrés et utilisables comme un composants logique quelconque tout à fait traditionnel. Les cartes Arduino en sont un bon exemple.
Un système bien connu, maintenant...
Entre ces deux approches il ne reste pas grand chose. Comment actuellement, tenter de réaliser une machine informatique permettant à une équipe restreinte de développer et de produire du matériel et/ou des logiciels dans un but précis? La réponse (temporaire) se présente sous la forme de la Raspberry Pi, seul 'ordinateur' au 'vrai' sens du terme, permettant des développements relativement autonomes. Mais cette solution, pour aussi pratique quelle soit, présente tout de même des inconvénients. Tout n'est pas ouvert et facilement disponible. Créer des extension matérielles avec le protocole USB par exemple, n'est pas chose évidente. Développer le driver associé non plus. Alors qu'un appareil simple, comme un programmateur d'Eprom n'a pas besoin d'une communication à 12MBits...
Un écosystème ouvert, mais en fait 'relativement' fermé quand même.
Alors je voudrais présenter deux initiatives libres qui me semblent intéressantes.
- La première concerne la mise sur silicium d'un processeur de type RISC-V. De la même façon que Microchip fabrique ses PIC sur des instructions de type MIPS, SiFive propose aujourd'hui un microcontrôleurs basés sur les instructions RISC-V, le SiFive E31: https://www.sifive.com/
L’initiative me semble intéressante à un moment ou le nombre de fabricants de composants de ce type se restreint (surtout à l'occident). Voir les différents rapprochements de grandes entreprises ces dernières années, comme l’absorption d'Atmel par Microchip, pour peut-être les plus connus...
Comme il est intéressant de 'sponsoriser' ce type d'initiative, j'ai commandé et reçu en ce début d'année, la carte HiFive1 :
En direct des U.S.A. (pré-Trump!)
Pour l'instant je n'ai rien tenté en programmation sur cette plateforme. Je me suis contenté de la connecter au 5V et de constater le bon déroulement du programme de démonstrations qui consiste à faire varier la couleur de la LED multi-couleur à l'extrême droite de la carte, bleue au moment de la prise de photo.
Le coût d'une telle carte est faible, vendue actuellement (01/2016) 59$ sur le site de Sifive. Quelles pourraient être les raisons de s'informer (voir plus) sur ce type de produit? J'en vois plusieurs.
L'attrait de la nouveauté.
Une rapidité importante d’exécution des instructions, avec une fréquence d'environ 320MHz.
Une alternative aux produits 'standards' pratiquement imposés du fait de la raréfaction de la concurrence.
La disponibilité en open source du 'core' IP du processeur, permettant son implantation en FPGA.
A contrario, les outils de développement en sont au stade plutôt artisanal pour l'instant. Mais bon, si je compare les offres actuelles, j'ai essayé les ARM de chez ST les PIC32 et les Atmels, et bien force est de constater qu'il a fallu attendre 2010 largement passé pour avoir des outils fonctionnels de développement et de débogage temps réel. Et encore, sur des PC puissants. Que dire de Zilog avec ses Z8F qui fonctionnent depuis le début des années 90 avec un logiciel de développement propriétaire tout léger, équipé d'une interface de débogage en temps réel sur un seul fil. Le seuls problème de ces circuit Zilog est leur manque patent de mémoire RAM qui les rend non concurrentiels face à leur compétiteurs, même si le temps de développement avec ces circuits reste aujourd'hui encore bien plus faible et efficace qu'avec les autres architectures.
Une carte de développement Z8F développée à l'époque, que j'utilise toujours.
- La deuxième initiative est elle aussi très intéressantes et émane de Guillaume (f4hdk). Elle concerne la création d'un ordinateur compatible avec... rien! En fait, l'auteur à démarré son projet comme 'simple' idée d'étude et de découverte ayant pour but l’apprentissage 'concrète' du numérique. Le résultat final est quand même une machine fonctionnelle. Pour l'instant au stade 'embryonnaire' mais avec des caractéristiques très intéressantes, dont l'évidente possibilité d'évolution. En effet, si pour l'instant le processeur créé semble assez peu performant (ceci reste relatif), le fait qu'il soit open et que des contraintes de compatibilités n'aient pas dirigé l'étude le rend propice aux développements et améliorations diverses. La machine nommée 'A2Z' par l'auteur ressemble à ceci :
Un 'classique' développement sur base FPGA.
A noter que pour ceux qui seraient intéressés par ce développement, l'ensemble des ressources sont présentes ici sur le site Hackaday.
Que dire de plus? Ce projet ne se base pas sur une technologie fermée, comme l'émulation d'un processeur ancien, pas plus que sur une technologie propriétaire. L'ouverture rend donc possible nombre d'améliorations. Le processeur ne semble pas compliqué à utiliser, ce qui laisse la possibilité à de petites équipes motivées de créer à partir d'une telle plateforme. De base, les 24 bits d'adresse peuvent gérer une quantité tout à fait correcte de RAM, et le cœur 16 bits est en mesure d'exécuter un certain nombre d'opérations à la seconde, le rendant à peu près équivalent à un 286 (d'après l'auteur). Ce qui est très honorable pour 'un truc bidouillé'!
Je n'ai pas eu l'occasion de tester cette 'étude'. Pour les quelques semaines à venir j'ai d'autres projets sur lesquels il me faut avancer, je dirais presque hélas...
Pour se faire une idée concrète, l'auteur a publié une petite vidéo :
Bien qu'à la base Guillaume ne semblait pas avoir de perspectives particulières pour son développement, qui représente quand même j'imagine un 'bon paquet d'heures' de travail, suite à la déclaration d'intérêt de plusieurs internautes (dont moi-même), il a ouvert un site dédié ici : http://f4hdk.free.fr/A2Z_computer/index_fr.html.
Pour de plus amples informations sur le sujet, vous pouvez le contacter à : f4hdk [at] free.fr
And now for something completely different
Quoi que...
La technologie pour la technologie, l'excellence pour l'excellence, etc etc... Oui, pourquoi pas.
Mais l'important c'est ce qu'on peut en faire, en vrai. Même si à la base cela paraissait une idée farfelue! :
Crédit photo : moi-même!
Le 'pire' dans l'histoire, est que cette cabine téléphonique est parfaitement fonctionnelle au 31/12/2016.