2 Replies Latest reply on Apr 20, 2020 6:36 PM by JuyoungJ_06

    Community Translation - Detecting BOD Reset in PSoC 4 – KBA228415

    MoTa_728816

      Hi,

       

      I'd like to try translating this KBA228415

       

      moto

       

      Original KBA: KBA228415

      Detecting BOD Reset in PSoC 4 – KBA228415

       

      Translated by: MoTa_728816

      =================

      タイトル: PSoC 4 で BOD Reset を検出する - KBA228415

       

      BOD (ブラウンアウトディテクト) 回路は電源電圧が危険な可能性がある状態のときにデバイスにリセットを作動させて動作の保護やロジックの保持を行います。BOD 回路は VCCD を監視して、もし電圧レベルが安全な動作を行うための最小 VCCD 電圧よりも下がった場合にリセットを発生させます。システムは再び電源電圧が有効になるまではリセットを解除しません。BOD のイベントによっては、VCCD は最小ロジック動作電圧よりも下がってはいますが、最小ロジック保持電圧よりも高いところで留まる場合があります。

       

      もし VCCD が最小ロジック動作電圧より下がり、しかし最小ロジック保持電圧を割っていない場合、BOD リセットが発生します;しかしレジスタの値は保持されます。もし VCCD が最小ロジック動作電圧と最小保持電圧のどちらよりも下がった場合、レジスタ値が保持されない BOD リセットが発生します。このレジスタ値の保持はスペシャルレジスタ、PWR_BOD_KEY を使用して検出することが可能です。PWM_BOD_KEY レジスタの値はファームウェアからの書込みか非保持 BOD リセット、XRES、POR のような非保持リセットイベントが発生した場合だけ変更されます。

       

      ブラウンアウトリセットはアプリケーションに以下のコードを追加することで検出することが可能です。

       

      int Check_BOD(void)

      {

          // CYREG_PWR_BOD_KEY レジスタの現在の値をチェックする

          uint32 key = CY_GET_REG32(CYREG_PWR_BOD_KEY);

        

          // CYREG_PWR_BOD_KEY レジスタを 0x3A71 にセットする

          CY_SET_REG32(CYREG_PWR_BOD_KEY,0x3A71);

        

          // もし key が 0x3A71 であれば, プログラムはブラウンアウトによってリセットされたことが示される

          return (key == 0x3A71);

       

      }

       

      int main (void)

      {

       

          if(Check_BOD())

          {

              //BOD Detected.

          }

        

          for(;;)

          {

              /* Place your application code here. */

          }

      }

       

      しかし、CYREG_PWR_BOD_KEY はハイバネートからの復帰でも保持されています。そのため、リセットコンディションもチェックする必要があります。

      ハイバネートによるリセットコンディションは

           CySysPmGetResetReason() == CY_PM_RESET_REASON_WAKEUP_HIB

      を使用してチェックできます。

       

      もしこのコンディションが TRUE を返えした場合、それはリセットの原因がハイバネートであり、BOD をチェックする必要はないことを示します。

       

      参考資料:

      1. PSoC 4100/4200 Family PSoC® 4 Architecture TRM
      2. PSoC 4100/4200 Family PSoC 4 Registers TRM (Technical Reference Manual)

      =================

       

      27-Mar-2020

      moto