最小コンピュータ
- 初期の発想: かつてはキットを注文して自宅でコンピュータを組み立てることができた。現代のコンピュータは複雑なチップで構成され、多くの電力を必要とする。しかし、現代のコンピュータを自宅で簡単に組み立てられるキットにできるかどうかの実験を始めた。
- 目標: Debian Linux、vi、gcc、make を実行できるコンピュータを作ること。8MB RAM、1 MIPS CPU、SDカード、USB を目標に設定した。
部品選定
- USBインターフェース: 8ピンチップの中で USB をサポートするチップはほとんどない。PL2303GL と ATTINYx5 シリーズが候補となる。
- RAM: SOIC-8 PSRAM を使用。8MB RAM を容易に入手できる。
- マイクロコントローラ: 複数の選択肢を検討したが、STM32G031J6 が最も適していると判断した。32KB フラッシュ、8KB RAM、64MHz のクロック速度を備える。
ハードウェア設計
- コンソール: UART ピンは他のものと共用できない。
- RAM: SPI PSRAM は QSPI モードをサポートするが、ピン数の制限により通常の SPI モードを使用。
- SDカード: ピン不足の問題を解決するため、RAM と SDカードを同じピンに接続する方法を考案した。
ソフトウェアの話
- エミュレータ: 既存の MIPS エミュレータを再利用した。32KB フラッシュをブートローダとメインコードに分割。
- ブートローダ: SDカードからのファームウェア更新をサポートするブートローダを開発した。
性能
- オーバークロック: STM32G031 は 64MHz 指定だが、150MHz までオーバークロック可能。148MHz では、エミュレートされた MIPS CPU は約 1.65MHz の MIPS R3000 と同等の性能を示した。
組み立て
- 初期組み立て: SDカードソケット、コンデンサ、抵抗、マイクロコントローラ、USB-シリアルチップを順にハンダ付けする。
- 2回目の組み立て: ブートローダをマイクロコントローラに書き込んだ後、RAM チップをハンダ付けする。
ダウンロードと使用
- ファイル: 必要なファイルはすべてダウンロードパッケージに含まれている。SDカードイメージを書き込み、ファームウェアを SDカードにコピーすると、ブートローダが初回起動時にそれを認識する。
- 使い方: デバイスはシェルプロンプトで起動し、追加で bash を実行できる。RAM 不足を防ぐため、スワップファイルの使用が推奨される。
1件のコメント
Hacker Newsのコメント