1 ポイント 投稿者 GN⁺ 2025-04-06 | 1件のコメント | WhatsAppで共有

最小コンピュータ

  • 初期の発想: かつてはキットを注文して自宅でコンピュータを組み立てることができた。現代のコンピュータは複雑なチップで構成され、多くの電力を必要とする。しかし、現代のコンピュータを自宅で簡単に組み立てられるキットにできるかどうかの実験を始めた。
  • 目標: 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件のコメント

 
GN⁺ 2025-04-06
Hacker Newsのコメント
  • SDIOの3本のピンと組み合わせられるピンについて考えた結果、RAMのnCSをSDカードのCLKに、RAMのCLKをSDカードのCMDに、RAMのMOSIをSDカードのDATに使える
  • USBとのインターフェースのために別のチップを使っているのが少し残念。USBは複雑なプロトコルで、基本的なV-USBを除けば専用ハードウェアとソフトウェアスタックが必要になる。一方、SPIは非常に単純で、最小限のハードウェアでも実現できる
  • 昔のデスクトップやラップトップに、露出したシリアルポートやパラレルポートがあった時代が懐かしい。USBの代わりにUART、I2C、SPIを使い、データ量の多い周辺機器にはIEEE 802.3 Ethernetリンクを使えていたらよかったのにと思う
  • この記事はとても有益で面白かった
  • 基板の厚さ(0.8mm)が必要だという点に触れておくとよいだろう。これは「USB-Cエッジコネクタ」がプラグに合うようにするためだ
  • 8ピンという要件にもう少し柔軟性があれば、プロジェクトはもっと簡単になっていたのではないかと思う。あと数本ピンがあれば複雑さは大きく減っていただろう
  • ほとんど2つのチップで構成されている。そのうち1つはUSB-シリアルICだ。SDカードを含めなければ総ピン数は非常に少ない
  • このプロジェクトはとてもクールだが、初心者向けの新しいコンピューターキットを作るという目標とは矛盾している。初心者にとってはSOIC8もSOIC28も大差なく、より大きなチップのほうがより実用的なコンピューターを作れる
  • サーバーレスIoTインフラに使えるのではないかと想像する。PCBプロバイダーが電力とEthernetだけ提供してくれれば、SSHで接続できるはずだ。作業が終わったら金属やPCBをリサイクルできるだろう
  • RISC-Vでも可能だろう。シンプルな会社を作って、古い携帯電話をAIでルート化し、インターネットと電力を提供することを考える
  • 基板を省いて、回路の塊として作りたくなる衝動がある
  • 個人的な理由でRISC-Vにはアレルギーがある
  • SDカードの代わりに、保存用として8ピンのSPIフラッシュチップを使うのもかわいらしいだろう