We are developing a mission critical board based on a Freescale Kinetis KL46Z.
It is battery powered so the power consumption should be as low as possible, that is overall less than 100uA.
The software environment is CodeWarrior 10.6 with PE and MQXLite 1.1.1.
The application is not simple enough in order to allow to wake up just by means of a reset, but we need to wake up also by interrupts like INT_LLW and INT_LPTimer.
The application should wake up every 125 milliseconds and handle also a serial protocol on two UARTs.
The idea was to have two clock configurations, one for normal RUN where to use all devices as the UARTs, and one to STOP in VLPS (or other mode).
The second configuration for low power is entered in the IDLE of MQXLite, and it should exit for any interrupt like INT_LLW and INT_LPTimer.
The PE has generated the following functions:
For entering the VLPS mode, we call them in the same order as above in the IDLE task.
Hereafter the problems:
- it doesn't wake up on INT_LPTimer interrupt, but just for INT_LLW
- with or without Cpu_SetClockConfiguration(), the consuption is exactly the same, in other words the normal STOP and the VLPS seems to be identical (please note we set to Auto the "VLP mode entry" in Clock configuration 1)
- is it strictly necessary to use MQX full in order to work with the low power features?
- is it possible to have what we want, that is an average consuption less than 100uA / 150uA with that MCU?
What we are doing wrong or we should do?
Thanks a lot in advance.