鈴商dotLCD ~中間まとめ後半

鈴商ドットマトリクスLCD中間まとめ

 前半の続きです。

CTRL端子

 CTRL端子に直結しているQ10はとりあえずFETの記号をつかいましたが、正体にあまり自信がありません。鈴商付属の回路図ではトランジスタの回路図が描いてありました。3月19日の記事の時点では、この素子の入力インピーダンスが高いかどうか判断できなかったので、制御テスト基板Ver.1ではシリアルに1kの抵抗を挿入しました。




 PICで5Vを出力したときの抵抗の両端の電圧をテスターで測ってみたところ、ほぼ0Vだったのでこのトランジスタの入力インピーダンスは十分高いようです。よって制御テスト基板Ver.2ではマイコンのポート直結としました。

 肝心のCTRL端子の役割ですが、DC/DCコンバータのスイッチです。CTRL端子に5Vを入力するとDC/DCコンバータがONとなりVEEを生成します。CTRL端子に0Vを入力するとDC/DCコンバータがOFFとなり液晶表示が消えます。DC/DCコンバータをOFFにすると消費電力を小さく抑えることが出来ます。テスト基板ではあまり考えていませんでしたが、マイコンから制御することを考えると、マイコンの初期化中はポートがハイインピーダンスとなり信号が不定になるので、信号がアクティブハイであることを考えるとプルダウンしておくのが定石でしょうか。

SHL端子

 SHL端子はSHL端子という名前がついていますが、MSM5299CやMSM5298のSHL端子とはあまり関係がなさそうです。モジュール上のSHL端子は、液晶モジュールの制御IC用GNDというほうがしっくりときます。回路図上ではモジュールのGND端子と区別するためにこれをGND-2としました。液晶モジュール上の消費電流のほとんどはQ10を通りGNDへ抜けるDC/DCコンバータ用のもので、GND-2へ流れ込む電流は大きくないので、おそらくPICならポートをSHL端子に直結してドライブできるでしょう。
 今回の私の回路ではGNDに直結して済ませました。

DISP OFF端子

 DISP OFF端子は負論理で表示をOFFにする端子です。すなわち信号Lで表示が消え、信号Hで表示がなされます。マイコンのI/Oを節約する場合はプルアップ、逆にマイコンから制御を行う場合はプルダウンしておくほうがよいかもしれません。
 今回のテスト基板では特に考慮していませんが、液晶の保護の観点からはDISP OFF制御をするべきなのかもしれません。

メインの制御端子

 今まで触れた端子はマイコンのI/O節約を考える場合は5VまたはGNDに固定してしまってもかまわないものでしたが、LOAD,IO0,CP,DFの4本の制御端子とD0,D1,D2,D3の4本のデータバスは必ず制御が必要になります。

LOAD信号(CL1)

シフトレジスタに格納された表示データをラッチするための入力端子でロードパルスの立ち下がりシフトレジスタに格納された表示データをラッチします。
 LOAD信号は各ラインのはじめにおくる正のパルスです。LOAD信号線はセグメントドライバMSM5299CのLOAD端子に入力されるだけでなく、コモンドライバMSM5298のCP端子への入力も兼ねています。
 また、これは私の予想ですがセグメントドライバMSM5299C内部のEL,ER端子を用いたカスケード接続時のF/F制御で、データの区切りにLOAD端子の入力を利用しているようです。
 この信号は俗にCL1と呼ばれるようです。

IO0信号(FRAME)

 IO0信号は各フレームのはじめおくる正のパルスです。IO0端子はラインドライバMSM5298のシフトレジスタへの入力です。MSM5298のシフトレジスタはMSM5298のCP端子に入力されるLOAD信号の立ち上がりによってシフトされます。(コモンドライバMSM5298のCP端子に入力される信号はモジュールのCP端子に入力されるCP信号ではないことに注意。)
 コモンドライバのシフトレジスタのクロックの極性は、セグメントドライバMSM5299CのLOAD端子の入力極性と逆である立ち上がりエッジでシフトです。よって、IO0信号は1ライン目のLOAD信号の立ち上がりより先にHighとし、2ライン目のLOAD信号の立ち上がりより先にLowとします。
 この信号は俗にFRAMEと呼ばれるようです。

DF信号(M)

 前述した駆動用交流同期信号です。各フレームごとに信号を反転させます。知ってさえいれば特に難しいことはありません。
 この信号は俗にMと呼ばれるようです。

