Silicon Labs Bluetooth®:NCPモード時の消費電流をもっと下げる方法はありませんか(BGM1xx, EFR32BG)
BGM1xxをNCPモードで使用する場合、NCP target – Emptyというコードをビルドして書き込んで使用します。このNCP target – Emptyは、デフォルトでEM2(Deep Sleep)モードが無効となっています。

BGM1xxにWakeupピンを設定することで、WakeupピンがHigh(或いはLow)の場合は通常動作モードでHostからのコマンドを待ち受けし、WakeupピンがLow(或いはHigh)の場合は低消費電力モードとしてEM2(Deep Sleep)に移行する、といった設定が可能です。
手順はAN1042「Using the Silicon LabsBluetooth® Stack in Network Co-Processor Mode」の「4.1.4 Enabling Sleep」にも記載されていますが、ncp_usart.hに以下を追加します。
#define NCP_DEEP_SLEEP_ENABLED 1
#define NCP_WAKEUP_PIN 6
#define NCP_WAKEUP_PORT gpioPortF
#define NCP_WAKEUP_POLARITY 0
ここではWirelessStarter KitとBGM121ラジオボードと組み合わせで評価してみますので、Wireless Starter KitのPB0(ボタン0)に繋がっているF6ピン(PortFの6番ピン)このWakeupピンを割り付けています。

このようなコードになります。

これでビルドしてRunすると、下図のように消費電流が下がり、EM2まで落ちていることが確認できます。
