2023-08-02 06:47 AM - edited 2023-08-02 09:23 AM
Hello,
We noted a strange consumption pattern regarding the BLE usage w/ zephyr 3.4.0. The BLE stack is the version 1.16.0 (we got the same values w/ 1.17.0 on BLE stack and zephyr hal_stm32 (d466dc8421ee0c6592bb5682aa93a671bc948107)).
Setup:
* EVB: NUCLEO-WB55RG
- measure current on JP2 (with a nordic's PPK, but same results with another tool)
- no jumpers on JP5 (after programming firmwares)
- JP1: jumper on the right (5V_USB_STLINK)
- EVB powered by USB (on the STLINK side)
- JP4/JP6/JP3: jumpers
* BLE stack: from https://github.com/STMicroelectronics/STM32CubeWB.git
- version: tag v1.16.0
- binary: Projects/STM32WB_Copro_Wireless_Binaries/STM32WB5x/stm32wb5x_BLE_HCILayer_fw.bin
- flashed by: `STM32_Programmer.sh -c port=SWD mode=UR reset=HWrst -startfus -fwupgrade $(../tools/get-fw-address.py ../STM32CubeWB/Projects/STM32WB_Copro_Wireless_Binaries/STM32WB5x/stm32wb5x_BLE_HCILayer_fw.bin ) startstack=1`
where get-fw-address.py is a python script that parses the `Release_Notes.html` to get the address
* zephyr firmware: inspired by ../zephyrproject/zephyr/samples/bluetooth/peripheral_hr
- version 3.4.0
- `CONFIG_PM=y` and `CONFIG_PM_DEVICE=y`
- flashed w/ `west flash -r stm32cubeprogrammer`
The facts:
- zephyr-full.png: advertsing, power-off (removed the JP2), then adverstising, a connection (with notification), and disconnection (hence advertising)
- zephyr-adv.png: advertising after power-off, i.e.: we can see 1s interval between reaching a low-level of
- zephyr-adv-low.png: a low-power consumption during advertising: ~100µA (after a 1s interval)
- zephyr-cnx-low.png: the same low-power consumption (~100µA) during connected phase, and the fact that this level is more often reached
- zephyr-early-adv-low.png: shows a 1mA offset for low-power "more" during advertising
full:
adv:
adv-low:
cnx-low:
early-adv-low:
The questions:
- a) why a power-off seems to be needed to reach a real low-power value (a reset does not change the consumption) ?
- b) more importantly: why does the advertising phase does not show the same low-power phases as during the connection ?
Thanks for any help,
Marc.
2024-11-18 06:25 AM
This looks similar to: https://github.com/zephyrproject-rtos/zephyr/issues/69955.