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
Comentarios de Hacker News