Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
8 years, 8 months ago.
Microcontroller is reseting when returning from sleep
Hi,
I am working with some mDots. With this mDot_LoRa_Sleep_Example program some of them seem like the microcontroller is reseting when it returns from sleep state. Does anybody have this behaviour or issue?
Thank you and regards,
Gilen
Question relating to:
2 Answers
8 years, 8 months ago.
The Cortex M4 has 3 sleep modes (SLEEP, STOP and STAND-BY).
The current mDot firmware will put the device into the lowest sleep mode, STAND-BY. When STAND-BY returns it is much like a reset as the RAM has been lost.
In our next firmware we will support the STOP mode that will preserve RAM.
Thats good to know Jason. Do you have a timescale for when the next release of the library will be available?
posted by 15 Mar 2016OK jason. So the actual library only supports STAND-BY mode. In my last comment I have made a mistake, the old hardware version is reseting too. I will wait to the new libmdot version. In the meantime, my application will have to function without sleep. Thank you for the information. Gilen
posted by 15 Mar 20168 years, 8 months ago.
I believe this is the normal behaviour as I have not seen any other way the mDot wakes up. I'm not sure if this is because the low power mode does not preserve RAM so has to perform a full restart on wakeup.
Andrew
It can´t be the normal operation. The cortex M4 preserves RAM in sleep. I have a mDot unit of previous hardware version that doesn't reset when it is standalone, but this unit resets when it is inserted in MTUDK2-ST starter kit. The new hardware version mDots always reset returning from sleep. I think that the difference in hardware is a new regulator or LDO, because the old one had excesive current consumption. Is this a hardware issue or a libmdot bug? Thank you and regards, Gilen
posted by 15 Mar 2016
I guess I have found a work around for that one. You can use deepsleep() function available on mbed that puts the controller to sleep but keeps the peripheral clocks running.
posted by Abhimanyu Dhone 06 Apr 2016