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
Comentários do Hacker News
nCSda RAM pode ser usado como oCLKdo cartão SD, oCLKda RAM como oCMDdo cartão SD e oMOSIda RAM como oDATdo cartão SD