【7つの電力制御モード】
PIC18Fxxxxシリーズでは、”nanoWatt Technology”ということで、低消費電力化
を実現するために、多くの工夫がなされています。
そして低消費電力動作のモードとして、下表のように大別して、SLEEP、IDLE、RUN
の3つのカテゴリにわかれ、さらに、それぞれのクロック供給方法により、合計7つの
低消費電力モードが用意されています。
実行環境の条件によって最適な動作モードに切替えることで、消費電力を少なくする
ことができるようになっています。
この低消費電力化は、表から判るようにクロックの供給方法と密接に関係していて、
クロックの周波数を下げることと、供給範囲を制限することで、消費電力を削減しています。
これはパソコンなどのCPUチップと同じ考え方で低消費電力化が行われていることに
なります。
(注)内蔵クロックとはINTOSCかINTRCのいずれか
モード OSCCON
レジスタ設定クロック供給 状態内容
消費電流Typ値IDLEN SCS1:0 CPU 周辺 SLEEP SLEEP 0 00 なし なし 全クロックが停止 PIC停止状態
2V、1MHz → 0.1μARUN
モードPRI_RUN 0 00 有 有 主クロックで動作
2V、1MHz → 150μASEC_RUN 0 01 有 有 副クロック(タイマ1)で動作
2V、32kHz → 14μARC_RUN 0 1x 有 有 内蔵クロックで動作
2V、1MHz → 110μAIDLE
モードPRI_IDLE 1 00 なし 有 主クロックで周辺のみ動作
2V、1MHz → 37μASEC_IDLE 1 01 なし 有 副クロック(タイマ1)で周辺のみ動作
2V、32kHz → 5.8μARC_IDLE 1 1x なし 有 内蔵クロックで周辺のみ動作
2V、1MHZ → 52μA
【省電力モードへの切り替え制御】
上表の省電力モードに切替えるには、下記のような手順で行います。
(1) OSCCONレジスタにモードを設定する。
・IDLENビットで、CPUのクロックの制御が出来ます。
・SCS1,SCS0ビットで、クロックの種別指定が出来ます。
このSCSビットを設定しただけではクロックの切替えは実行されません。
(2) SLEEP命令を実行する。
SLEEP命令実行後、8から9クロック後に新しいクロックに切り替わります。
このSLEEP命令は、従来はSLEEP状態にするだけでしたが、PIC18Fxxxxシリーズ
では、上記のように設定された各低消費電力モードへの切り替えとなります。
ここで、OSCCONレジスタのIDLEN、SCS1,0が全て0の設定の時、SLEEP命令
が実行されると、これまでのSLEEP命令と同じ、SLEEP状態への切り替えとなります。
【各モードでの動作】
低消費電力モードにしたときのその後の動作の差異は下表のように
なります。
(注)内蔵クロックはINTOSCとINTRCのいずれか
動作モード CPU実行状態 ウォッチドッグタイマ
タイムアップ時動作周辺モジュール
実行状態SLEEP 停止 WakeUPして
主クロック動作に切替
WakeUp中のクロック
は無しか内蔵クロック停止 RUNモード 副クロックか
内蔵クロックで動作RESETして
主クロックで動作
WakeUp中のクロック
はそのまま継続副クロックか
内蔵クロックで動作IDLEモード 停止 WakeUpして
主クロック動作に切替
WakeUp中のクロック
はそのまま継続主、副クロックか
内蔵クロックで動作