2-4:回路設計と組み立て
図1の全体構成に基づいて作成した回路図が図3となります。液晶パネルとの配線が混みいっていますが、PICと液晶セグメントを1対1で接続しているだけです。液晶パネルには全部で33セグメントあるのですが、PIC側がドライブできるセグメントは、スタティック駆動の場合には24セグメントとなっていますので、時刻表示に必要な最小限のセグメントに絞っています。
接続は表示セグメント順ではなく、パターンが通しやすい対応付けで接続しています。このため表示数字とセグメントの対応はプログラムで行うことにしました。
スイッチのポートにはプルアップ抵抗が内蔵されていませんので外付けのプルアップ抵抗が必要です。
組み立て完了した基板の部品面が写真2で、はんだ面が写真3となります。液晶パネルは適応するソケットがありませんので直接基板にはんだ付けしています。発振モジュールはサブ基板に実装済みのものを購入しましたので、8ピンのICソケットで実装しています。
プログラム書き込み用にMicrochipの「PICkit 3」を使いますので、6ピンのピンヘッダを実装しています。
2-5:プログラム製作
プログラム全体構成は単純で、図4のフローのようにメイン関数部と状態変化の割り込み処理関数の2つでできています。
メインループでは表示要求があれば表示をしたのち、スイッチのチェックをして直ぐスリープに入ります。表示要求がなければ何もせずスイッチのチェックをして直ぐスリープに入ります。
スイッチチェックでオンを検知したら対応するスイッチの処理を実行してからスリープに入ります。スイッチ処理では時刻初期設定、時間と月日の表示の切り替えを実行しています。
割り込み処理では、時刻をカウントアップしたのち表示要求フラグをセットしてリターンしているだけです。
液晶パネルの表示制御では、液晶パネルの接続方法を図5のように制限し、回路図のようにセグメントピンに接続しましたので、対応するセグメントとLCD制御レジスタビットの対応は表4のようになります。
表4は縦に桁ごとに表示する数値が並べられており、横軸は、制御レジスタのビット順にならべ、その下に接続相手の液晶パネルのセグメントが並べられています。
表の内部には、桁ごとに数字を表示するために駆動しなければならないセグメントを0と1で記述しています。これで、各桁の表示数値を表示させるためには最右欄の設定値を液晶のセグメント設定値とする必要があり、桁ごとの4つのORをとって設定します。最上位桁は、0か1しかありません。
実際の例で説明します。例えば時刻を12時間時計で表示するような場合を考えます。
まず、表4の設定値の下位3桁分の10個ずつの数字を配列データとして用意します。この部分がリスト-1となります。10個ずつ3桁の2次元配列データとなっています。
最初に、24時間から12時間時刻に変換して表示する数値を求め、表示する数値の設定値を配列データから取り出し、下3桁のORをとっています。次に最上位桁の1を表示するかしないかを判定し、やはりORで付け加えています。最後にコロンをORした後、3個のLCDセグメント制御レジスタにバイト単位で出力しています。
2-6:動作確認
プログラムを書き込めば直ぐ動作を開始します。1秒ごとにコロンが点滅すれば正常に動作しています。
ここで実際の消費電流を計測することにしました。しかし、図2のようなパターンの電流なので、マルチメータやテスタでは正確に計測できませんし、電流値が小さいのでオシロスコープでも観測は難しくなります。
そこでこの電流パターンを測定するための測定器を製作することにしました。この微小電流測定器は次回の連載で紹介します。
この測定器で計測した結果の電流パターンは、PICの内蔵クロックの500kHz動作時で写真4、写真5のようになりました。
これらの写真から平均消費電流を求めてみます。
まず、写真4から1秒間隔のピークで約180μAが消費されており、写真5からピークが20msec継続していることが分かります。
また、スリープ中は、写真5から約3~4μA程度となっています。スリープ中に20msec周期で小さなピーク電流が見られますが、元のパルスには同期していませんので測定器側の商用電源のノイズと推定されます。したがって、このピークは無視することにします。
これで平均電流は、(180×20+3.5×980)÷1000=約7.0μAとなり、目標とする25μAは軽くクリアしています。
単純計算では、CR2032の場合で220mA÷7.0μA=31428ですから、約3万時間動作するはずですので、3年以上は連続で動作することになります。
以上の結果から、XLPデバイスをうまく使うことで、極低消費電力な製品を製作できることが分かりました。とくに液晶パネルを表示に使うことで、一挙に低消費電力化が実現できました。