PSoC® 4 デバイスのディープスリープ時の電流を減らす - KBA90930- Community Translated (JA)

Version 1

    Community Translated by MoTa_728816         Version: **

     

    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” と選択した場合の挙動です。

     

    001-pastedImage_0.png

     

    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);