« DC72V AC/DCコンバーター電源(リニアアンプ用) | メイン | PICでオシロスコープ »

2021年8月 1日 (日)

LCD SPC-S95417-AAAをPICでドライブ

SDRのトランシーバーが実用レベルになりましたので、現在は付いていない、バンドスコープの自作にトライしようと考えておりますが、それを実現する為には、デジタルオシロスコープを製作し、記録されたデータをFFT処理して、その結果をLCD上に表示する必要があります。

そこで、まず、この表示用LCDを入手し、そのLCD上に自由に描画できる必要がありますが、以前、アンテナアナライザに採用した、320x240のLCDはそのノウハウを得とくしているものの、値段が1900円くらいまで上昇し、かつ40pinのフラットケーブル用コネクタとこれを半田付けする基板を必要とします。コネクタは通販で入手できますが、これを実装する基板はカスタムとなり、新作するしか有りません。 1回、かつ1台だけの基板を作る訳にもいかず、このLCDはあきらめて、aitendoで扱っている基板付きの中華LCDを使う事にしますが、このLCDに対しては今までのノウハウは通じませんので、まずは、使いこなす事から始めます。

選択したLCDは★2.4インチ★TFT LCD with 基板 [LCD9325D8A]と言う品番で、1050円(税抜き)で売られていました。 動作チェックはされていましたが、PICでは無いので、ソフトは一から作る必要があります。 そこで、このLCD部分の仕様を確認しようと、リンク先をクリックすると、エラー。

インターネットで色々調べると、このLCDはSPC-S95417-AAAという品番の中華製で、携帯ゲーム機に使われていたもので有る事がわかりました。 pdf版の仕様書を入手し、ドライブIC名を探すと、ILI9325というICらしい。 そこで、このILI9325の仕様書を探し出し、ソフト製作を開始する事にしました。

Lcdtestschema0_3

上がLCD実験用のテスト回路図です。 バンドスコープに使用するPICはdsPIC33CHかPIC32MZレベルの32bit品になりますが、とりあえず、16bitのPIC24FV32KA302で、制御の仕方を勉強する事にします。

aitendoの製品は、LCDと基板は半田付けされておらず37pinのFFCを基板に自分で半田付けする必要があります。 フラックスを少々塗ったFFCを電極に張り付け、セロテープでずれないように固定してから、60Wの半田こてで半田を流しこんで、さっと半田切りを行って、目視でOKの判断をした後、通電しても、バック照明用のLEDは点灯しますが、LCD面にはなにも表示されません。 10倍の拡大鏡を使い、37pin全部の半田付け状況を確認したところ、極細の半田くずでショートしている端子が2か所。これを解消して、やっとLCD上になにか表示されるようになりましたが、これから先が悪戦苦闘の連続でした。

 

このLCDのイニシャライズプログラムをインターネット上で探し出し、とりあえず、それをそのままコピペしたのですが、縦横のスキャンやカラーが思ったように表示されません。 やむなく、ILI9325の英文仕様書の関係しそうな項目をGoogle翻訳で訳し、何度も読み直して、やっとわかった事は、このICの標準姿勢は縦長であるという事でした。 私はこれをオシロやスペアナにして使うつもりなので、横長が標準です。 それが判ると、横長に置いて、左から右へ、上から下へスキャンできるようになりましたが、カラー設定が仕様書に記載されたBGRの設定と逆になってしまいました。 結局、この設定が反転した理由が判らないままですが、動作的に異常はないので、このまま行く事にしました。

グーグル翻訳の場合、pdfの文字列の改行の部分で、文章終了と判断する為、日本語の並びに不自然さがありますが、せっかく作った翻訳仕様書ですので、公開して置きます。

ILI9325の和文翻訳仕様書(抜粋版) ili9325.docxをダウンロード

Lcdtest0

左の写真が完成したテストプログラムによるLCD表示のサンプルです。

表示している、文字は、過去PIC用に作成した自作のフォントです。 黄色のフォントは今回、このLCDに合わせて新作しましたが、コードジェネレーターのバグなのかわかりませんが、スペースのみゴミが表示されます。 その内、改善しようと思います。 写真では、LEDシリーズ抵抗として22Ωが見えていますが、この裏側に10Ωの抵抗が付いており、トータル6.8Ωの抵抗となっています。

LCD表示の速さは、使っているPICのクロックが32MHzの為、ILI9325のspecぎりぎりになっていません。 もっと早いクロックでもディレーを挿入する事なく動作するかも知れませんが、それは、実際にバンドスコープを作る時に確認する事にします。

 

黄色の文字のスペースにゴミがある原因を調べていましたら、X方向のbit数が8を超えるフォントの構造に誤りが有る事が判りました。 この構造の誤りがある状態で、LCD上に正常に文字を表示できる、表示プログラムも誤っている訳で、過去作成したすべてのプログラムが間違っている事になります。

今回、フォントコードジェネレーターを作り替え、X方向のbit数に関係なく、正常に構成出来るようにしましたので、8bit以上のフォントファイルも作り替えました。 表示プログラムもフォントのサイズごとに作っていたものを、ひとつの関数で全部処理出来るように変更しました。

テストプログラム lcds95417aaa_0.cをダウンロード

関連フォント Font5_6.hをダウンロード   Font9.hをダウンロード   Font12.hをダウンロード

RAMが2Kしかなかったので、8KのPICに変更し、直線や斜め線を描画する、アルゴリズムも改善し、LCDのイニシャライズも修正したプログラムを「PICでオシロスコープ2」 で使っています。

PICでオシロスコープへ続く

 

INDEXに戻る