BC660K QuecOpen, Correct way to use EINT and PSM_EINT triggered by same input

I am using EINT to detect an input change (high to low).
Same input change must also put BC660K out of SLEEP.

When the input is activated, while BC660K is sleeping, the EINT interrupt handler is not triggered consistently.
Some times it triggers. Other times it does not.

When module is not sleeping, the EINT works all the time.

I think it might be due to the fact, that EINT is triggered before the BC660K is back from sleep.

What is the right way to wakeup the BC660K from sleep AND react on an input?

Please provide your screenshot, I don’t understand what you mean


I just want module to wakeup from light sleep and detect a pressed button.
The software needs to be able to react on the pressed button.


What I see is, that button is able to wakeup module, but falling edge interrupt of gpio does not work.

Therefore the question:
What is the correct way of waking up from light sleep and detecting a pressed button?

BR Martin

Is the design of the GPIO and PSM_EINT pins referred to our hardware manual?

I do not see any recommended way of waking up the modul from light sleep AND do something…

In Deep Sleep I do understand, that you can get the wakeup reason via the “Ql_GetWakeUpReason”, when woken up by PSM_ENIT0.

But how do you start processing YOUR OWN code, when module is woken up by PSM_ENIT0, in light sleep?

Lets just use the QuecOpen Reference design:

The PSM_EINT0 is controlled by a button (because normally you would not have a MCU in QuecOpen “low cost” design).

I would setup everything for light sleep, and then wait for any new event on the main thread event queue. And when module is woken up by PSM_EINT0, a new event should be put on the main thread event queue.

I hope you understand my description… I do not know how to make it more clear.