PIC32MX HARMONY(1)
更新日:2021年8月31日

マジョカランタンのLCD(320x240)をテストする
マジョカアイリスの液晶にそろそろ限界を感じた今日この頃、こちらのマジョカランタンが値下がりしてきたので、ポチっとしてみました。
(マジョカランタン着弾)
とりあえず試しに一個購入。そもそもどんなおもちゃなのかも理解しておりません。
(一応電池を入れて動作確認)
ちゃんと動きますね。ほほう!こんな液晶画面なんですね。期待が膨らみます。それでは間髪入れずに分解しましょう。
(液晶の仕様が書いてあるのが親切)
連続使用時間の短さに驚きつつ、液晶の解像度を確認。まあ予め知ってはいますが。サイズは2.5インチですね。
(マジョカランタンの液晶を摘出)
液晶モジュールは薄型でとてもコンパクトに出来ています。コネクタのピン数がマジョカアイリスと同じ22ピンなのでマジョカアイリスハックで余ったコネクタが使えます。さて本題です。この液晶は320x240ドットなので、総数76800ドットになります。この数を駆動しようとすると今までのPIC24FではRAMが不足します。そこで今回から新たにPIC32MXを投入します。初めての32bitマイコンなので心新たに挑戦してみることにします。
(PIC32MX370F512H)
昨今の半導体不足にもかかわらず、幸いにも秋月さんでPIC32MXのマイコンを購入することが出来ます。変換基板に載っているので超使いやすいと思います。周辺部品も合わせてポチっとしました。
液晶の動作確認も含めて最小限の構成で回路図を書きました。将来的には何かのゲームでもプログラムしたいと思います。さて液晶のピン配置はどうなのか、と思われるでしょう。マジョカアイリスに比べるとはるかに情報は少ないですが、ピン割付のデータがWEBに記載れています。今回はそれを参考にしました。分解された方はご存じだと思いますが、液晶モジュールのフレキの裏面に親切にピン番号の印刷があります。これは挿すコネクタのピン番号とは真逆の番号になっていますので気を付けて下さい。
マジョカランタン ハードウェア解析まとめ
(PIC32MXで液晶動作確認の回路図)
PIC32MX370F512Hはプログラム領域512kB、RAMは128kBもありますので、今回の液晶を動かすのには充分でしょう。さてここからが手間取りました。どうやってソフト開発を行うかということです。まずPIC32にはMCCがありません。というより32ビットマイコンではMCCに代わってHarmonyというモジュールを組み込む必要があります。ネットを検索するとこのHarmonyを組み込む説明をしたサイトがいくつか見つかりますが、どうも要領を得ないのです。何が正解なのか。どういう手順を踏めばHarmonyが正しく組み込めるのか。その答えは本家にありました。次のサイトを読めばHarmonyを正しくインストールすることが出来ます。
MPLAB Harmony V3 Configurator Overview
Harmonyインストール後の使い方は難しくないと思います。ポート設定とクロック設定がメインです。この辺りの解説はWEBを参考にして下さい。後々EEPROMを外付けしますのでI2Cモジュールは組み込みしておきます。さてここから液晶駆動のプログラミングですが、WEBを調べると、どうやらマジョカアイリスと似ていると判断しました。とりえずはそのソースをそのまま使ってみようというところから始めました。ところでPIC32の文法はどうなんだ、ということで色々調べて見るとここでも本家に辿り着きました。
Peripheral Library Overview
ポート駆動の命令とか今までのPICとは異なりますのでご注意下さい。
プログラミングを進めて行くと、今までとても便利に使っていたdelay_msとかdelay_usの命令が使えないことに不自由を感じることになります。これも色々調べて、やっと辿り着きました。簡単にdelayを作れます。
XC32 PIC32MX LED 点滅 delay()関数
いろいろと参考にさせて頂いたWEBページを作成された方々に感謝申し上げます。
(まずはバラックで動作確認)
先にマジョカアイリスの細長液晶で動作させるのに苦労しました。delay関数がまともに動かないとうんともすんともいいませんのでまずはそこからでした。なんとか細長液晶が動いたら、マジョカランタンの液晶に配線を変えて取り付けました。さすがに一発では正常に点灯しません。いろいろ液晶チップの仕様書を眺めながらいくつかのコマンドのデータを調整して無事点灯いたしました。あとはやりたいことをゴリゴリとプログラムを書くだけです。突貫で書いたソースを付けておきますので何かの参考にして下さい。このように点灯します。
(マジョカランタンの液晶が無事点灯)
今は1画面の描画に約100msec掛かります。ゴリゴリのソフトですので、今後はDMA転送を使うなどの改良が必要かもしれません。
(PIC32MXのポート設定)
半分くらいのポートは使っておりません。とりあえず大容量のプログラムエリアとRAMエリア、高速スピードが必要なのでPIC32MXを選択したのです。
(入れ込んだ文字フォント)
フォントは以前作成した「PIC24F JAN 1982」のものを使っています。RAMサイズが大きくなっていますので今回は16色モードを使います。RAMの1バイトが画面上の2ドットに相当します。文字表示はカラーを選べますので、表現力が遥かにアップしました。
(16色モードカラー)
16色あれば華やかなゲームも出来ると思います。RGBのデータをいじればもっと違った色も出せますのでやってみて下さい。
LCD表示テストのプロジェクトファイルはこちらから
ほぼネタ切れしていたマジョカアイリスの液晶からこのマジョカランタンの液晶に乗り換えることでこれからの楽しみがまた増えました。ご期待下さい。マジョカランタンも安くなったのでこれを機に皆さんもマジョカランタン液晶の世界をお楽しみ下さい。ちなみ私は先日またマジョカランタンをポチっとしました。先ほど着弾。

「PIC32MX HARMONYの表紙」へ戻る