ULPWUモジュールの使い方



【ULPWUモジュールの概要】

 ULPWU(Ultra Low-Power Wake-Up)モジュールとは、極低消費電流でPICを使いたいとき、
有効な周期的ウェイクアップ手段を提供するモジュールです。
 極低消費電流でPICを使う場合にはスリープモードを使います。そしてスリープからウェイクアップ
させるためウォッチドッグタイマを使いますが、このためにはスリープ中もウォッチドッグタイマだけは
動作させておく必要があります。
 しかし、このウォッチドッグタイマは、少ないものでも数μAの電流を消費します。この電流値では
消費電力が大き過ぎるという極低消費電流の用途もあります。
 このような用途にULPWUモジュールを使うと、スリープ中の消費電流を1μA以下にすることが
できます。

 このULPWUモジュールが実装されているPICは、現状では下記のような最新の少ピンPICですが
順次他の少ピンPICにも実装される計画のようです。

《ULPWUモジュールの実装されているPIC》
  ・PIC12F635   ・PIC12F683
  ・PIC16F636   ・PIC16F684   ・PIC16F688
  ・PIC16F631*   ・PIC16F677*   ・PIC16F685*  ・PIC16F687*  PIC16F689*

    (*は開発中)

【ULPWUモジュールの構成】

ULPWUモジュールの内部構成は下図のようになっています。
動作は下記の順序で行われます。

(1) IOピンを出力モードにしてHighを出力する
  これで外部のコンデンサC1は電源電圧まで充電される。抵抗R1は、このときの
  充電電流が25mAを超えないようにするための電流制限抵抗です。
(2)一定時間後、ULPWUEビットを1にしてからIOピンを入力モードにし、状態変化の
  割り込みを許可しておきます。
  これで、定電流回路を通してコンデンサC1の放電が始まります。
(3)スリープモードにします。
  スリープ中の間もC1の放電は続けられます。このときの消費電流は
  スリープ時の電流とULPWUモジュールの消費電流だけになります。
  このULPWUモジュールの消費電流は、75nA〜160nA程度で非常に小さくなって
  います。 (正確な電流値は各デバイスのデータシートを参照のこと)
(4)C1の端子電圧が、コンパレータの入力になっていて、スレッショルド電圧Vtと
  常時比較されており、Vt以下になると、Interrupt on Changeの割り込みが発生
  し、ウェイクアップします。
(5)割り込み許可されていれば、4番地にジャンプし、割り込み禁止であれば
 SLEEP命令の次の命令を実行します。






【インターバル時間】

ULPWUモジュールを使った時の周期起動のインターバル時間は、下記式で求めることが
できます。
しかしこの時間は、温度により変動しますので注意が必要です。

  インターバル時間(T) = (電源電圧 − Vt) × C1 ÷ Isink

例えば電源電圧:3V  スレッショルド電圧(Vt):0.6V  Isink:140nA  C1:0.001μF とすれば
R1は200Ω程度なので無視できるので、

  T(sec) = (3 − 0.6) × 0.001×10の-6乗 ÷ 140×10の-9乗 = 2.4 ÷ 140 = 17.1msec

となります。

さらに例えば、コンデンサC1が0.01μFであれば約170msec 0.1μFであれば約1.7秒となります。

しかし、実際には、コンデンサの漏れ電流による影響が大きく、計算値よりかなり短い時間となります。
従ってコンデンサには、漏れ電流の少ない、ポリエステルフィルムコンデンサや、ポリプロピレン
コンデンサが適しています。

さらに、基板の漏れ電流の影響も無視できませんので、できるだけ配線を短く、基板を洗浄して
表面をきれいにしておく必要があります。

【プログラミング方法】

ULPWUモジュールを使うときの基本プログラミングパターンは下記のようになります。







  目次ページに戻る