PIC16F19155でAitendoのLCDを動かす(その2)

前回は、Aitendoで購入したセグメント液晶をPIC16F19155のドライバを使って駆動しました。電源周りの設定がややこしく、チャージポンプを使わずにVDDで駆動するということをやりました。
alasixosaka.hatenablog.com

今回は、チャージポンプを使った駆動とFVRを使った駆動を試してみました。

チャージポンプを使った駆動

チャージポンプ関連の設定は、コンフィグレーションビットのLCDPENと、LCD関連のレジスタである、LCDVCON1とLCDVCON2が関係します。
LCDPENはコンフィグレーションビットの設定の所でOFFとなっているのをONに書き換えるだけです。
LCDVCON1はLPENとEN5Vそして、3ビットのBIASからなります。前回のおさらいになるので簡単に書きますが、LPENはチャージポンプの電流を低電流モードにするか、ノーマルモードにするかの設定で、1なら低電流、0ならノーマル電流になります。
EN5Vはチャージポンプの電圧設定で1なら5V、0なら3.5Vになります。
BIASは細かい電圧設定で、3ビットの値で例えば3.5Vモードの時は、2.8Vから3.5Vまで調整できます。
今回は外付け部品を減らすために、LPENは0のノーマル電流モードを選びました。(注:2022/10/23 ノーマル電流モードを選ぶとVLCD2にもコンデンサが必要になります。記事の下の方でVLCD2から出力が出ないのはそのためかもしれません)液晶パネルの電圧設定は3.0Vになっているので、EN5Vは0の3.5Vを選択し、BIASは010として3.0Vとしました。ただ、3.0Vでは少し暗い感じがするのでもう少し電圧を上げた方が見やすいかもしれません。
LCDVCON2は0111として、チャージポンプと内部のラダー抵抗のモードを選びました。

外付け部品

追加の外付け部品は、チャージポンプ用にフライバックコンデンサ(1μF)と、VLCD3にコンデンサが必要。データシートでは0.27μFとなっていたが、手持ちのコンデンサで0.33μFがあったので今回はこれを使いました。(注:2022/10/23 上にも書いたようにこの設定ではVLCD2にもコンデンサが必要です)

外付け部品。今回はフライバックコンデンサとVLCD3のコンデンサのみを使用
数字が変になる

これで普通に動くはずだったんですが、ちゃんと数字が表示されない。よく見ると右側のセグメントが全然表示されていない。LCD側の22番ピンの配線を抜いてみても表示が全く変わらなかったので、PIC側のSEG22からのシグナルが来てない様子。そこでデータシートをもう一度見直してみると、SEG22のつながっている17番ピンはVLCD2と共通ピンになっている。上にも書いたように、3.5Vのノーマル電流モードの場合、外付けコンデンサはフライバックコンデンサとVLCD3のコンデンサのみが必要なのでVLCD2にも必要)、本来VLCD2は不要のはずだが、チャージポンプを使う設定にすると自動的に17番ピンはVLCD2になってしまうようで、SEG22としては使えないみたいだ。(注:2022/10/23 上にも書いたようにVLCD2にもコンデンサが必要でした)。たしかに、上の図の注釈には、通常のGPIOとしては使用可能と書いてあるがSEGとして使用可能とは書いてない。とすると、チャージポンプを使うと駆動できるセグメントが減ってしまうということになる。
とりあえず、SEG22をやめて、SEG19(14番ピン)を使うことにした。
全体の配線は下の図のようになった。

チャージポンプを使うときの配線。

FVRを使う

今度はチャージポンプでなく、FVRを電源に使ってみる。FVRはPIC内部での基準電源で、ADコンバーターの基準にも使われる。液晶ドライバ搭載のPICの場合は、FVRの3倍で約3Vの電圧を供給する。
設定は先ほどのチャージポンプの時と同じく、LCDVCON1とLCDVCON2の2つのレジスタで設定する。もちろん、コンフィグレーションのLCDPENはOFFにしておく。
LCDVCON1は基本的にチャージポンプ周りの設定なので、何でもよいとは思うが、LPENは0(Low Current Mode)、EN5Vも0(3.5V)、BIASは000とした。
LCDVOCN2でFVRを使う設定は一つしかなく、0011でFVRとラダー抵抗の組み合わせとなる。
この設定であれば、外付けの部品が必要ないので、チャージポンプを使うのに比べて多くのセグメントが駆動できる。問題は、電圧が下がった時にFVRが3Vをキープできるのかというところ。この辺は実際に実験してみないとわからない。