6 posts / 0 new
Last post
aley_i
Offline
Last seen:3 years 8 months ago
加入:2015-06-25 09:58
extended Sleep mode

Hi I'm evaluating the DSPS on the PAN1740 module on a USB dongle, and everything work fine as long as I have disabled the extended sleep and flow control.

However I'm trying to understand how extended sleep works, it seems there is no systick timer which wakes up the cor periodically, once a processor goes into sleep after calling GLOBAL_INT_STOP(); how is it meant to wake up?? all interrupts are disabled.

My second question is it seems that after enabling extended sleep mode the DA14580 is stuck in this condition:

while ((GetWord16(SYS_STAT_REG) & DBG_IS_UP) == DBG_IS_UP) {};

which according to the datasheet means: "Indicates that PD_DBG is functional" what exactly is PD_DBG?

Thanks in advance.

Device:
MT_dialog
Offline
Last seen:2 months 3 weeks ago
Staff
加入:2015-06-08 11:34
Hi aley_i,

Hi aley_i,

After the GLOBAL_INT_STOP the app_asynch_sleep_proc is called, in the function the device checks if there is some ongoing activity in the UART and if there is it cancels sleep else it falls into sleep and closes all the peripherals, then it re-enables the interrupts with GLOBAL_INT_START() and waits for the interrupt in order to wake up.

When the sleep mode is enabled you can use the debbuging in all the examples, the PD_DBG is the power domain that supplies the debug part of the ARM cortex M0.

Thanks MT_dialog

aley_i
Offline
Last seen:3 years 8 months ago
加入:2015-06-25 09:58
Hi MT_Dialog,

Hi MT_Dialog,
Thanks for your reply.

If you disable all peripherals and Interrupts before calling WFI(); ( wait for interrupt ) , how would the processor wake up?

Also does the KE_TIMER task use a hardware timer or is it a counter based on systick, because it seems KE_TIMER can't wake up the processor from extended sleep mode.

You see I'm trying to create a system where the cortexM0 remains in extended sleep most of the time unless an external interrupted caused by a master processor wakes it and it starts advertising again.

Thanks

MT_dialog
Offline
Last seen:2 months 3 weeks ago
Staff
加入:2015-06-08 11:34
Hi aley_i,

Hi aley_i,

Disabling the interrupts means that the ISR isn't executed and the interrupts are pending, after the WFI() if theres a pending interrupt the processor continues execution, re-enables the interrupts and procceds. The processor then can be woken up by a BLE interrupt or by an external interrupt. No, ke_timer is a software timer and its not based on systick but based the a BLE clock. After you set the BLE timer he is able to wake up the system in the specified time. If you want to wake up be an external interrupt you should use the wkupct_quadec driver. You can set your da in permanent sleep with out any BLE activity and an external interrupt will wake up the system. The proximity reporter has this kind of function, after a few minutes of inactivity falls in permanent sleep and wakes up by the push of a button.

Thanks MT_dialog

sonacro
Offline
Last seen:2 years 8 months ago
加入:2018-08-23 09:19
hi dialog

hi dialog
we are developed some product.
we have power comsumption problem. but we can't find during 4months.
it was launching now day but power was waster some where.
我们想知道我s the reason of waste 760uA battery every 10sec. in sleep mode.
we use cr2025 coin battery
pls help us.
thanks

Attachment:
PM_Dialog
Offline
Last seen:2天21小时前
Staff
加入:2018-02-08 11:03
Hi sonacro,

Hi sonacro,

Sorry but your question is not related with current thread. Could you please create a new forum thread with your question? I will answer you in your new forum thread. If you are not aware of how you can create a new forum thread, please let me know and I will provide you some proper steps.

Thanks, PM_Dialog