SOM turning off after about 6 seconds

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.

Did you like my answer? :+1: :-1:


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

  1. 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).
  2. 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.
  3. 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.
  4. 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.