Power management
The MCA plays a key role in the power management activities of the ConnectCore 6UL module. In cooperation with the i.MX6UL processor, the MCA controls the power states of the PMIC and provides multiple wake up sources to transition between power modes. It also allocates dedicated signals to capture power events and indicate the system power state, allowing you to control external power sources and indicators.
Power modes
The module provides four different power operating modes: ON/RUN, OFF, SUSPEND, and COIN-CELL. The following figure shows the state diagram and the events to switch between states.
W4PK mode
You can configure boot mode using the mca_config_tool –boot_mode option.
If ‘boot on power’ (BOP) is chosen, the module will enter in ON state as soon as power is applied.
If ‘wait for power key’ (W4PK) is chosen, the module will wait for a PWR_IO press before entering in ON state when power is applied.
ON/RUN mode
The module enters the ON state after a power-on or system-reset event.
In this mode, the PMIC is running at full power so all voltage regulators are generating the nominal voltage for this mode. The CPU reset line is de-asserted and the processor is running at normal speed, performing DVFS if the system was configured to do so. In this state, the PWR_ON line is asserted high, indicating that the module is ON.
Note that the specific state of the regulators (on/off) and the voltage in this mode are controlled by the firmware running on the i.MX6UL processor. The PMIC starts with the default settings configured on the OTP area, but once the software takes control it applies the specific configuration implemented in the firmware.
SUSPEND mode
The suspend mode (also known as suspend-to-RAM mode) is the low-power mode that allows the module to preserve RAM content. When the module enters SUSPEND, the following actions take place:
- The processor goes into low power, disabling as much functionality as possible and keeping active only the peripherals configured to wake the system from SUSPEND.
- The DDR memory is set to self-refresh mode to preserve its contents while reducing power consumption.
- The PMIC goes into standby mode, configuring the regulators in the configured mode (on, off, with a different voltage compared to ON state).
- The MCA goes into sleep mode, keeping active the peripherals that always run in low power modes (like the RTC) and those configured to wake up the system (such as IRQs and power IO). MCA GPIOs configured as outputs also keep their value.
OFF mode
The module enters OFF mode after a power-off event. In this mode:
- The PMIC is set to the OFF state and all the voltage regulators, except VSNVS, are switched off.
- The PWR_ON line is asserted low, indicating that the module is in OFF state.
- The MCA goes into sleep mode, keeping active the peripherals that always run in low-power modes (like the RTC) and those configured to wake up the system (such as IRQs and power IO).
COIN-CELL mode
In COIN-CELL mode, the module only powers the MCA from the coin-cell battery, leaving the rest of the module power inputs switched off. In this mode, the MCA remains in sleep mode, updating the RTC and monitoring the following events:
- Tamper events that would be registered in the NVRAM memory of the MCA and would assert the Tamper output if enabled.
- Power in MCA_VIN_DET, which indicates that there is sufficient voltage to generate a power-on event.
Power IO signal/Power button
The MCA provides a signal (PWR_IO) to detect external events that trigger a transition between the different power modes described in Power modes.The pin has wake-up interrupt/event capabilities, it is active low, and it does not provide an internal pull-up.You must add an external pull-up.This signal is ideal for connecting a power button or the output of a peripheral that controls the power state of the module and its transitions. The firmware provides a configurable debounce filter to improve noise immunity and filter rebounds on push buttons. When the PWR_IO signal is asserted low, one of the following events occurs:
- If the duration of the assertion is short (time configurable by the user) the system will trigger an interrupt that, commonly, indicates the host processor that the system should enter suspend state.
- If the low-pulse duration is long enough (again, time-configurable by the user) the system triggers the power off interrupt, to tell the host processor to start a transition to OFF state.
- If the system does not enter OFF state before a configurable guard timer expires, the MCA will automatically set the OFF state unless the user explicitly cancels it by writing to the mca_cancel_pwroff entry in the sysfilesystem.
Note You must use an external pull-up resistor of 100K to VCC_MCA in this SWD_CLK/PWR_IO line.
MCA_VIN_DET signal
The on-module MCA is powered from a dedicated external power rail, VCC_MCA. As recommended in the reference designs (see Power supply architecture), this power supply is provided by an external 3.3V regulator. If the system requires system time to be kept when there is no power, you must use a coin-cell battery to power the MCA while it keeps the RTC up to date in low-power mode. The MCA uses the MCA_VIN_DET input to monitor the input voltage and automatically switch to RTC mode to keep the system time and save power. Follow the design guidelines provided in Power supply architecture to apply the proper voltage to MCA_VIN_DET when there is a coin-cell battery in the system and when there is not.
MCA_VIN_DET is a digital line, not analog. This means that the transition time between high and low values is crucial to optimize the time the system takes to switch to RTC mode. Digi recommends you ensure a fast discharge of this signal to allow a quick fall time.