Skip to content

[BLE] STM32WB55 advertising DeepSleep Bug #14580

@mayrhomar

Description

@mayrhomar

Description of defect

When an advertising packet is sent, the microcontroller sometimes does not return to DeepSleep mode. Only if another event occurs (e.g. LPTICKER -> "target.lpticker_lptim": 1) it will return to DeepSleep afterwards. This becomes problematic if the RTC is selected as LowPower Ticker ("target.lpticker_lptim": 0). The Mbed CPU statistics does not recognize that the controller is not in DeepSleep mode.

Power measurement BLE Advertising with:
"target.lpticker_lptim": 0, "target.lpticker_lptim_clock": 4
WB55_Power_Adver

Power measurement BLE Advertising with:
"target.lpticker_lptim": 1, "target.lpticker_lptim_clock": 4
WB55_Bug_LP_Ticker

Target(s) affected by this defect ?

NUCLEO-WB55RG

Toolchain(s) (name and version) displaying this defect ?

ARM Compiler 6.15

What version of Mbed-os are you using (tag or sha) ?

Mbed OS 6.10

What version(s) of tools are you using. List all that apply (E.g. mbed-cli)

Mbed Studio: 1.4.0

How is this defect reproduced ?

  1. Upgrade BLE Stack to Release v1.11.1 BLE Stack
  2. Use the BLE_GattServer_AddService from Mbed BLE Examples.
  3. Change the advertising intervall e.g:
        ble::AdvertisingParameters adv_parameters(
            ble::advertising_type_t::CONNECTABLE_UNDIRECTED,
            ble::adv_interval_t(ble::millisecond_t(1024)),
            ble::adv_interval_t(ble::millisecond_t(3072))
        );
  1. Add "target.lpticker_lptim_clock": 4 to mbed_app.json
  2. measure power consumption

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions