PIC32MX HARMONY(16)
更新日:2022年5月7日

PIC32 PRO.SYSTEM構想STEP1
今回より新システム「PIC32 PRO.SYSTEM」の開発について記します。さてPIC32 PRO.SYSTEMとは何ぞや。ということで簡単にポイントを記します。
1)画面サイズ640x480ドットのVGA出力
2)PIC32MXbox-WIDEのソフトにも対応
3)バックカラーを4色の内から1色を選択
の大きく三つです。画面画サイズが以前より大きくなりますので、640x480ドットの描画について私の能力ではPIC32MXでの実現は困難と考えています。よって新システムは次のPICマイコンに引き継がれることになるのですが、その前にPIC32MXでもゲームが能な速度を実現出来るものとして一旦皆さんに公開することにしました。まずは上記ポイントの2),3)を皆さんにお見せするということです。下図がそれの開発中画面です。PIC32MXbox-WIDEのソフトの一部を改造しています。思ったより簡単に出来ました。
過去の記事も参考にして下さい。
PIC32MX HARMONYはこちらへ
(PLANET PILOT 2022 WIDE開発中画面)
前回、WIDEを発表させて頂いた時に横640ドットの表示がうまくいったので、縦480ドットへの拡張もうまくいくだろうと思っておりました。私のシステムの場合、色の種類は16色ですので、1バイトで2ドット分の情報を持っています。640x240ドットではCPLDに接続したSRAMは1Mbitで足りていたのですが、新システムの場合 640x480=307200⇒307200÷2=153600バイトとなり2MbitのSRAMが必要になります。
(640x480ドットのVGA出力ブロック図)
さてここから2MbitSRAM探しが始まるのですが、Mouserであっさり見つかりました。半導体不足の今、とてもありがたいことです。物はUSAから発送されたみたいです。
(CYPRESS製2Mbit SRAM)
2MbitのSRAMはこれ以外にも見つかると思いますが、ハイスピード10ns品を購入のポイントにしました。電源電圧は3.3Vが必須です。
(SRAMのピン配置)
(2Mbit SRAM着弾)
単価はそれほど高くないのですが、予算の関係上2個の購入としました。
(44pin SOP変換基板)
まずはバラックで実験したいので変換基板を事前に購入しておきます。今回のSRAMにピッタリのがありました。
(変換基板にSRAM取り付け完了)
SOPで端子ピッチがそれほど狭くないのではんだ付けは簡単です。
(CPLD_SRAM_VGA_電源回路)
以前の回路と比べると基本的にはSRAMへの配線が異なっているだけです。今回制御を追加していますので、その分が追加されています。この回路は現在基板発注を掛けていますので、次回には公開出来ると思います。
(CPLDの内部構成)
SRAMの容量がアップしたので、アドレス制御のモジュールを改造しています。更にバックカラーの制御とWIDE切り換えの改造も含めて合計四つのモジュールを改造しました。
(CPLD内部のロジック間配線)
合計7種類のモジュールで構成しています。今まで更新分しか公開していなかったので、今回まとめてVHDLソースを公開いたします。モジュールだけですので、内部配線は上図を参考に皆さん各自で構築をお願いいたします。上図はクリックすると大きく見ることが出来ます。
VGA VHDLのソースはこちら
(CPLDのピンアサイン)
追加のピンのみ新しく割り当てていますので、他の割り当ては過去と全く同じです。
(回路合成完了)
ロジック使用率は82%でした。何回も言ってますが、これくらいの規模の製作にはピッタリのロジック数ですね。最近のFPGAは大きすぎるものが多いので、周辺回路を取り込むサイズの小さいものが欲しくなります。このMAX2のチップが搭載された基板も中国のサイトからは入手出来そうですので、興味ある方はトライして見てください。トラ技のものとは異なりますから基板は各自でアレンジして下さい。
(PIC32 PRO.SYSTEM STEP1の回路図)
PIC32MXbox-WIDEのソフトをまず走らせることをSTEP1としていますので、まず現状の回路を示しています。PIC32MXbox-WIDEからは液晶モジュールでの表示は出来ませんので、その使用しないポートを新しく今回のものに再割り当てしています。
(PIC32MXboxの16色モード)
基本の16色は過去のものと全く同じにしています。液晶モジュールの対応をしなくていいのでVGAのみの色データを示しています。
(バックカラーの4色切り換え)
色番号0の部分のみ4色で切り換え出来るようにしました。今までのバックが宇宙の黒しか表現出来なかったのですが今回から4色となったことで青空や夕焼けを表現出来るようになりました。これでゲームの表現力がアップ出来ると思います。
(CPLD内部のRGB 3bitデータ)
VGAモニタにはRGB各3bitデータで色を表現しています。これくらいのビット数でも多彩な色の表現が出来ます。512色からの16色インデックスカラーという仕様になります。
(新しく追加した制御)
WIDE_SELは640x480か640x240かの切り換えを行います。これはCPLDから配線してスイッチで外部切り換えします。PIC32MXbox-WIDEのソフトはこのモードで動かすことが出来ます。しかしそのままでは面白くないと思いますのでバックカラー対応の改造は必要かと思います。バックカラーはPICのポートから行います。IN_SETは画面下の32ドット分のバックカラーを変化させるか、させないかの切り換えを行います。これもPICマイコンから行います。バックカラーを変更出来るのはいいことですが、黒のままで残したい部分も存在するわけで、私の場合下の32ドット分だったということでこの機能を設けました。まあ私だけのゲーム機なので好きなように作っています。
(まだバラック状態で確認中)
早くも前回製作したPIC32MXbox-WIDEが餌食になっています。
(2Mbit SRAM周りの配線です)
1MbitのSRAMからのコネクタ配線を使用して2MbitSRAMを接続します。アドレス線が1本追加になりますので直接CPLDにつないでいます。WIDE_SELはトグルスイッチで直接切り換えています。
(裏面から見るとこんな感じ)
PLANET PILOT 2022 WIDEをバックカラー対応に改造中です。PICマイコンからIN_SETも制御しています。
(バックカラー2です)
(バックカラー3です)
バックカラーが黒以外になることでゲームがより映えますねえ。ゲームの動作は全く同じですがバックカラーが変わることで進化したゲームになりました。
STEP1は640x480ドット画面への進化途中です。今後も引き続き開発を進めていきます。これ以外のことも平行してやっているのでボチボチになりますがよろしくお付き合い下さい。

「PIC32MX HARMONYの表紙」へ戻る