PSoC® 4 デバイスのディープスリープ時の電流削減 - KBA90930 - Community Translated (JA)
- RSS フィードを購読する
- 新着としてマーク
- 既読としてマーク
- ブックマーク
- 購読
- 印刷用ページ
- 不適切なコンテンツを報告
Community Translated by MoTa_728816 Version: *A
Translation - English: Reducing the Deep-Sleep Current for PSoC® 4 Devices – KBA90930
質問:
PSoC 4 デバイスのディープスリープ時の電流消費を少なくするのにはどうしたら良いでしょうか?
回答:
CY8CKIT-042 を使用して測定したところ PSoC 4 はディープスリープ時に 1.5 mA 程度を消費します。これは下図のように Project_name.cydwr タブ下の system で Debug Select オプションを “SWD” と選択した場合の挙動です。
PSoC 4 プロジェクトで、Debug Select オプションで “SWD” が選択されている場合、SWD ピンのドライブモードは Strong drive に設定されます。これがディープスリープ時でも消費電力が高い理由です。ディープスリープ時の消費電力を抑えるためには、手動で PSoC 4 デバイスの SWD ピン、すなわち P3[2] と P3[3] ピンをディープスリープに入る前に、Analog Hi-Z モードに設定する必要があります。デバイスがディープスリープから復帰した時点でこれらピンのドライブモードを元の設定に戻すことが出来ます。この手法はディープスリープ時にもデバッグが必要な場合に要求されます。もし、そうでない場合には一番容易なのは Debug Select オプションを SWD から GPIO にすることです。
SWD ピンのドライブモードを Analog Hi-Z に変更するのには、0x40040308 にある PRT3_PC レジスタのビット [6:11] に 0 を書き込みます。PRT3_PC レジスタのこれらのビットに 0 を書き込むと SWD ピンのドライブモードを Analog Hi-Z に変更します。 PRT3_PC レジスタに関する詳細は PSoC 4 Registers TRM 8.1.3 項の PRT3_PC レジスタの説明をご参照ください。下記はディープスリープに入る前に SWD ピンを Hi-Z に設定して、ディープスリープからの復帰後に元に設定に戻すコードスニペットです:
x= CY_GET_REG32(0x40040308u);
CY_SET_REG32(0x40040308u, 0x00);
CySysPmDeepSleep();
CY_SET_REG32(0x40040308u, x);