1 points par GN⁺ 2025-04-06 | 1 commentaires | Partager sur WhatsApp

Un ordinateur minimal

  • Idée initiale : autrefois, on pouvait commander des kits pour assembler un ordinateur chez soi. Les ordinateurs modernes sont composés de puces complexes et nécessitent beaucoup d’énergie. L’expérience a donc commencé pour voir s’il serait possible de créer un kit permettant d’assembler facilement chez soi un ordinateur moderne.
  • Objectif : construire un ordinateur capable d’exécuter Debian Linux, vi, gcc et make. Les objectifs fixés étaient 8 Mo de RAM, un CPU à 1 MIPS, une carte SD et l’USB.

Choix des composants

  • Interface USB : parmi les puces à 8 broches, très peu prennent en charge l’USB. Les séries PL2303GL et ATTINYx5 sont envisageables.
  • RAM : utilisation de PSRAM en SOIC-8. Il est facile de se procurer 8 Mo de RAM.
  • Microcontrôleur : plusieurs options ont été étudiées, mais le STM32G031J6 a été jugé le plus adapté. Il dispose de 32 Ko de flash, 8 Ko de RAM et d’une fréquence d’horloge de 64 MHz.

Conception matérielle

  • Console : les broches UART ne peuvent pas être combinées avec d’autres.
  • RAM : la PSRAM SPI prend en charge le mode QSPI, mais en raison des limites du nombre de broches, le mode SPI classique a été utilisé.
  • Carte SD : pour résoudre le manque de broches, une méthode a été conçue pour connecter la RAM et la carte SD aux mêmes broches.

Côté logiciel

  • Émulateur : un émulateur MIPS existant a été réutilisé. Les 32 Ko de flash ont été divisés entre le bootloader et le code principal.
  • Bootloader : un bootloader prenant en charge la mise à jour du firmware depuis la carte SD a été développé.

Performances

  • Overclocking : le STM32G031 est spécifié à 64 MHz, mais peut être overclocké jusqu’à 150 MHz. À 148 MHz, le CPU MIPS émulé offre des performances équivalentes à un MIPS R3000 d’environ 1,65 MHz.

Assemblage

  • Assemblage initial : le support de carte SD, les condensateurs, les résistances, le microcontrôleur et la puce USB-série sont soudés dans cet ordre.
  • Deuxième assemblage : après avoir programmé le bootloader dans le microcontrôleur, la puce RAM est soudée.

Téléchargement et utilisation

  • Fichiers : tous les fichiers nécessaires sont inclus dans le paquet de téléchargement. Il faut écrire l’image de la carte SD, puis copier le firmware sur la carte SD afin que le bootloader le détecte au premier démarrage.
  • Utilisation : l’appareil démarre sur une invite de shell, et il est possible de lancer bash en plus. Pour éviter un manque de RAM, il est recommandé d’utiliser un fichier de swap.

1 commentaires

 
GN⁺ 2025-04-06
Commentaires Hacker News
  • Après avoir réfléchi aux broches pouvant être combinées avec les trois broches du SDIO, il s’avère qu’on peut utiliser le nCS de la RAM comme CLK de la carte SD, le CLK de la RAM comme CMD de la carte SD, et le MOSI de la RAM comme DAT de la carte SD
  • C’est dommage d’utiliser une puce séparée pour l’interface avec l’USB. L’USB est un protocole complexe et, à part le très basique V-USB, il nécessite du matériel spécialisé et une pile logicielle dédiée. À l’inverse, le SPI est très simple et peut fonctionner avec un matériel minimal
  • Les anciens ports série et parallèle exposés sur les PC de bureau et les portables me manquent. On aurait pu utiliser UART, I2C et SPI à la place de l’USB, et une liaison Ethernet IEEE 802.3 pour les périphériques gourmands en données
  • Cet article était très instructif et amusant
  • Il vaudrait la peine de préciser que l’épaisseur de la carte (0,8 mm) est nécessaire pour que le « connecteur USB-C en bord de carte » s’insère correctement dans la prise
  • J’ai l’impression qu’avec une exigence un peu plus souple sur les 8 broches, le projet aurait été plus simple. Quelques broches de plus auraient considérablement réduit la complexité
  • C’est presque un ordinateur à deux puces. L’une d’elles est un circuit intégré USB-série. Si l’on ne compte pas la carte SD, le nombre total de broches reste très faible
  • Ce projet est très sympa, mais il contredit un peu l’objectif de créer un nouveau kit informatique pour débutants. Pour un débutant, SOIC8 ou SOIC28 ne font pas une grande différence, et une puce plus grosse permettrait de construire un ordinateur plus utile
  • J’imagine que cela pourrait servir à une infrastructure IoT serverless. Si le fournisseur de PCB ne fournissait que l’énergie et l’Ethernet, on pourrait s’y connecter en SSH. Une fois le travail terminé, le métal/PCB pourrait être recyclé
  • Ce serait aussi possible avec RISC-V. J’imagine créer une petite entreprise pour rooter d’anciens téléphones avec de l’IA et leur fournir Internet et de l’énergie
  • J’ai envie de me passer de carte et d’en faire un assemblage de morceaux de circuit
  • Pour des raisons personnelles, je suis allergique à RISC-V
  • Ce serait aussi mignon d’utiliser une puce flash SPI 8 broches comme stockage à la place de la carte SD