We have a RAK3172 module. Our desired application is read I2C register from an IC at every 100ms and process it at every 1th second.
Problem is Wakeup current and timing is too much. We have made a deep dive into STM32 source code behind to run a timer with lower layer functions, but wakeup sequence is same.
Is there any way to reduce wakeup sequence timing and current ? Because according to datasheet wake up time is in useconds range.
P.s: I can imagine Reducing the startup Frequency or a similiar method would work, but low level implementations already complicated, or we need to switch to STM32Cube which we do not extracted the swd pins from board for programming.
We put the module in sleep with api.system.sleep.all() in (LPMLVL=1).
With any kind of event (timer, pin interrupt etc) that is created with RUI3 api, modules wakes up as expected and cpu continue to process. Even if we right after put it into sleep again, there is always 25ms high current in current profile in this time.
Main target is with an interrupt (like a simple timer interrupt which increments a counter) sleep again in very short amount of time (1ms at most).
This can be done with STM32 layer but question is how we can achieve this on RUI3 layer? Since there are 4-5 abstraction layers until hal drivers and that takes really long time we dont want to dive into that.