D0,D1,D2,D3

 セグメントドライバMSM5299C内部のシフトレジスタの4bit幅のデータ入力バスです。CP信号の立ち下がりエッジでロード/シフトされます。このモジュールのようにEL/ER端子を使ってカスケード接続されている場合は続けてデータをおくることが出来ます。

CP信号(CL2)

 前述したとおりセグメントドライバMSM5299C内部のシフトレジスタのデータをシフトするためのクロック信号です。立ち下がりエッジでデータをシフトします。CP信号はコモンドライバのCP端子には入力されないことに注意が必要です。
 この信号は俗にCL2と呼ばれているようです。

液晶の保護

 この液晶モジュール上で使われているトランジスタは(見た目からわかる限り)3種類のみで、Q10のタイプはQ10ひとつのみです。それ以外のトランジスタはコントラスト調整部にみられた2種類のみなので、(コントラスト調整部の回路があっていると仮定すると)いままでの部分で用途不明のQ2,Q3のトランジスタはそれぞれPNP,NPNであると特定できます。
 Q2,Q3のトランジスタの役割に関してはあまり自信がありませんが、おそらく液晶保護のためにVEE出力につけられた電解コンデンサから電荷を引き抜くためのものではないかと思います。

 DC/DCコンバータをOFFにするためにCTRL端子にLowを入力するとQ10がOFFになります。すると、Q3のベースの電位が上がりQ3がONします。Q3がONするとQ2のベースが390kを通じて引っ張られてQ2がONします。Q2がONすると120kを通じてVEE出力につながった33μFの電解コンデンサに蓄えられた電荷が放電されます。とおもいます。
 DC/DCコントロールICであるBA9700AFには10番端子としてPOWER SWがあります。CTRL端子の役割がDC/DCのON/OFFだけならば、わざわざQ10のFETを追加しなくても、この端子を利用すれば足りてしまいます。そこをあえて外部スイッチを設けているということは、液晶の電源OFF時にはVEEの電荷を引き抜かなければならないということを暗に示しているのではないかとも読めます。

ソースコード解説

 前述したとおり、PIC16Fシリーズ単体ではRAMが圧倒的に足りないため、今回のプログラムでは1ラインだけデータをRAM上に保持して残りの行はすべて1ライン目と同じデータを書き込むようにしました。よって、がんばっても表示されるのは縦じまだけです。
 タクトスイッチはマイコンから液晶のコントラストを調整するテストのためにつけました。タクトスイッチを押すと液晶のコントラストが変わり、その値をPIC内部のEEPROMに保存します。その状態で電源を切ると、次回起動時に保存したコントラストで表示がスタートします。

鈴商dotLCD ~中間まとめ前半

鈴商ドットマトリクスLCD中間まとめ

 鈴商で売っている\1300のドットマトリクス液晶モジュールに関してしばらくいじらなくなると思うので、わかったことをまとめておきます。ただし、ここにまとめるのは五味斎が個人的に調べたものであり、中途半端な情報もあるので参考にする場合は自分で裏づけを取ってください。

 これまでの記事で既出ですが、回路図と配線図を挙げておきます。






液晶駆動の基礎知識

 液晶駆動の本当に基礎知識です。といいつつないようにあまり自信がないのでさらっと書きます。

 液晶は直流電圧を印加し続けると破壊するという性質があるので、交流電圧を印加してドライブします。交流電圧といっても厳密な正弦波ではなく、多くの場合2値の矩形波です。また、液晶のドライブにはロジックの電圧よりも高い電圧を必要とする場合がありますが、その場合は負電圧が用意されることが多いようです。今回のモジュールでも負電圧を利用しています。

 液晶は単純に電圧をかけたドットが点灯するというものですが、今回のように384x192もドットがあるとすべてから端子を取り出すわけには行きません。そこで、LED等でおなじみのドットマトクス制御を行うことが多いです。このとき同時に表示できる横(であるかどうかは見る向きによりますが)の行をラインとよび、ラインの繰り返しによる画面ひとつ分をフレームと呼ぶようです。

 液晶ドライブ用の交流の周期はこのフレームと同期させ、1フレームごとに信号を反転させるのが一般的なようです。このモジュールではDF信号が対応します。

