CYW43907 - how to call platform_hibernation_start() without timeout?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
ToLa_2193696
Level 3
Level 3
First like received First like given

Hi,

I am using the API platform_hibernation_start(ticks_to_wakeup); to put my CYW43907/CYW54907 into hibernation mode. It works very well, but seemingly always exits hibernation based on the RTC clock. The maximum delay converts to something like 37 hours. How can I keep the chip in hibernation forever?

In my application, I like to use the HIB_WAKE_B Pin or a power cycle to wake up the chip.

Thank you

0 Likes
1 Solution
RaktimR_11
Moderator
Moderator
Moderator
500 replies posted 250 replies posted 100 replies posted

As you can check 43xxx_Wi-Fi/WICED/platform/MCU/BCM4390x/peripherals/platform_hib.c, you will find that ticks_to_wakeup is of datatype uint32_t which means it can only take a value till (2^32 - 1). When the platform is put into hibernation mode, basically a counter is started from 0 to the ticks count provided (based on the internal or external hib clock selection you can get the timing which you have reported to be 37 hours). 

Could you please tell why you want the chip to be in hibernation forever? HIB means essentially only that part of the chip is ON and even the PMU is powered down so none of the Wi-Fi/Apps related functionalities will be available.

View solution in original post

2 Replies
RaktimR_11
Moderator
Moderator
Moderator
500 replies posted 250 replies posted 100 replies posted

As you can check 43xxx_Wi-Fi/WICED/platform/MCU/BCM4390x/peripherals/platform_hib.c, you will find that ticks_to_wakeup is of datatype uint32_t which means it can only take a value till (2^32 - 1). When the platform is put into hibernation mode, basically a counter is started from 0 to the ticks count provided (based on the internal or external hib clock selection you can get the timing which you have reported to be 37 hours). 

Could you please tell why you want the chip to be in hibernation forever? HIB means essentially only that part of the chip is ON and even the PMU is powered down so none of the Wi-Fi/Apps related functionalities will be available.

We like to use the hibernation as a "software power off". The device should then be powered off for storage until it is plugged in again to a powersource (wakup is then triggered via HIB_WAKE_B pin). We use the CYW43907 as the MCU in a sensor network, which means we like to power off up to 10 devices at once. It is unpractical to ask the user to turn off a switch on all devices.

If the 37hrs limit is not preventable, is there a way to detect the wake-up by timeout and put it right back to hibernation again?

0 Likes