PIC24F04KA200 マイコンで低消費電力を実現するために、Deep Sleep モードの適切な設定方法と注意点について解説します。多くの開発者が Sleep モードや Deep Sleep モードを利用しても期待通りの消費電流低減が得られないことがあります。この記事では、その原因と対策を具体例を交えて紹介します。
Deep Sleep モードとは何か
Deep Sleep モードは、PIC24F04KA200 の電力消費を最小限に抑えるための機能です。通常の Sleep モードよりさらに多くの内部回路が停止し、消費電流が数マイクロアンペア単位に低下します。
しかし、Deep Sleep モードを正しく動作させるためには、クロックや周辺回路の設定、スリープ制御レジスタの書き込み手順が正確である必要があります。
コンフィグレーション設定の重要ポイント
Deep Sleep モードで期待する消費電流低減を得るには、FOSCSEL や FOSC の設定に注意する必要があります。特に FRCPLL を使用している場合、OSCIOFNC や POSCMOD の設定により、スリープ状態でもクロックが供給され続ける場合があります。
また、ウォッチドッグタイマー (WDT) が有効になっている場合、Deep Sleep でも WDT による消費電流が発生します。必要に応じて DSWDT を無効化することでより低い消費電流が得られます。
Deep Sleep モードへの遷移手順
Deep Sleep モードに入るには、DSCON レジスタの各ビットを正しく設定する必要があります。特に DSCON<15> ビットの設定や、NVMKEY を使用したスリープ制御手順が重要です。
例えば、以下の手順で Deep Sleep モードへ遷移できます。
1. DSCON ビットをクリアまたはセット
2. NVMKEY に 0x55, 0xAA を書き込み
3. pwrsav 命令でスリープ移行
実際の低消費電力化の例
適切な設定を行った場合、PIC24F04KA200 は数マイクロアンペア単位まで消費電流を低下させることが可能です。例えば、WDT を無効化し、不要な周辺回路を停止させることで 1uA 未満の消費電流が得られるケースもあります。
実例として、クロック分周を 1:1 に設定し、OSCIOFNC を ON にして不要な出力を無効化した上で Deep Sleep モードに入れると、Sleep モード時の 22uA からさらに低下させることができます。
注意点とトラブルシューティング
Deep Sleep モードで消費電流が変わらない場合は、以下を確認してください。
・DSCON の設定が正しいか
・DSWDT が無効化されているか
・不要な周辺回路が停止しているか
・クロック設定で Deep Sleep が維持されるか
これらの設定を見直すことで、期待する低消費電力化が実現可能です。マイクロコントローラのデータシートを参照し、各レジスタの動作を確認することが重要です。
まとめ
PIC24F04KA200 の Deep Sleep モードは、設定と手順を正しく行うことで、Sleep モードよりさらに低い消費電流を実現できます。WDT の設定、クロックの構成、DSCON の正しい書き込み手順を守ることが鍵です。これらを理解し、実装することで、超低消費電力アプリケーションの開発が可能になります。


コメント