Accueil > Arduino & Co > Pico-puter : Etat des lieux

Pico-puter : Etat des lieux


Cheap 8 Mk I

Il y a pas mal de temps, j’ai commencé à développer une espèce de pico-ordinateur à base d’ATtiny 85, avec un clavier réduit, une horloge, une petite mémoire flash , et un écran oled, le tout connecté via un bus à huit lignes — les huit de l’ATtiny 85 – et supportant le protocole I2C.

En tout, la RAM de l’ATtiny 85 se monte à 512 octets, plus 8ko pour la mémoire programme, un peu d’eeprom. Même avec les 4 ko de flash à côté de l’horloge RTC, ça fait réellement très peu. Je me suis inspiré de Chip 8, que l’on peut considérer comme l’émulation d’un ordinateur simple programmable directement en code machine.

De Chip 8, j’ai retiré tout ce qui a trait au graphisme, au son, réduit la mémoire à 256 octets, contre 4ko pour mon modèle, et réduit la taille des instructions à un octet. C’est encore plus léger, on pourrait dire « cheap », d’où le nom de « Cheap 8 » que j’ai retenu pour cette… hum… architecture.

Keep It Simple, Stupid !

Par contre, je me suis un peu emballé et ai créé toute une cathédrale d’appels au « matériel » dont un système de stockage primitif mais consommateur en espace programme. S’en est suivi une phase de debug laborieuse, et l’impression la certitude d’avoir fait trop complexe. Autre écueil, je n’ai prévu aucun moyen d’entrer du code dans ce pico-puter, et il faut ajouter un programme ad-hoc inclus dans le code source de « Cheap 8 ».

Je n’ai finalement jamais utilisé le bidule, mais rien n’est perdu. Le code de « Cheap 8 Mk I » est stocké dans mon dépôt mercurial perso, et il va me servir de base pour son successeur « Cheap 8 Mk II », qui devrait être beaucoup plus fun.

Cheap 8 Mk II

Cheap 8 MK II reprendra la base de son prédécesseur : une ALU à pile, 256 octets de mémoire programme et données, et quelques entrées/sorties. Pour l’utilisabilité, je me suis inspiré un peu de l’Altair, et beaucoup plus du « Digirule 2 » : quelques switches, une poignée de LEDs, et quelques artifices permettent d’examiner la mémoire, et de saisir un programme et de l’exécuter. Avec un Attiny85, les LEDs seront figurées sur l’écran OLED connecté en I2C, histoire d’économiser quelques-unes des pins au nombre déjà plus que compté. Je pourrais utiliser des LEDs avec quelques composants de type 74*595, mais ça ajouterait un peu de complexité.

Je conserve l’ATtiny 85 comme cible, mais pour des raisons pratiques, le développement se fera sur un Arduino UNO en gardant en mémoire les limites de l’ATtiny. La base du code actuelle prévoit déjà une bonne modularité, avec des fonctionnalités activées par quelques directives lors de la compilation, et ce principe sera reconduit.

La prochaine étape

La conception est quasiment terminée, à quelques détails près. J’ai une petite liasse de feuillets au format A5 contenant l’essentiel du projet. La prochaine étape est l’assemblage des switches. Suivra la partie codage.

Dernier détail, le Digirule est en open hardware, alors pourquoi ne pas faire de même ?

  1. Aucun commentaire pour l’instant.
  1. No trackbacks yet.

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.

%d blogueurs aiment cette page :