モジュール基板に関して

 鈴商の液晶には説明書としてモジュール基板の回路図が付属しますが、残念ながらところどころ間違っています。このため各信号線の意味、特にコントラスト調整用の信号線の部分にどのような信号を入れればよいのか付属の回路図から読み取ることは出来ません。
 そこで、実際の基板をテスターの導通チェッカを利用して回路図に起こしてみました。




 チップ抵抗は表面に書いてあるので抵抗値がわかりますが、コンデンサ(と思われる部品)の値は実装されたままではわかりません。また、トランジスタのような部品は普通のバイポーラトランジスタなのか抵抗を内蔵したいわゆるデジトラなのかFETなのか、それともまったく同じ部品なのか、仮にトランジスタとしてもNPNなのかPNPなのか、どの端子がECBなのかもテスターだけでは特定できなかったので、上の回路図は想像で補っている部分もあります。

 ICの番号はモジュール上にプリントしてあるものに沿ってつけましたが、トランジスタの番号はモジュール上にプリントしてあったのがQ10のみであったので、それ以外は適当に振りました。以降の文章では私の割り振った番号に沿って話を進めます。

モジュール概要

 この液晶モジュールは、主に以下の3つの要素によって構成されています。
 ●液晶駆動用負電圧生成部
 ●シフトレジスタ/ドライバ
 ●ELバックライト

 モジュール内に負電圧電源を持っているので、モジュール自体への電源供給は5V単電源で、入力端子もすべて5Vロジックレベルです。一方、液晶のドライバはほとんどシフトレジスタにレベルシフト回路がついただけのものなので、駆動のためのタイミング生成や表示データの保持用メモリはコントローラ側で用意してやる必要があります。
 ELバックライトについては、今回は利用していません。ELバックライトといってもELの2つの端子が剥き出しになっているだけでEL用のインバータなどはついていません。その為ELバックライトを点灯させるためには、外部にインバータを用意してやる必要があります。ELの端子は、モジュール上のほかの回路からは完全に分離しています。今回のまとめでは、ELバックライトについては触れません。ELバックライトが必要な場合は参考文献(2)ELシート用インバータ装置が参考になるかもしれません。

負電圧電源

 液晶を駆動するためには、負電圧を必要とすることがあります。この液晶モジュールは、駆動用の負電圧を5V単電源から生成するDC/DCコンバータを内蔵しています。DC/DCコンバータの制御ICはBA9700AFです。BA9700AFのデータシートをブリーフケースの鈴商ドットマトリクス液晶フォルダへ入れておきます。抵抗などのパラメータは異なりますが、モジュール上の負電圧電源はデータシート中のFig.3 インバーティングコンバータと同じ構成になっています。




コントラスト調整部

 おそらく鈴商LCDを買って来たとき一番処理に悩むのがVee1,Vee2,Vee3の端子の処理でしょう。結論から言うと、マイコンのI/O節約を優先するならこれら3つの端子はすべてVccに直結でよいはずです。少し詳しく見てみましょう。
 液晶のコントラストは、液晶にかける電圧によって変わってきます。よって、負電圧電源が生成するVEEの大きさによってコントラストが変わってきます。DC/DCコンバータ制御ICのBA9700AFは出力電圧を内部で生成したVrefで分圧したものでフィードバックをかけることによって出力電圧を安定化しています。よって、Vrefと出力電圧の分圧抵抗の比を変化させることによってコントラストを変更することが出来ます。Vee1,Vee2,Vee3の3つの端子は、この分圧比をマイコンから変更するためにあります。




 左の回路図は最初の回路図からコントラスト調整部だけを抜き出したもの。右はコントラスト調整の概念を示したものです。VEEとVrefを分圧している抵抗のうち1.3k,2.7k,4.3kのものは並列にQ4,Q5,Q6のトランジスタが入っていますが、このトランジスタがONになると抵抗の両端を短絡するのと同じことになります。
 ただし、これらのトランジスタはそのままでは0V-5VロジックではスイッチできないのでレベルシフトのためにQ7,Q8,Q9が入っています。Q7,Q8,Q9のトランジスタにはベース抵抗が入っているので、出力インピーダンスの低いマイコンの0V-5V信号を直結できます。
 なお、大雑把なコントラストはモジュール基板上唯一の半固定抵抗で調節します。

鈴商dotLCD ~さしあたって回路図


 先日半田付けをした回路の回路図を描いたので上げておきます。
 プログラムはまだです。

