This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Dear TI team,
I would like to know the possibility to wake up SoC from DeepSleep power mode through CAN RX?
I am using CAN Trcv TJA1043 which can provide also INH pin as high-level in STBY and Normal modes, and as low-level in Sleep mode.
INH pin is connected to PMIC, so if INH pin goes low, PMIC will turn off SoC.
Therefore waking up SoC from INH is not possible since it is edge triggered and this means PMIC will turn off SoC.
As per the below table from AM62x TRM, CAN pins are not a wakeup source in DeepSleep. Therefore I was wondering if there is an application note about this case of sleep/wakeup mechanism.
Thanks and regards,
Marwan
Hello Marwan
Could you please look into the below document.
Enabling Low Power Embedded Systems With AM62x Processors (ti.com)
Regards,
Sreenivasa
Hello Sreenivasa,
I have already looked into this white paper, still it didn't answer my questions.
Moreover, is it possible to transition from SeepSleep to Power Off based on some timers happening while being in DeepSleep?
Thanks,
Marwan
Hello Marwan
As i understand we are still evaluating the low power modes and we may have some additional documents coming.
Moreover, is it possible to transition from SeepSleep to Power Off based on some timers happening while being in DeepSleep?
Can you please elaborate your requirement and what you meant by power off?
Regards,
Sreenivasa
Hi Sreenivasa,
I am speaking from SoC power modes point of view, so the question is could the SoC while being in DeepSleep power mode have some timer that would trigger the SoC to go to PowerOff power mode? or it needs at least to be in MCU Only mode in order to do such functionality and transition to PowerOff after a timer timeout?
Thanks,
Marwan
Hello Marwan
Thanks for the inputs.
AM62x doesn’t support the transition from DeepSleep to power off. The LPM power state diagram is shown in the TRM.
Refer 6.2.4.6 Power States and Transitions
Regards,
Sreenivasa
Hello Marwan
Curious to understand the usecase, are you using any device that supports the transition from DeepSleep to power off?
Regards,
Sreenivasa
Hi Sreenivasa,
The usecase to go to sleep is for later fast startup, but if the system has been dormant for long time, it shall shutdown to reduce power drastically.
Regards,
Marwan
Hello Marwan
Thank you for the inputs.
I assume you are looking to control a power management device like a PMIC to shutdown or poweroff the SoC supplies from DeepSleep.
Regards,
Sreenivasa
Correct, but PMIC would be controlled from SoC, that's why I was asking if DeepSleep mode is capable to do that.
Thanks,
Marwan
Hello Marwan
Thank you for the inputs.
Based on my understanding and internal discussion, the SoC does not support the above stated requirement.
Regards,
Sreenivasa
Hi Marwan,
As Sreenivasa mentioned, AM62x doesn't support directly transition from DeepSleep mode to PowerOff mode. But I think there is a possible workaround: to transition DeepSleep mode to Running mode then to PowerOff mode.
When Linux needs to go to DeepSleep mode, use command "rtcwake -m mem -t <time-to-wake-up>" to put the system to DeepSleep mode. When it is resumed, Linux checks the wakeup event source, if it is RTC, it means the system has been in DeepSleep for awhile and need to shut down. Otherwise, it means the system is resumed by an external event, need to keep in running mode.
Please note that this is just a theory, it hasn't been validated, and is not supported in current processor SDK. There are at least 3 factors to consider:
- DM firmware provides an API to query the wakeup event source, see
https://downloads.ti.com/tisci/esd/latest/2_tisci_msgs/pm/lpm.html#tisci-msg-lpm-wake-reason
I believe it has been used in kernel, but kernel doesn't expose the information to user space;
- When the system is resumed by an external event, I am not sure how Linux handles the previous rtcwake command. Has RTC been gracefully cleanup up and ready for the next use?
- It is not implemented/supported in current Processor SDK, need a prototype to prove it is a solution, so it is a custom implementation on your side.