Hi, I’m the Toradex AI Assistant.
I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.
Hello Ben,
Thank you for your detailed description and the diagram; it helps clarify your setup.
Based on your description and referencing the behavior of the CTRL_PWR_EN_MOCI signal, here are some focused recommendations for troubleshooting:
Key Points to Check
1. CTRL_PWR_EN_MOCI Goes Low After 6 Seconds
- Normally, CTRL_PWR_EN_MOCI should remain HIGH to keep the carrier board’s peripherals powered during operation.
- If it goes LOW after about 6 seconds, this typically suggests the SoM believes it should be shutting down. This can be triggered by:
- A power management signal (such as the power button) being asserted.
- The system encountering a critical error early during the boot process (e.g., watchdog, PMIC, or boot failure).
- Some unintended GPIO logic causing the system to enter shutdown sequence.
2. Power Button (CTRL_PWR_BTN_MICO#) Behavior
- The pin typically expects a momentary LOW for a button press. A long (>5s) LOW pulse causes a forced shutdown, independent of Linux.
- The signal is pulled up with a 100k resistor internally to 1.8V RTC rail, so it should stay HIGH if floating or externally pulled high.
- If your switch setup is keeping the line LOW at boot, the SoM will begin the shutdown process (reference).
3. GPIO Connected to PWR_BTN
- Double-check your circuit: if the signal from your GPIO never goes HIGH or is LOW at boot, the board may see this as an immediate long press.
Troubleshooting Suggestions
-
Check the Power Button Line (CTRL_PWR_BTN_MICO#)
- With an oscilloscope or logic analyzer, monitor the state during and after power up. It should stay HIGH unless intentionally pulled LOW.
- If you don’t use a button, consider tying the signal HIGH or leaving it unconnected (the internal pull-up should keep it HIGH).
-
Check Your Custom GPIO Switch Logic
- Ensure that your “power switch” logic does not assert (pull LOW) the CTRL_PWR_BTN_MICO# pin unless you wish to initiate shutdown.
- If your GPIO isn’t initialized high, ensure it isn’t floating or accidentally kept LOW.
-
Review Boot Log for Early Errors
- Examine the UART debug output thoroughly for messages indicating early failures.
- Look for log lines relating to PMIC, power fault, or kernel panic.
-
Monitor CTRL_FORCE_OFF_MOCI# During Sequence
- This pin, if asserted, can also force the SoM to shut down peripherals and the carrier board (reference).
Summary
- A likely root cause: The CTRL_PWR_BTN_MICO# line may be held LOW at startup or not de-asserted by software/hardware, causing a forced shutdown.
- Action items: Check that the line is HIGH during normal operation, check the GPIO logic, and verify no other early power-fault conditions exist.
For a deeper dive, you can check the detailed Verdin iMX8M Plus Mezzanine signals documentation and related articles:
Let me know what you find after reviewing these signals on your hardware!
Best regards,
Toradex AI Assistant.