STM32WB BLE MESH AND STOP MODE...HOW TO STOP RF ACTIVITY ?
Hi All,
I'm currently working on a project where I will have a proxy/Friend Node that will talk with a Low power Node.
The proxy node should be able to go on standby when requested and in the condition I would like to obtain the optimal current consumption.
The Problem I'm facing right now all related on how to enter the STOP MODE properly and how to wake up everything correctly.
Looking at the examples I implemented my own version of the proxy example using RTOS.
Then I tried to implement a lot of different way to enter standby mode but each of this one had a problem.
The Only way I can keep my network working is simply not doing anything to the RF activity but in that condition the consumption are pretty high
You can find below all the procedure I tried to implement
1) Using the BLE shutdown/resume function
I tried using the function available on the mesh library; before going on standby I call
BLEMesh_Shutdownand when I wake up from standby (after re-Initializing clock and all my GPIO,ADC etc.) I call the function
BLEMesh_Resume()RESULT: The BLEMesh_Resume() return correctly but I can't see any activity on the HCI...
2) Stopping any RF activity on CPU2
I implemented these two functions before entering STOP MODE
void APP_BLE_Stop(void)
{
//set_BLE_Status(BLE_DISCONNECTED); //was here for old management
/* BLE STOP Procedure */
/* Reset the BLE stack */
bleret = aci_hal_stack_reset();
if (bleret != BLE_STATUS_SUCCESS)
{
Error_Handler();
}
}
void deactivateRadio()
{
SHCI_CmdStatus_t sret = SHCI_Success;
set_BLE_Status(BLE_DISCONNECTED);
/* Wait till C2DS set */
while(LL_PWR_IsActiveFlag_C2DS() == 0);
/* Re-init CPU2 */
sret = SHCI_C2_Reinit();
if (sret != SHCI_Success)
{
Error_Handler();
}
/* Wait till C2DS set */
while(LL_PWR_IsActiveFlag_C2DS() == 0);
}
RESULT: When I Initialize everything as first start, the function BLEMesh_Init() fails
BLEMesh_Init()Anyone has tried to implement a proper STOP MODE using BLE MESH ?
Best Regards
Jonny
