1 pontos por GN⁺ 2025-04-06 | 1 comentários | Compartilhar no WhatsApp

Computador mínimo

  • Ideia inicial: No passado, era possível encomendar kits e montar um computador em casa. Os computadores modernos são compostos por chips complexos e exigem muita energia. Ainda assim, começou-se um experimento para ver se seria possível criar um kit de computador moderno que pudesse ser montado facilmente em casa.
  • Objetivo: Criar um computador capaz de executar Debian Linux, vi, gcc e make. As metas definidas foram 8MB de RAM, CPU de 1 MIPS, cartão SD e USB.

Escolha dos componentes

  • Interface USB: Entre os chips de 8 pinos, quase não há opções com suporte a USB. PL2303GL e a série ATTINYx5 são possibilidades.
  • RAM: Uso de PSRAM SOIC-8. É fácil encontrar 8MB de RAM.
  • Microcontrolador: Várias opções foram consideradas, mas concluiu-se que o STM32G031J6 era o mais adequado. Ele tem 32KB de flash, 8KB de RAM e clock de 64MHz.

Projeto de hardware

  • Console: Os pinos UART não podem ser combinados com outros.
  • RAM: A PSRAM SPI suporta modo QSPI, mas devido à limitação de pinos foi usado o modo SPI comum.
  • Cartão SD: Para resolver a falta de pinos, foi concebida uma forma de ligar a RAM e o cartão SD aos mesmos pinos.

História do software

  • Emulador: Um emulador MIPS já existente foi reutilizado. Os 32KB de flash foram divididos entre o bootloader e o código principal.
  • Bootloader: Foi desenvolvido um bootloader com suporte a atualização de firmware a partir do cartão SD.

Desempenho

  • Overclock: O STM32G031 é especificado para 64MHz, mas pode ser levado em overclock até 150MHz. A 148MHz, a CPU MIPS emulada apresenta desempenho equivalente a cerca de um MIPS R3000 de 1,65MHz.

Montagem

  • Montagem inicial: O soquete do cartão SD, capacitores, resistores, microcontrolador e chip USB-serial foram soldados nessa ordem.
  • Segunda montagem: Depois de programar o bootloader no microcontrolador, o chip de RAM foi soldado.

Download e uso

  • Arquivos: Todos os arquivos necessários estão incluídos no pacote de download. Grave a imagem do cartão SD e copie o firmware para o cartão SD para que o bootloader o reconheça na primeira inicialização.
  • Como usar: O dispositivo inicializa em um prompt de shell, e também é possível executar bash. Para evitar falta de RAM, recomenda-se usar um arquivo de swap.

1 comentários

 
GN⁺ 2025-04-06
Comentários do Hacker News
  • Depois de pensar bastante sobre quais pinos poderiam ser combinados com os três pinos do SDIO, concluiu-se que o nCS da RAM pode ser usado como o CLK do cartão SD, o CLK da RAM como o CMD do cartão SD e o MOSI da RAM como o DAT do cartão SD
  • É uma pena usar um chip separado para fazer a interface com USB. USB é um protocolo complexo e, fora um V-USB básico, exige hardware especializado e uma pilha de software dedicada. Já SPI é muito simples e pode funcionar até com hardware mínimo
  • Dá saudade de quando desktops e laptops tinham portas seriais e paralelas expostas. Fico pensando que teria sido melhor usar UART, I2C e SPI no lugar de USB, e usar links Ethernet IEEE 802.3 para periféricos com muito tráfego de dados
  • Este artigo foi muito informativo e divertido
  • Seria bom mencionar que a espessura da placa precisa ser de 0,8 mm. Isso é necessário para que o "conector de borda USB-C" encaixe corretamente no plugue
  • Acho que, se a exigência de 8 pinos fosse um pouco mais flexível, o projeto teria ficado mais simples. Com mais alguns pinos, a complexidade teria sido muito menor
  • É quase um projeto de dois chips. Um deles é um CI USB-serial. Sem contar o cartão SD, o número total de pinos é bem baixo
  • Este projeto é muito legal, mas contradiz o objetivo de criar um novo kit de computador para iniciantes. Para um iniciante, SOIC8 e SOIC28 não fazem tanta diferença, e um chip maior pode resultar em um computador mais útil
  • Consigo imaginar isso sendo usado em uma infraestrutura IoT serverless. Se o fornecedor de PCB fornecesse apenas energia e Ethernet, já daria para acessar por SSH. Quando o trabalho terminasse, metal/PCB poderia ser reciclado
  • Também daria para fazer com RISC-V. Penso em criar uma empresa simples para fazer root em celulares antigos com IA e fornecer internet e energia
  • Dá vontade de pular a placa e montar isso em pedaços de circuito
  • Por motivos pessoais, tenho alergia a RISC-V
  • Também seria bonitinho usar um chip SPI flash de 8 pinos para armazenamento no lugar de um cartão SD