低電圧検出モジュールの使い方


【低電圧検出モジュール概要】

PIC18Fxxxxシリーズでは、電源に対する監視機能がかなり強化されました。
低電圧検出モジュール Low Voltage Detect Module(LVD)は、PICが正常に
プログラムを実行できるようにするための電源の監視機能です。

このLVD機能を可能にすると、常に電源電圧を監視し、一定の電圧以下になると、
割込みを発生します。
この割込みにより、プログラムでシャットダウン処理を行い、さらに電圧が下がって
PICが動作不可能となる前に、正常に停止させるような機能を実行します。
これで電源電圧が異常に低くなったような場合でも、周辺に悪影響を与えずに
正常終了させることができます。
特にバッテリ動作をさせるような場合に、バッテリが無くなる前に終了させるように
することができます。


【低電圧検出モジュールの構成】

 このLVDモジュールの内部構成は、下図のようになっています。
まず、電源電圧を監視するときのスレッショルド(Trip Point)の設定は、内部と外部が
指定でき、さらに内部の場合には、16段階の設定ができるようになっています。
外部のスレッショルドを指定した場合には、電圧は自由に外部回路で設定できます。
 このいずれか1つが監視スレッショルドとして指定されると、この電圧は分圧後には、
約1.2Vになり、この電圧と内部リファレンスの1.2Vが常時比較されるようになります。
ここで1.2V以下になったことを検知すると、コンパレータが逆転してして、LVDIFの
割込みを発生します。
LVDENを0にすると、このLVD機能そのものの動作が停止し、その分消費電流を
減らすことができます。





【低電圧検出モジュール制御用レジスタ】

LVDモジュールの制御用に使うSFRレジスタはLVDCONレジスタのみです。
このレジスタの内容詳細は下図のようになっています。
ここで電圧設定が非常に細かく分割されていて、途中で変更することも可能
ですから、数段階のスレッショルドに従った処理をすることも可能です。





【低電圧検出モジュールの使い方】

LVDモジュールを使うための手順は下記のようにします。

(1) LVDCONでスレショルド電圧(Trip Point)を設定
(2) 割込み禁止状態を確認して、LVDモジュールをEnableにする
   (LVDCONレジスタのLVDENビットを1にする)
(3) 安定動作状態になるまで待つ
   (LVDCONレジスタのIRVSTビットが1になるのを待つ)
(4) 割込みフラグを一旦クリアしてから、割込みを許可する。

(5) 割込みが発生したら、割込みフラグ(LVDIF)ビットをクリアしてから
  シャットダウン処理を開始します。

【低電圧検出モジュール用C言語関数】

CCS社のCコンパイラでは、まだLVD用の専用組込み関数はまだ用意されて
いません。
個別のレジスタの設定で行う必要があります。
しかし、割込みはサポートされていて、「INT_LVD」が使えます。

【低電圧検出モジュールのプログラム例】









  トップページへ