SSブログ

キャラクタLCDの シリアルインタフェース化 [電子工作]

キャラクタLCDのシリアルインタフェース化

LCD8812Kのシリアル化を真似して、以前購入していたAitendoのキャラクタLCD DV16284をシリアルインタフェース化した。
10DV16284P1040269.jpg20DV16284P1040270.jpg

電源以外の信号は、データ、クロック、ラッチの3本。LCD8812KのHC595によるシリアル化と同じ方法をとった。
25HC595spi99.jpg

改造方法
・DV16284のプラスチックハウジングをニッパーで適度に切り取る。
・ユニバーサル基板を40mmx23mmにカットする。(LCD裏に貼り付け出来るサイズ)
・SOPタイプのHC595をシール基板に半田付けしユニバーサル基板に両面テープで取り付ける
・1mm_14Pのフラットケーブルコネクタを基板に取り付ける。この時、端子がランドに当たるので、 絶縁シートを挟んでコネクタを基板に取り付ける
・LCDのコントラスト端子Voの最適値電圧を事前に求めて、固定抵抗値を決定。可変抵抗のままでも良い。
・回路図に従い結線。
・部品とFCケーブルが当たるので念のためケーブルをカプトンテープで補強

40HC595P1040275.jpg30HC595P1040273.jpg

HC595のQBをRS信号としたので、HC595の遅延時間だけ、LCDのE信号を遅らせるつもりで、1素子ゲートHC1G32を2段使った。しかしこのゲートによる遅れは20ns程度でほとんど遅延対策にならなかった。規格外で動作したのか、このLCDにマージンがあるのか?。E信号直結でも使えるかもしれないが試していない。

50DSC_2082.JPG60DSC_2081.JPG

バックライト無しでも十分見える。
SPI規格ではないが、HC595によるシリアル化したLCDライブラリを公開。
lcd_SPIlib.c
lcd_SPIlib.h

LCD8812Ktest.zipに含まれる


----------------------------------

LCD8812K4-01 解析 [LCD]

LCD8812K4-01 解析
Aitendoから安価な液晶モジュールLCD8812K4-01を購入した。(現在、在庫切れ)
10LCD8812K.JPG

コントローラはHT1621なので、セグメントの位置関係を解析した。7セグLCDとして使えそうなので、追加購入をしようとしたが、現在は在庫切れとなっており残念でした。解析結果をメモ代わりに記録する。
下部エリアには16文字5x7ドットのキャラクタLCDが付いている。HT1621がシリアルなので、キャラクタLCDもシリアルにすることにした。
LCD基板に片面ユニバーサル基板をカットして両面テープで貼り付け、手持ちのHC595(シフトレジスタ)をユニバーサル基板のランドに載せた。FCケーブルと同じ信号がサイドのスルーホールから出ている
11LCD8812k595ura64.jpg

回路図
12LCD8812K595sch14.jpg

HC595のリードは、ユニバーサル基板のランドに半田出来る程度にカットする。基板のホールは使わない。RS(コマンド/データ切り替え)信号もHC595経由にしたので、LCDのE信号を(RSセットアップ時間+HC595遅延時間)だけ遅らせるため、デジトラを2段使って時間を稼いだ。遅延を測定した所、1.5usと思いのほか遅いが特に問題無し。
27USBee_5956.jpg29HC595RCK1.jpg

LCD8812Kのセグメントを解析した。
13LCD8812kSEGT3.jpg

表示例27-8 アドレス27番地、セグメントCOM0(8)
HT1621のインタフェースはアドレスはMSBから送るのに、データ部はCOM0から送る事になっている。PICによるシリアル化の制御の都合上、COM0を8,COM3を1とした。

Excelにアドレス/セグメントをまとめた。
14LCD8812pin113.jpg

7セグのアドレス関係がばらばらなので、アドレス対応表を作る必要があった。 5x7ドットのキャラクタLCDは8キャラx2列であった。

評価回路
70sch0201.jpg

見えにくいセグメントがある。  消費電流約40mA(ほとんどがバックライトLED)
60LCD8812Ktest.jpg
77LCD8812kv67.jpg

PIC16F1827によるLCD8812Kデモプログラム


MPLABX v3.51 XC8 v1.40
下記4信号で、HT1621とキャラクタLCDを制御する。
#define RCK PORTAbits.RA7 //595  :RCK ,E
#define CS PORTAbits.RA6  //HT1621 :CS
#define WR PORTBbits.RB7
#define DT PORTBbits.RB6

デバック中の関数や未使用の関数が残っているが、PIC16F1827向けプログラムをそのまま公開。バグはごめんなさい。
"HTLCD_lib.c" HT1621関数
"lcd_SPIlib.c" HC595シリアル化キャラクタLCD関数

LCD8812Ktest.zip


------------------------------------

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。