新品互換用パソコン バッテリー、ACアダプタ、ご安心購入!
ノートpcバッテリーの専門店



人気の検索: ADP-18TB | TPC-BA50| FR463

容量 電圧 製品一覧

スペシャル

自作でゲーム機を作ったエンジニアが製作手順や回路図を公開

エミュレータのようにPC上でゲーム機のシステムを疑似的に再現するのではなく、ゲーム機ごとのシステムをダウンロードしてカスタマイズすることが可能な携帯ゲーム機「Gameslab」をソフトウェアコンサルタントのクレイグ・ビショップ氏が開発しています。Gameslabがどのような構成で設計されているのか、実際にどのように組み立てたのかをビショップ氏のブログで公開されています。

ビショップ氏によると、GameslabはオープンソースのKiCadで設計された、ARMベースプロセッサのソフトウェアプログラマビリティと、FPGAのハードウェアプログラマビリティを組み合わせたSoCのZynq-7000をベースにしたゲームコンソールとのこと。Gameslabの特徴は、各ゲームやアプリのプラットフォームに合わせたシステムをダウンロードすることで、ゲーム機本体の仕様をカスタマイズしてゲームを遊ぶことができるという点です。たとえば、2Dのスクロールシューティングゲームを遊ぶ場合は、ゲームに適した画面上のスプライト描画設定やアニメーションの高速化処理を実装したシステムをダウンロードすることができます。ほかにも、ゲームボーイのソフトを遊ぶのであれば、エミュレータのようにゲームボーイのCPUと周辺機器をソフトウェアで疑似的に再現するのではなく、FPGAにゲームボーイの仕様をダウンロードして、Gameslabにゲームボーイのシステムそのものを搭載することができるそうです。

以下の画像はGameslabの基板です。Gameslabは約360個の部品で構成されています。

GameslabにはMicroUSBから充電するリチウムポリマー電池が搭載されています。バッテリーを管理するICチップであるBQ24250によって、USBからシステム実行中でもシステムに電力を供給することができるとのこと。

以下の画像はGameslabの回路図です。バッテリーの低い側(IBAT)にバッテリー残量ゲージSTC3115が接続されています。なお、記事作成時点で、以下の回路図はテスト前のものであるため「まねしないでください」とビショップ氏は述べています。回路図の一番上には、メインシステムレール用の電流センスアンプがあり、すべてのコンバータに接続されています。

BQ24250のレールはLDOを駆動して、STM32L073のシステム監視プログラム、1.0V/1.5V/1.8V/3.3Vレール用の4つの個別スイッチングレギュレータ、LCDバックライトドライバ、および5V USB昇圧コンバータに電力を供給します。

システム監視プログラムを担うMCUであるSTM32L073は、I2C接続でBQ24250を管理し、各レールの電圧と電流の測定と、各レールのFPGAを立ち上げる役割を果たします。STM32L0シリーズのマイクロコントローラは低電力であるため、Gameslabのようなアプリケーションに最適であるとビショップ氏は述べています。

Zynq FPGAのサブシステムには、512MBのDDR3 DRAMを備えたZynqパーツが含まれています。DDR3 RAMは最大533MHzで動作し、データラインあたり最大1066Mbit/sのスループットを実現します。ここでは、合計2132MB/sの帯域幅に16本のデータラインが使用されています。なお、これは実際の帯域幅ではなく、あらゆる負荷の下で最適とされる、80~90%ほどの効率となる帯域幅となっています。

Zynqは、32MBのSPIフラッシュであるS25FL256Sから起動します。ZynqはI2CおよびUARTによってSTM32L073のシステム監視プログラムにも接続されているため、U-bootおよびLinuxコンソールをUSBからダンプできます。

Gameslabの液晶ディスプレイ(LCD)は、5インチ(800×480)のTFT液晶で、その上にマルチタッチパネルが搭載されています。カラーは8bit/チャンネルのRGBが24bit、垂直同期ライン、水平同期ラインがあります。LCDラインは、3.3V LVCMOSのFPGA I/Oポートから直接駆動されます。バックライトは、LED全体を駆動するのに高い電圧を生成するドライバーを必要とするため、複雑な構成になっているとのこと。マルチタッチインターフェイスは、I2C接続でZynqのARM Cortex-A9サブシステムに接続されています。

Gameslabには、右側に4つの色付きボタン、左側に4つの灰色の方向ボタン、左右のショルダーボタン、および2つのスティックがあります。Gameslabのサウンドシステムは、ヘッドホンアンプを内蔵したステレオコーデックと、2つのスピーカーを駆動するクラスDアンプが搭載されています。I2S接続でコーデックに出力する前に、派手なサウンドエフェクトやミキシングをFPGA側で行います。

Gameslabをプリント基板から設計する作業は「忍耐力のある試みだった」とビショップ氏は語っています。中でも、プリント基板に正確に部品を固定することは、非常に重要な工程とのこと。ビショップ氏は、2つのL字ブラケットとテープを使って、プリント基板をまったく動かないように固定しています。

基板の上にメタルマスクを置き、注射器のようなものからメタルマスクにはんだペーストを載せているとのこと。ビショップ氏は、いらなくなったカードを使ってはんだペーストを塗っているそうです。