-
Notifications
You must be signed in to change notification settings - Fork 0
Development Workflows RTC Power Optimization Strategy
This document outlines the Real-Time Clock (RTC) power optimization strategy implemented for the i.MX93 E-Ink board to achieve the target 5-year battery life.
| RTC Component | Power Consumption | Usage | Datasheet Verified |
|---|---|---|---|
| Internal i.MX93 RTC | ~100µA | ❌ DISABLED (too high) | ✅ User specification |
| External PCF2131 RTC | 83-104nA @ 3.3V | ✅ PRIMARY (1,205x more efficient) | ✅ Datasheet confirmed |
| MCXC143VFM PMU RTC | Always powered | ✅ WAKE SCHEDULING | ✅ Hardware specification |
Actual PCF2131 power consumption is 83-104nA @ 3.3V, which is significantly better than the original 600nA specification! This provides a 1,205x improvement over the internal i.MX93 RTC.
- I2C Address: 0x53 on LPI2C3
- Communication: GPIO_IO28 (SDA), GPIO_IO29 (SCL)
-
Wake Sources:
- INTA# → GPIO4_IO22 (MX93_PAD_ENET2_RX_CTL) - Wake i.MX93 from sleep
- INTB# → PTC5/LLWU_P9 (MCXC143VFM) - Wake PMU from low power
- Power: VBAT battery backup for continuous operation
- Location: Internal to PMU microcontroller
- Power: Always powered (part of PMU)
- Purpose: Wake scheduling and time synchronization backup
- i.MX93 uses PCF2131 as primary RTC source
- Always accurate time even when i.MX93 is powered down
- 600nA power consumption enables 5-year battery operation
- When i.MX93 powers up, it reads accurate time from PCF2131
- Periodically syncs time with PMU internal RTC
- Ensures PMU has accurate time for wake scheduling
- i.MX93 programs wake schedules into PMU before sleep
- PMU can use either:
- Internal RTC for wake timing
- PCF2131 INTB# interrupt for precise wake events
- Enables complete i.MX93 power shutdown
- Active Mode: i.MX93 + PCF2131 + PMU all active
- Sleep Mode: i.MX93 suspended, PCF2131 + PMU maintain time
- Deep Sleep: i.MX93 powered off, PCF2131 + PMU maintain time/wake
- Ultra Deep: Complete system off except PCF2131 VBAT backup
&lpi2c3 {
pcf2131: rtc@53 {
compatible = "nxp,pcf2131";
reg = <0x53>;
interrupt-parent = <&gpio4>;
interrupts = <22 IRQ_TYPE_LEVEL_LOW>; /* GPIO4_IO22 - INTA# */
interrupt-names = "alarm";
wakeup-source; /* Enable wake capability */
};
};
# Primary RTC: PCF2131 (600nA)
CONFIG_RTC_DRV_PCF2127=y # PCF2131 support
CONFIG_RTC_HCTOSYS=y # Use as system time source
CONFIG_RTC_HCTOSYS_DEVICE="rtc0" # PCF2131 as primary
# Disable high-power internal RTCs (Save ~100µA)
# CONFIG_RTC_DRV_SNVS is not set # Disable SNVS RTC
# CONFIG_RTC_DRV_BBNSM is not set # Disable Battery-Backed RTC
# CONFIG_RTC_DRV_IMX_SC is not set # Disable System Controller RTC
# CONFIG_RTC_DRV_IMX_RPMSG is not set # Disable RPMSG RTCPower Reduction: 100µA → 83nA = 1,205x improvement!
Annual Energy Savings:
- Old: 100µA × 24h × 365d = 876 mAh/year
- New: 0.083µA × 24h × 365d = 0.73 mAh/year
- Savings: 875.27 mAh/year
With 40Ah battery:
- Old RTC only: ~45 years (unrealistic due to other consumption)
- New RTC only: ~54,795 years (theoretical maximum)
The PCF2131 supports multiple power management modes via PWRMNG[2:0] bits:
| Mode | PWRMNG[2:0] | Description | Power Impact |
|---|---|---|---|
| Standard | 000 | Default mode with VDD monitoring | Higher power |
| Direct Switching | 011 | No VDD/Vth monitoring | LOWER POWER ✅ |
Recommendation: Use Direct Switching Mode (011) for minimum power consumption.
The PCF2131 temperature compensation can be disabled for ultra-low power:
| Setting | TC_DIS | Accuracy | Power | Recommendation |
|---|---|---|---|---|
| Enabled | 0 | ±1ppm | Higher | Default |
| Disabled | 1 | ±3ppm | ULTRA-LOW ✅ | For battery life |
Trade-off Analysis: ±3ppm accuracy is acceptable for E-Ink display timing requirements while providing additional power savings.
Current consumption varies with VBAT voltage:
| VBAT Voltage | Current Consumption | Notes |
|---|---|---|
| 1.2V | 107nA | Ultra-low voltage |
| 3.3V | 83-104nA | ✅ Optimal for our design |
| 5.5V | 91nA | Higher voltage |
Our Configuration: 3.3V VBAT provides the lowest current consumption at 83-104nA.
- Boot: PCF2131 provides accurate time immediately
- Runtime: System uses PCF2131 as primary time source
- Sync: Periodic sync with PMU internal RTC
- Sleep: PCF2131 maintains accurate time during power-down
- Schedule: Application sets next wake time
- Program PMU: i.MX93 sends wake schedule to PMU
- Sleep: i.MX93 enters sleep/power-down
- Wake: PMU or PCF2131 wakes i.MX93 at scheduled time
- PCF2131 Failure: Fall back to PMU internal RTC
- I2C Failure: Retry communication, log errors
- Power Loss: VBAT backup maintains PCF2131 operation
- Time Drift: Periodic synchronization corrects drift
- 166x reduction in RTC power consumption
- ~100µA savings enables 5-year battery life
- Complete i.MX93 power-down possible while maintaining time
- Battery backup ensures time is never lost
- Dual wake sources (PMU + PCF2131) provide redundancy
- Hardware timekeeping independent of software failures
- Programmable wake schedules for optimal power management
- Multiple power modes from active to ultra-deep sleep
- Time synchronization between i.MX93 and PMU
- Verify 600nA consumption with PCF2131 only
- Confirm ~100µA savings vs internal RTC
- Validate complete i.MX93 power-down capability
- Time accuracy over extended periods
- Wake functionality from various sleep states
- I2C communication reliability
- Battery backup operation
- PMU communication and synchronization
- Application-level wake scheduling
- System recovery from deep sleep states
- Error handling and fallback scenarios
The PCF2131-based RTC architecture provides a 166x improvement in RTC power consumption, enabling the target 5-year battery life for the i.MX93 E-Ink board. The combination of external low-power RTC, PMU internal RTC, and sophisticated wake scheduling creates a robust, power-efficient timekeeping system that supports complete i.MX93 power shutdown while maintaining accurate time and wake capability.