Apalis imx8 software shutdown

Hello everyone,

I have a question regarding the power on/off control on the ixora carrier board.

I did some tests and measurement on IC3 and IC4 (see screenshot). when powering the system ON with the power on button everything is working an booting fine, same when powering the system OFF with the button.
When doing a software reboot in linux ($ reboot) I can see a small drop of 10ms on POWER_ENABLE_MOCI and a drop of 6sec on RESET_MOCI. And here is my first question.

with RESET_MOCI going down for such a long time, it should switch off IC4. but this does nothing to IC3 KILL# because of the pull-up resistor. but when RESET_MOCI is coming back up again, IC4 is switch on again but there is the same voltage on IC4-A and IC4-Y so that’s weird. (So here, the software reset works fine)

Secondly, when I do a software shutdown on linux ($ shutdown now) the 5V_SW and 3.3V_SW are turning off because POWER_ENABLE_MOCI is coming down. But, as you can see, IC4-A and IC4-Y are powered by 3.3V wich is still alive at the moment. RESET_MOCI is down. But as explained earlier, IC3-KILL# is not coming down because of 3.3V. So here is the problem, the Apalis module is still powered by the 3.3V too. And so, to re-boot the system, I have to press twice on the power on button, once to kill PWR_EN# and once to power on the system.

I have think of a solution to that and I would like to know if that is feasable. Firstly, I would use POWER_ENABLE_MOCI instead of RESET_MOCI on IC4_OE (my only concern is that POWER_ENABLE_MOCI comes down for 10ms when rebooting and I don’t know if this would kill the power supply). Secondly, I would use a pull-down instead of a pull-up on IC4-Y, and remove the pull-up on IC4-A and directly put IC4-A to 3.3V

So I hope I explained my problem well and that you can advise me.


PS: All of the testing and behavior explained here are done on the ixora carrier board and the push button controller schematic comes from the ixora schematics : Ixora Carrier Board | Toradex Developer Center

Hello Romain,

If you want to use the Force OFF# function. meaning that the power to the module is shut done by triggering the Kill# input of the push-button controller you need to do this with external input to the pin-header X5. (FORCE_OFF#)
The KILL# signal should only go low if you pull the FORCE_OFF# on pinheader X5 low. The IC4 is a tri-state buffer. That means that if CE is LOW the output of Y will be high Ipedance. And if OE is High A=Y.
So without pulling FORCE_OFF# LOW you should never see THe KILL# signal going low.

In the following article it is explained how to enable a GPIO PIN for that purpose.
please read this: (GPIO POWER OFF) GPIO (Linux) | Toradex Developer Center

Hi matthias, thanks for your answer

But what about the fact that we have to press twice on the power button to re-boot the module after a software shutdown?

And isn’t the power_enable_moci the same as a gpio power off? Can we just route power_enable_moci on the force_off input?

The power_enable_MOCI# is to power on the voltage rails for external peripherals. So the idea is to prevent back feeding from external peripherals into the SOM before it is initialized.
So therefore the power to external devices is cut off until the Som has powered up all its internal rails. The SOC inside the module has why more voltage rails than the SOM VCC that is coming from the outside. in the IXORA case, the SOM power is 3.3V. If the SOM gets the PMIC on the module will start generating the different core voltages and voltages for the Memory and RAM. One of the last voltages switched on is the internal 3.3 volts for the I/O ports of the NXP SOC. During this time it should be prevented that those external peripherals are feeding into the SOM with e.g. with a high signal on a GPIO pin. This is why there is a 3.3_SW (SW=switched) that is switched by the “Power_Enable_MOCI” signal.
But the main 3.3V for the SOM stays untouched by this.