1 Punkte von GN⁺ 2025-04-06 | 1 Kommentare | Auf WhatsApp teilen

Minimalcomputer

  • Ursprüngliche Idee: Früher konnte man Bausätze bestellen und zu Hause Computer zusammenbauen. Moderne Computer bestehen aus komplexen Chips und benötigen viel Strom. Daher begann ein Experiment mit der Frage, ob sich ein moderner Computer als leicht zu Hause zusammenbaubarer Bausatz realisieren lässt.
  • Ziel: Einen Computer zu bauen, der Debian Linux, vi, gcc und make ausführen kann. Als Ziel wurden 8 MB RAM, eine 1-MIPS-CPU, eine SD-Karte und USB festgelegt.

Auswahl der Bauteile

  • USB-Schnittstelle: Unter 8-Pin-Chips gibt es kaum welche mit USB-Unterstützung. Möglich sind der PL2303GL und die ATTINYx5-Serie.
  • RAM: Verwendet wird SOIC-8-PSRAM. 8 MB RAM sind leicht erhältlich.
  • Mikrocontroller: Mehrere Optionen wurden geprüft, doch der STM32G031J6 erwies sich als am besten geeignet. Er bietet 32 KB Flash, 8 KB RAM und eine Taktfrequenz von 64 MHz.

Hardware-Design

  • Konsole: Die UART-Pins können nicht mit anderen Funktionen kombiniert werden.
  • RAM: Das SPI-PSRAM unterstützt zwar den QSPI-Modus, wegen der begrenzten Pinzahl wird jedoch der normale SPI-Modus verwendet.
  • SD-Karte: Um das Problem fehlender Pins zu lösen, wurde eine Methode entwickelt, RAM und SD-Karte an dieselben Pins anzuschließen.

Software-Geschichte

  • Emulator: Ein vorhandener MIPS-Emulator wird wiederverwendet. Der 32-KB-Flash wird in Bootloader und Hauptcode aufgeteilt.
  • Bootloader: Es wurde ein Bootloader entwickelt, der Firmware-Updates von der SD-Karte unterstützt.

Leistung

  • Overclocking: Der STM32G031 ist für 64 MHz spezifiziert, lässt sich aber bis auf 150 MHz übertakten. Bei 148 MHz erreicht die emulierte MIPS-CPU eine Leistung, die ungefähr einem 1,65-MHz-MIPS-R3000 entspricht.

Zusammenbau

  • Erste Montage: SD-Karten-Sockel, Kondensatoren, Widerstände, Mikrocontroller und USB-Seriell-Chip werden der Reihe nach verlötet.
  • Zweite Montage: Nach dem Programmieren des Bootloaders auf den Mikrocontroller wird der RAM-Chip verlötet.

Download und Verwendung

  • Dateien: Alle benötigten Dateien sind im Download-Paket enthalten. Man schreibt das SD-Karten-Image und kopiert die Firmware auf die SD-Karte, damit der Bootloader sie beim ersten Start erkennt.
  • Verwendung: Das Gerät bootet zu einer Shell-Eingabeaufforderung, anschließend kann zusätzlich bash gestartet werden. Um RAM-Mangel zu vermeiden, wird die Verwendung einer Swap-Datei empfohlen.

1 Kommentare

 
GN⁺ 2025-04-06
Hacker-News-Kommentare
  • Nach einigem Nachdenken darüber, welche Pins sich mit den drei SDIO-Pins kombinieren lassen, stellte sich heraus, dass sich nCS des RAM als CLK der SD-Karte, CLK des RAM als CMD der SD-Karte und MOSI des RAM als DAT der SD-Karte verwenden lassen
  • Schade, dass für die Schnittstelle zu USB ein separater Chip verwendet wird. USB ist ein komplexes Protokoll und erfordert – abgesehen von einfachem V-USB – spezialisierte Hardware und einen Software-Stack. SPI hingegen ist sehr einfach und mit minimaler Hardware möglich
  • Ich vermisse die Zeiten, in denen Desktop- und Laptop-Computer freiliegende serielle und parallele Ports hatten. Statt USB hätte man UART, I2C und SPI nutzen können, und für datenintensive Peripherie IEEE-802.3-Ethernet-Links
  • Dieser Artikel war sehr informativ und unterhaltsam
  • Es wäre gut zu erwähnen, dass die Platinenstärke 0,8 mm betragen muss. Das ist nötig, damit der „USB-C-Kantenstecker“ in den Anschluss passt
  • Ich denke, das Projekt wäre einfacher geworden, wenn die Anforderung mit 8 Pins etwas flexibler gewesen wäre. Ein paar zusätzliche Pins hätten die Komplexität stark reduziert
  • Es besteht fast nur aus zwei Chips. Einer davon ist ein USB-Seriell-IC. Wenn man die SD-Karte nicht mitzählt, ist die Gesamtzahl der Pins sehr gering
  • Das Projekt ist sehr cool, steht aber im Widerspruch zum Ziel, ein neues Computer-Kit für Anfänger zu entwickeln. Für Anfänger macht SOIC8 gegenüber SOIC28 kaum einen Unterschied, und mit größeren Chips lässt sich ein nützlicherer Computer bauen
  • Ich kann mir vorstellen, dass es in einer serverlosen IoT-Infrastruktur eingesetzt werden könnte. Wenn der PCB-Anbieter nur Energie und Ethernet bereitstellt, wäre SSH-Zugriff möglich. Nach Abschluss der Arbeit könnte man Metall/PCB recyceln
  • Das müsste auch mit RISC-V möglich sein. Ich denke an die Gründung einer einfachen Firma, die alte Mobiltelefone mit KI rootet und Internet sowie Energie bereitstellt
  • Ich verspüre den Drang, die Platine wegzulassen und es als Schaltungsskulptur zu bauen
  • Ich bin aus persönlichen Gründen allergisch gegen RISC-V
  • Statt einer SD-Karte wäre es auch niedlich, einen 8-Pin-SPI-Flash-Chip als Speicher zu verwenden