鈴商dotLCD ~そうそうにあきらめ

 昨日一昨日と試していた鈴商のドットマトリクス液晶テスト基盤ですけど、いろいろと使いにくい基盤なのでこの基板はとりあえずお蔵入りさせて新しいテスト基盤を作ろうと思います。CPLDとかないからまともPICで、PIC16F873が手元にあったのでこれでいきましょう。とりあえず配線図だけ描いたので以下に。




 って、配線図だけ出されてもいかんともしがたいのはわかってますが。回路図は多分そのうち。
 ユニバーサル基板上で配線が楽になるようにLCDモジュール側の配線をいくつかクロスさせました。






 それはともかく、Writer509がPIC18Fに対応するようです。現在の私の開発環境は秋月ライタVer.4なので、正式に18Fに対応したらWriter509に乗り換えようと思います。
 でも、ICD2 Cloneも作りたいんだよなぁ~

鈴商dotLCD ~案の定動かない


 昨日は、存在していなかったPIC側のテスト基板の回路図を描いたので上げておきます。
 さて、肝心の回路ですが予想していたとおり、素直に動いてくれません。
 しかも、LCDの挙動がわからないから動いていないというよりも、PICのプログラム側が間違ってるようです。さし当たって今日わかったことは、まっとうな表示をしたければpic16f84aを10MHzで動かすのではちょっとばかり遅すぎて力不足だということです。
 まぁ、RAMも処理速度も圧倒的にたりないことはわかっていましたが・・・まともに使うためには、SRAMとPLDでしょうかね。
FC2カウンター
カテゴリ
ユーザータグ

LTspiceAkaiKKRmachikaneyamaScilabKKRPSoCOPアンプCPA強磁性PICモンテカルロ解析常微分方程式odeトランジスタecalj状態密度DOSインターフェース定電流スイッチング回路PDS5022半導体シェルスクリプト乱数レベルシフトHP6632A温度解析分散関係I2Cトランジスタ技術R6452A可変抵抗ブレッドボードセミナーバンドギャップ数値積分確率論反強磁性偏微分方程式バンド構造絶縁熱設計非線形方程式ソルバフォトカプラシュミットトリガLEDLM358カオスISO-I2C三端子レギュレータGW近似A/Dコンバータカレントミラーアナログスイッチ数値微分マフィンティン半径TL431発振回路サーボPC817CUSB直流動作点解析74HC4053補間FFTBSch開発環境パラメトリック解析2ちゃんねるチョッパアンプ量子力学bzqlty電子負荷イジング模型LDA標準ロジックアセンブラ基本並進ベクトルブラべ格子単振り子熱伝導位相図TLP621キュリー温度繰り返し状態方程式MaximaVESTAスイッチト・キャパシタ相対論FETランダムウォークスピン軌道相互作用SMP六方最密充填構造抵抗不規則合金ewidthスレーターポーリング曲線GGAラプラス方程式cygwingfortranQSGW失敗談コバルト条件分岐TLP521テスタLM555Writer509TLP552格子比熱マントルデータロガー自動計測詰め回路ガイガー管ダイヤモンドQNAPMCUFXA-7020ZR過渡解析三角波UPSNE555固有値問題熱力学ブラウン運動フェルミ面awk起電力第一原理計算OpenMPfsolveubuntu最大値xcrysden最小値最適化仮想結晶近似VCA差し込みグラフスーパーセル井戸型ポテンシャル平均場近似シュレディンガー方程式FSMフラクタルOPA2277固定スピンモーメント2SC1815全エネルギー合金multiplotgnuplotc/aTeX結晶磁気異方性interp1ウィグナーザイツ胞初期値マンデルブロ集合疎行列面心立方構造fcc不純物問題非線型方程式ソルバフィルタL10構造PGA半金属二相共存SICZnOウルツ鉱構造BaO重積分クーロン散乱磁気モーメント電荷密度三次元CIF岩塩構造CapSenseノコギリ波デバイ模型ハーフメタル正規分布フォノンquantumESPRESSOルチル構造スワップ領域リジッドバンド模型edelt縮退キーボード軸ラベルグラフの分割凡例トラックボールPC不規則局所モーメント片対数グラフトランス両対数グラフCK1026MAS830L直流解析Excel円周率パラメータ・モデルヒストグラム日本語最小二乗法等価回路モデルGimp線種シンボルTS-110TS-112PIC16F785LMC662化学反応文字列specx.f入出力ifortマテリアルデザインヒストグラム確率論Realforce等高線ジバニャン方程式P-10Ubuntuナイキスト線図Crank-Nicolson法陰解法熱拡散方程式HiLAPWAACircuit連立一次方程式負帰還安定性境界条件EAGLEMBE関数フィッティング

最新コメント
リンク

にほんブログ村 その他趣味ブログ 電子工作へ