1 Reply Latest reply on Apr 19, 2020 9:23 PM by JuyoungJ_06

    Community Translation - Setting Cores to Deep Sleep Mode while BLE Function is Enabled on PSoC® 6 – KBA223291

    HiOm_1802421

      Hi,

      I tried to translate this KBA223291 into Japanese.

       

      Setting Cores to Deep Sleep Mode while BLE Function is Enabled on PSoC® 6 – KBA223291

      ==========

      タイトル:PSoC® 6 でBLE機能が有効な時にコアをディープスリープモードに設定する

       

      質問:

      Cy_SysPm_DeepSleep() APIによって開始されたコアがディープスリープモードの時に、BLEスタックがデュアルコアとシングルCM0+に割り当てられている場合で、Arm® Cortex®-M4 と Cortex-M0+ のパフォーマンスはどう違いますか?

       

      回答:

      プロジェクト CE212736 を例として考えます。

       

      オリジナルの設定では、CM4とCM0+の両方にBLEスタックが割り当てられます。

      Cy_SysPm_DeepSleep() APIが呼ばれた時、CM4はBLEの状態が アドバタイズ か 接続済み ならばディープスリープモードに設定され、次のBLEスタックイベントが生成されるまでウェイクアップしません。

       

      CM4を無効にしてシングルCM0+を使うようにプロジェクトを変更した場合は、CM0+のパフォーマンスは同じAPI Cy_SysPm_DeepSleep() を呼び出した時と異なります。

      CM0+はディープスリープモードに入る事も出来ますが、直ぐにウェイクアップすることは出来ません。

      BLEの状態が アドバタイズ の場合、ディープスリープモードタイミングはアドバタイズインターバル周辺です。

      BLEの状態が 接続済み の場合、ディープスリープモードタイミングはコネクションインターバル周辺です。(デフォルトのスレーブレイテンシは0です)

       

      この違いは、CM0+に割り当てられたBLEサブシステム(BLESS)割り込みによるものです。

      BLEサブシステム割り込みはBLEコントローラ部に割り当てられる必要があります。

      BLEスタック全体がCM0+上に置かれている場合、BLESS割り込みはディープスリープから常にCM0+をウェイクアップさせます。

      しかし、BLEコントローラがCM0+上に置かれていて、ホストがCM4上に置かれている場合、CM4は分離されてBLESS割り込みでウェイアップせず、次のBLEスタックイベントが生成されるまでディープスリープのまま維持されます。

      ==========

       

      BR,

      Omoi