is this fixed? The DA14580 must automatically wake itself up at least every 10 s

7 posts / 0 new
Last post
achao1104
Offline
Last seen:5 years 3 months ago
Master
加入:2015-12-24 10:56
is this fixed? The DA14580 must automatically wake itself up at least every 10 s

The DA14580 must automatically wake itself up at least every 10 s, even when no external wake-up
interrupt is triggered. This automatic wake up does not prevent the external wake-up process to be
fully functional as described.
A workaround for this limitation will be given in a future release of this application note, as
alternatives are still under investigation.

Device:
achao1104
Offline
Last seen:5 years 3 months ago
Master
加入:2015-12-24 10:56
any idea? dialog support

any idea? dialog support

MT_dialog
Offline
Last seen:2 months 1 week ago
Staff
加入:2015-06-08 11:34
Hi achao1104,

Hi achao1104,

The da if there is no ongoing ble operation (advertising of connection interval etc) it wakes up every 10s. If you want to suppress this you can invoke the app_ble_ext_wakeup_on() in order to wake up from an external interrupt. In case you dont want to use this workaround you can change the value in the CFG_MAX_SLEEP_DURATION_EXTERNAL_WAKEUP_MS definition (if you are working with the SDK5) or the value in the MAX_SLEEP_DURATION_EXTERNAL_WAKEUP definition (if you are working with the SDK3) in order to force the da to wake up in bigger intervals.

Thanks MT_dialog

cosianer
Offline
Last seen:4 years 5 months ago
加入:2015-05-19 09:11
Hi Dialog team,

Hi Dialog team,

first a good and healthy now yoear to you all!

I have read this dialogue casually ... some weeks ago I have asked in the forum, why the DA 14580 wakes up every 10 sec, because we wanted to optimize the current consumption and so we have measured it and we have seen, that there is every 10 sec a current of about 650 µA, duration of 6,5 ms. I asked, if this behavior is known? Now, I understand this .... Do you know, why the DA has this behavior? How big can I make this interval, where the system is still working properly?

Thanks

MT_dialog
Offline
Last seen:2 months 1 week ago
Staff
加入:2015-06-08 11:34
Hi cosianer,

Hi cosianer,

Should be a left over from RW when the da operates over HCI. The value is loaded in a 27bit register so the maximum value is up to 0x7FFFFFF .

Thanks MT_dialog

oren
Offline
Last seen:1 year 7 months ago
Expert
加入:2014-06-28 22:03
Hi,

Hi,
We are using SDK5.0.4 and we tried setting the value of MAX_SLEEP_DURATION_EXTERNAL_WAKEUP to 0x7FFF instead of MS_TO_SLOTS_CONVERT(CFG_MAX_SLEEP_DURATION_EXTERNAL_WAKEUP_MS) - this should give a sleep of ~20.5 seconds.
Our module wakes up every ~13.4 seconds.
We also tried using even higher values like 0x7FFFFFF.

Did you try using 0x7FFFFFF and check how often the module wakes up?
Are there any other internal timers that might wake up the module when it goes to a long sleep?
Are there any compilation flags that we should try to prevent wakeups that are not from ke_timer_set? Maybe change something in da1458x_stack_config.h like CFG_GTL?
Can you please check that changing changing MAX_SLEEP_DURATION_EXTERNAL_WAKEUP to 0x7FFFFFF actually gives a continuous long deep sleep? For example, in a peripheral program that advertises for 1 minute, sleeps for 1 minute, advertises for 1 minute, sleeps for 1 minute (repeatedly) - there should not be any power-consuming wakeups in the 1 minute sleeps.

Regards,
Oren

MT_dialog
Offline
Last seen:2 months 1 week ago
Staff
加入:2015-06-08 11:34
Hi oren,

Hi oren,

On the pro kit and with the ble_app_sleepmode project in extended sleep and tested the value that you ve posted 0x7fff, the module woke up after aproximatelly 20.5 seconds, also tested the value 0x7FFFFFF which is the maximum value that the register can take, but it seems like that the SDK is processing (probably incrementing) the value before applying it to the register itself so the device woke up in a few milliseconds ( i assume that the value wraps around and the sleep value i actually really small), in order to sleep for a total of approximatelly 23 hours the value i ve placed is 0x7FFFFFC which as far as i could test it, it sleept for over 2 hours (i is how long i could run the test). As far as i know there is no other timer or value that can affect the waking up time of the device. If on your device by changing the MAX_SLEEP_DURATION_EXTERNAL_WAKEUP the periodic interval stays un-affected to ~13.4 seconds, then as far as i can tell something else is waking up your device.

Thanks MT_dialog