1 puntos por GN⁺ 2025-04-06 | 1 comentarios | Compartir por WhatsApp

Computadora mínima

  • Idea inicial: En el pasado se podían pedir kits para armar una computadora en casa. Las computadoras modernas están compuestas por chips complejos y requieren mucha energía. Aun así, comenzó un experimento para ver si sería posible convertir una computadora moderna en un kit fácil de ensamblar en casa.
  • Objetivo: Crear una computadora capaz de ejecutar Debian Linux, vi, gcc y make. Se fijó como meta contar con 8 MB de RAM, una CPU de 1 MIPS, tarjeta SD y USB.

Elección de componentes

  • Interfaz USB: Entre los chips de 8 pines, casi no hay opciones con soporte para USB. Las posibilidades eran PL2303GL y la serie ATTINYx5.
  • RAM: Se usa PSRAM SOIC-8. Es fácil conseguir 8 MB de RAM.
  • Microcontrolador: Se consideraron varias opciones, pero se concluyó que el STM32G031J6 era el más adecuado. Tiene 32 KB de flash, 8 KB de RAM y una velocidad de reloj de 64 MHz.

Diseño de hardware

  • Consola: Los pines UART no se pueden combinar con otras funciones.
  • RAM: La PSRAM SPI soporta modo QSPI, pero por la limitación en el número de pines se usa el modo SPI normal.
  • Tarjeta SD: Para resolver la falta de pines, se ideó una forma de conectar la RAM y la tarjeta SD a los mismos pines.

Historia del software

  • Emulador: Se reutilizó un emulador MIPS existente. Los 32 KB de flash se dividieron entre el bootloader y el código principal.
  • Bootloader: Se desarrolló un bootloader con soporte para actualizar el firmware desde la tarjeta SD.

Rendimiento

  • Overclock: El STM32G031 está especificado para 64 MHz, pero puede overclockearse hasta 150 MHz. A 148 MHz, la CPU MIPS emulada muestra un rendimiento equivalente a aproximadamente un MIPS R3000 de 1.65 MHz.

Ensamblaje

  • Ensamblaje inicial: Se soldaron en orden el socket de la tarjeta SD, los capacitores, las resistencias, el microcontrolador y el chip USB a serial.
  • Segundo ensamblaje: Después de programar el bootloader en el microcontrolador, se soldó el chip de RAM.

Descarga y uso

  • Archivos: Todos los archivos necesarios están incluidos en el paquete de descarga. Se debe grabar la imagen de la tarjeta SD y copiar el firmware a la tarjeta SD para que el bootloader lo detecte en el primer arranque.
  • Uso: El dispositivo arranca con un prompt de shell y además puede ejecutar bash. Se recomienda usar un archivo de swap para evitar la falta de RAM.

1 comentarios

 
GN⁺ 2025-04-06
Comentarios de Hacker News
  • Después de pensar cómo combinar los tres pines de SDIO con pines que pudieran reutilizarse, resultó que el nCS de la RAM podía usarse como el CLK de la tarjeta SD, el CLK de la RAM como el CMD de la tarjeta SD, y el MOSI de la RAM como el DAT de la tarjeta SD
  • Da pena que se use un chip aparte para la interfaz con USB. USB es un protocolo complejo y, salvo por algo básico como V-USB, requiere hardware especializado y una pila de software dedicada. En cambio, SPI es muy simple y puede funcionar incluso con hardware mínimo
  • Se extraña la época en que las computadoras de escritorio y laptops tenían puertos serie y paralelo expuestos. Habría sido bueno usar UART, I2C y SPI en lugar de USB, y para periféricos con muchos datos, enlaces Ethernet IEEE 802.3
  • Este artículo fue muy informativo y entretenido
  • Sería bueno mencionar que se requiere un grosor de placa de 0.8 mm. Esto es para que el "conector de borde USB-C" encaje en el puerto
  • Da la impresión de que, si el requisito de 8 pines hubiera sido un poco más flexible, el proyecto habría sido más simple. Con unos cuantos pines más, la complejidad se habría reducido bastante
  • Casi son dos chips. Uno de ellos es un IC USB a serie. Si no se cuenta la tarjeta SD, el número total de pines es muy bajo
  • Este proyecto es muy genial, pero entra en contradicción con el objetivo de crear un nuevo kit de computadora para principiantes. Para un principiante, SOIC8 y SOIC28 no son tan distintos, y un chip más grande puede construir una computadora más útil
  • Uno se imagina que podría usarse para una infraestructura IoT serverless. Si el proveedor de PCB diera solo energía y Ethernet, se podría acceder por SSH. Cuando el trabajo terminara, el metal/PCB podría reciclarse
  • También podría hacerse con RISC-V. Pienso en crear una empresa sencilla para rootear teléfonos viejos con IA y darles Internet y energía
  • Dan ganas de omitir la placa y hacerlo como una escultura de circuito
  • Por razones personales, le tengo alergia a RISC-V
  • También sería simpático usar un chip flash SPI de 8 pines para almacenamiento en lugar de una tarjeta SD