Hello all,
Could you please provide information if your SDK offers such functionality or API? If so, I would greatly appreciate any documentation or guidance on how to utilize this feature effectively within my application.
Additionally, if there are any best practices or recommendations for minimizing power consumption while using the BLE radio, I would be eager to learn more about them.
Thank you for your attention to this matter. I'm looking forward to your prompt response and assistance.
Hi, @Mohamed-Sofien
Thanks for creating case to us and hope you are doing well.
For low power mode, you can refer to our guide: KW45_K32W1_Low_Power_Connectivity_Refernce_Design_User_guide.pdf
which is located in our SDK below path:
SDK_2_12_7_KW45B41Z-EVK\docs\wireless\Common\
And you can download our full SDK in below website:
https://mcuxpresso.nxp.com/en/select
Just input "KW45" and choose sdk version then build SDK, then you can download it.
Please do not hesitate to reply me if have any other queries.
Best regards,
Christine.
Hello @Christine_Li,
Thaks for your feedback,
I read the guide you mentionned above and i found the API PLATFORM_EnterDeepPowerDown() in the SDK example "Low-power peripheral reference design application". This function enters the radio domain into Deep Power Down mode, but I didn't find an API that sets the radio domain explicitly into Deep Sleep and Power Down modes.
Hi, @Mohamed-Sofien
Thanks for your reply.
Please see the fwk_platform_lowpower.c:
There are different APIs can be chosen according to your requirements:
void PLATFORM_EnterLowPower(void)
void PLATFORM_EnterPowerDown(void)
void PLATFORM_EnterDeepPowerDown(void)
Please do not hesitate to reply me if you still have any other queries.
Have a nice day~
Best regards,
Christine.
Hi @Christine_Li ,
Thank you for your answer,
For the function void PLATFORM_EnterPowerDown(void), I assume that it sets only the BLE Host into Power Down mode as mentionned in the comments inside the function.
Thank you for taking the time to answer my questions,
Best regards.
Hi, @Mohamed-Sofien
Thanks for your reply.
I checked our guide: KW45_K32W1_Low_Power_Connectivity_Refernce_Design_User_guide.pdf
In Chatper 2.1 on page 5, it mentioned that " The KW45/K32W1 has a dual-core architecture, and has two separate power domains: the main domain for the Cortex M33, and the Radio domain which comprises the Cortex M3 core and the NBU (Narrow Band Unit).The two power domains can enter or exit independently different low power modes."
So, I think KW45 supports the two power domains enter/exit low power modes independently.
But about the API implementations, I need to check internally. And at the same time, can you please also read this guide: KW45_K32W1_Low_Power_Connectivity_Refernce_Design_User_guide.pdf carefully to see whether can get more details about the information you required?
It is also a new experience about separately enter low power modes for host and Radio domain.
Sorry for the inconvenience, once I have any updates from our internal team, I will let you know.
Best regards,
Christine.
Hello @Christine_Li,
I will review the guide thoroughly to ensure I gather more informations.
Your prompt update about setting host and Radio domain separately into low power mode would be greatly appreciated.
Best regards.
Hi, @Mohamed-Sofien
I found this parameter: gPLATFORM_DisableNbuLowpower_d to 1: prevents CM3 (Radio CPU) to go to Low Power mode mentioned in the 3.2.3 Application configuration section on page 10 of this guide:
KW45_K32W1_Low_Power_Connectivity_Refernce_Design_User_guide.pdf
It means, you can set main domain to low power mode seperately when you set this parameter to 1.
I will try to find whether we have any special API to set Radio domain to low power mode.
Best regards,
Christine.
Hi, @Mohamed-Sofien
I confirmed with our internal team that radio domain is managed by NBU itself, and the NBU part is not visible for customer. So we can not find any API in our current SDK that let radio domain to enter low power mode.
I even searched this parameter: gPLATFORM_DisableNbuLowpower_d mentioned in my previous comment, in both lowpower_central_bm and lowpower_peripheral_bm example, I can not find this parameter. So I think it has been removed in these 2 examples. We need to update this guide according to this. I will report this typo error to our internal team to correct it to avoid more confusion to other customers.
I am so sorry about the inconvenience to you.
Best regards,
Christine.
Hi, @Mohamed-Sofien
Hope below API is helpful for you as a reference to put NBU domain into Deep Power Down mode.
PLATFORM_ShutdownRadio(); //Put NBU domain in Deep Power Down.
If it does help and answered your question, please do not hesitate to accept it as a solution.
If you still have other queries, please do not hesitate to reply me.
Thanks.
Best regards,
Christine.
Hi @Christine_Li,
Thank you for your information, I'm aware of this function, it's called inside this API that I mentionned before,
void PLATFORM_EnterDeepPowerDown(void)
{
/* Put NBU domain in Deep Power Down */
PLATFORM_ShutdownRadio();
}
It does solve the problem for the Deep Power Down mode but i'm still looking for APIs that enter/exit BLE radio domain into/from Deep Sleep and Power Down modes.
Best regards.
Hi, @Mohamed-Sofien
Thanks for your feedback.
Yes, it is inside of this API you mentioned.
And about the separately enter deep sleep and power down mode for Radio Domain, I didn't find any special API in our SDK. I think it must be integrated in our SDK and not visible for customer.
Best regards,
Christine.