PMC - 电源控制模块
V821 芯片内置 PMC(Power Control),用于系统电源控制,包括:
- DCDC/LDO/Switch等电源的开关、参数配置;
- 内部各独立供电电路的开启关闭;
- 晶振时钟源相关控制。
- 支持上电、下电、休眠、唤醒等使用场景,每个使用场景都有各自的触发源触发,并由 PowerControl 配合执行后续的系列开关动作。
PMC 的动作基本都由硬件自动完成,预留部分可配置参数由软件配置。
PL 组 IO 功能
PL 组的 IO 均可作为 Wake UP IO 使用,作为独立唤醒 IO,其中 PL0,PL1,PL2 复用 PMC 功能,当启用 PMC 功能时,GPIO 和 Wake UP IO 功能不可使用、PL0 默认为 PMC_EN0,除非有外部供电模块,一般不建议将 PL0 作为 GPIO,而是作为电源使能引脚使用。PL 口 IO 也支持 VSYS 掉电后的 IO 电平保持,保留输出状态。PL 组 GPIO 内部结构如下图所示:

PMC 硬件功能配置
一般来说,PMC IO 控制的对应关系对应下表所示:
| 方案 | PMC_EN0/PL0 | PMC_EN1/PL1 | PMC_EN2/PL2 | PL6 | 休眠唤醒支持的模式 |
|---|---|---|---|---|---|
| 常电/CDR方案 | PMC | GPIO | GPIO | GPIO | 支持 poweroff 关机模式 |
| 电池方案,不使用调压功能 | PMC | PMC | GPIO | GPIO | 支持 super standby, ultra standby, poweroff 模式 |
| 电池方案,使用调压功能 | PMC | PMC | PMC | GPIO | 支持 super standby, ultra standby, poweroff 模式,支持动态调压 |
| 电池方案,不使用调压功能,AOV | PMC | PMC | GPIO | PMC | 支持 super standby, ultra standby, poweroff 模式,支持独立控制 DRAM 电源 |
| 电池方案,使用调压功能,AOV | PMC | PMC | PMC | PMC | 支持 super standby, ultra standby, poweroff 模式,支持独立控制 DRAM 电源,支持动态调压 |
注意
PMC_EN0/PL0 默认作为 PMC 功能,这个引脚在硬件设计时请尽量不用做普通 IO
:::
常电 IPC 方案
注意芯片型号,常电IPC方案使用的芯片型号是 V821M2
:::
- VDD-SYS晚于3.3V上电
- PMC_EN0/PL0:控制 VDD-SYS 上电时序,建议不作为 GPIO 使用(限制较多)
- PMC_EN0 为常供,只有执行
poweroff才会下电
- PMC_EN0 为常供,只有执行
- PL1~PL7 用户可作为 GPIO 使用

CDR 方案
注意芯片型号,CDR 方案使用的芯片型号是 V521D2-WXX
:::
- PMC_EN0/PL0:控制 VDD-SYS上电时序
- EN0 为常供,只有执行
poweroff才会下电
- EN0 为常供,只有执行
- PL1~PL7 具备唤醒/开机功能(唤醒电平只能为1.8V)
- 唤醒源可支持做ACC DET,G-INT,VBUS-DET,PWRON(需接到PL口IO上)
- 一路12V转5V DCDC+SOC三路DCDC供电(3.3V,0.92/1V,1.5V)+一路G-SENSOR LDO供电。若AHD/CMOS需1.2V则需增加一路LDO/DCDC供电
- VBAT-RTC可直接电池或者纽扣电池供电,无需外挂LDO(电池需外挂charger芯片)
- SOC 电源输入采用 MOS 管开关方式控制,关机下可断开 DCDC 输入源,避免 DCDC 漏电影响功耗
- 关机下保持VBAT-RTC 供电以及外设G-SENSOR供电其他均断电
- VBUS-DET 和 ACC 需通过隔离转换到 1.8V 接入到 PL 口 IO 实现接入唤醒/开机功能,开机后可作为普通 IO,实现 VBUS 和 ACC 状态检测
- VBAT-RTC输入电压范围 2.1~6V,单节锂电池方案,可直接接到 VBAT-RTC,实现常供 RTC 不掉电
- 纽扣电池方案,可纽扣电池直接接 VBAT-RTC,无需外挂 LDO
注意
- 当正常关机 (hibernation),VBAT-RTC 功耗 10uA 左右,若非正常关机,异常掉电状态,VBAT-RTC 功耗 40uA 左右
- 如果对非正常关机功耗要求较高,需外挂RTC芯片降低功耗
:::
电池IPC/门铃方案
注意芯片型号,电池IPC/门铃方案使用的芯片型号是 V821L2 系列的低功耗方案芯片
:::
电池IPC/门铃方案需要 4 路 DCDC,包括 3 路低静态漏电 DCDC 3.3V,0.92V/1V,1.5V + 1路普通DCDC 1.5V + 1路LDO(唤醒外设PIR等供电)+ 1路PMOS开关(3.3V非唤醒源外设/IO供电)
- DCDC1 为 RF 3.3V 供电(需低静态漏电)
- DCDC2 为 VDD-SYS 0.92V/1V 供电(需低静态漏电)
- DCDC3 为 DRAM 1.5V 供电
- DCDC4 为 RF 1.5V 供电(需低静态漏电)
- PMOS1 为 3.3V 非唤醒源外设/IO 供电
- LDO1 为唤醒源外设供电,如 PIR,Gsensor 等
- 电池为单节电池可直接接 VBAT-RTC,确保 VBAT-RTC 不掉电,若为多节电池,需额外增加降压电路,保证输入到 VBAT-RTC 在 2.1V~6V 范围内

PWR-EN0 和 EN1为硬件控制,触发唤醒源,由硬件拉高IO,EN2(PL2)为软件控制,启动时可由软件控制拉高,不需要使用可做普通IO/唤醒IO使用:
- PWR-EN0(PL0):控DCDC1-3V3(RF3.3V),DCDC4-1V5(RF1.5V),DCDC2-0V92/1V(VDD-SYS)
- PWR-EN0 为常供,只有执行
poweroff才会下电,执行echo mem > /sys/power/state不会下电 - 芯片内部各模块有独立供电开关,在 DRAM 自刷新状态下会自动关闭芯片内部各模块电源
- PWR-EN0 为常供,只有执行
- PWR-EN1(PL1):控DCDC3-1V5(VCC15-DRAM),PMOS1(非唤醒源外设和IO供电)
- PWR-EN2(PL2):做双目控制DCDC2 (VDD-SYS)在休眠下调压达到休眠降功耗的作用(若无需做调压,PL2可释放出来做普通IO使用)
工作模式与电源供电方式:
- 正常工作/唤醒状态模式:PL0,PL1,(PL2)都拉高,DCDC 均开启供电
- Wi-Fi保活模式:PL0拉高,PL1,(PL2)拉低;保持VBAT-RTC(VCC18-RTC),RF供电(3.3V和1.5V),小核供电(0.92V/1V),不掉电;其他除唤醒源外电源(PMOS+DRAM1.5V)均掉电;支持 WIFI 唤醒,IO(PL2~PL7)唤醒,RTC定时唤醒
- hibernation(关机)模式:PL0,PL1,(PL2)都拉低;只保持VBAT-RTC(VCC18-RTC)不掉电;其他电源都掉电;此模式只支持IO(PL2~PL7)唤醒,RTC定时唤醒
电源 DCDC 器件选型上,为保证休眠功耗,对应 DCDC 型号选型有特殊要求:
- 休眠保活下需常供电的 DCDC 必须选用低静态漏电的 DCDC(quiescent current 5uA)
- DCDC1-3V3 (RF3.3V) ---- 考虑 WIFI 瞬态峰值较高, 以及 MOS 管开启抽电电流影响,建议选用 1A 以上的 DCDC
- DCDC4-1V5 (RF1.5V) ---- 平均电流较小,瞬态较高,要求 DCDC 选择 500mA 以上
- DCDC2-0V92/1V (VDD-SYS) ---- 电流稳定,瞬态不会太高,0.8A 以上 DCDC 可满足
- DCDC3-1V5 (VCC15-DRAM) 休眠保活下常关,无静态漏电要求,带载选择 500mA 以上
- 对于其他唤醒外设供电要求,建议选用低静态漏电的 LDO
- DCDC 的分压电阻阻值建议选用百 K 级别以上,降低外围的静态漏电流
:::
电池 WIFI AOV 方案
注意芯片型号,电池 WIFI AOV 方案使用的芯片型号是 V821L2-WXX 低功耗方案芯片
:::
主要供电路径:
- 单节电池无需要另外加 DCDC 转换,可直接到后级 DCDC 上
- 唤醒外设中断需接到PL口IO上
- 输入源做VBUS和VBAT电源输入切换选择,对二极管选型要求最大正向电压在350mV@1A以内,反向漏电要求小于5uA
- 4 路 DCDC(3路低静态漏电DCDC 3.3V,0.92V/1V,1.5V+1路普通DCDC 1.5V)+3路LDO(1路LDO供唤醒外设PIR等和2路LDO供CMOS 1.8V和2.8V,若需1.2V需再增加1路LDO)+2路PMOS开关(3.3V非唤醒源外设/IO供电和CMOS供电)
其中电源方案如下:
- DCDC1 为 RF 3.3V 供电(需低静态漏电)
- DCDC2 为 VDD-SYS 0.92V/1V 供电(需低静态漏电)
- DCDC3 为 DRAM 1.5V 供电
- DCDC4 为 RF 1.5V 供电(需低静态漏电)
- PMOS1为 3.3V 非唤醒源外设/IO供电
- PMOS2 为 CMOS 供电 LDO 的 3.3V 输入源(LDO2~LDO4输入)
- LDO1 为唤醒源外设供电,如 PIR 等
- LDO2~LDO4 为 CMOS 独立供电 LDO 1.2V,1.8V,2.8V(通用设计,这里不体现)
- 电池为单节电池可直接接 VBAT-RTC,确保 VBAT-RTC 不掉电,若为多节电池,需额外增加降压电路,保证输入到 VBAT-RTC 在 2.1~6V 范围内
需要控制外部电源的 PMC 与 IO 如下:
- 电源上通过 PL0,PL1,PL2 和 PL6 控制,其中 PL0 和 PL1 为硬件控制,触发唤醒源,由硬件拉高 IO,PL2 和 PL6 为软件控制,启动时由软件控制拉高
- PL0(PWR-EN0):控DCDC1-3V3(RF3.3V),DCDC4-1V5(RF1.5V),DCDC2-0V92/1V(VDD-SYS)
- PWR-EN0 为常供,只有执行
poweroff才会下电,执行echo mem > /sys/power/state不会下电 - 芯片内部各模块有独立供电开关,在 DRAM 自刷新状态下会自动关闭芯片内部各模块电源
- PWR-EN0 为常供,只有执行
- PL1(PWR-EN1):控PMOS1(非唤醒源外设和IO供电)
- PL2(PWR-EN2):控制DCDC2(VDD-SYS)在休眠下调压达到休眠降功耗的作用(若无需做调压,PL2可释放出来做普通IO使用)
- PL6:控DCDC3-1V5(VCC15-DRAM),PMOS2
- PL0(PWR-EN0):控DCDC1-3V3(RF3.3V),DCDC4-1V5(RF1.5V),DCDC2-0V92/1V(VDD-SYS)
PMC 软件配置
SDK 版本注意
在 SDK 1.1 版本,仅支持配置开关 PMC 功能,在 SDK 1.2 版本支持精细化配置 PMC 各个管脚,下面请选择对应的 SDK 参考
:::
- SDK 1.2
- SDK 1.1
BOOT0 相关配置 - SDK1.2
首先确认当前方案使用的配置文件,这里以 perf2b 板级为例,查看 BoardConfig_nor.mk 和 BoardConfig.mk 中配置的 LICHEE_BOOT0_BIN_NAME,分布对应 SPI NOR 方案与 eMMC 方案下使用的 BOOT0 配置。

如果 BoardConfig_nor.mk 和 BoardConfig.mk中没有配置 LICHEE_BOOT0_BIN_NAME ,则标识方案使用默认配置,根据具体存储器件选择 mmc.mk,spinor.mk,nand.mk 即可
| 软件方案 | 存储器件 | 配置文件 |
|---|---|---|
| 普通 | SPI NOR | brandy/brandy-2.0/spl/board/sun300iw1p1/spinor.mk |
| 普通 | SPI NAND | brandy/brandy-2.0/spl/board/sun300iw1p1/nand.mk |
| 普通 | eMMC/SD NAND | brandy/brandy-2.0/spl/board/sun300iw1p1/mmc.mk |
| 快起 | SPI NOR | brandy/brandy-2.0/spl/board/sun300iw1p1/spinorfastboot.mk |
| 快起 | eMMC/SD NAND | brandy/brandy-2.0/spl/board/sun300iw1p1/mmcfastboot.mk |
前往 brandy/brandy-2.0/spl/board/sun300iw1p1 找到配置文件

这里以 spinorpmc.mk 为例,配置项如下:
CFG_SUNXI_PL_1V8=y # 配置 PL 使用 1.8V 电平
CFG_PMC_EN1_FOR_PWRCTRL=y # 配置 PMC_EN1/PL1 作为 PMC 功能
CFG_PMC_EN2_FOR_PWRCTRL=y # 配置 PMC_EN2/PL2 作为 PMC 功能
CFG_PMC_PL6_FOR_PWRCTRL=y # 配置 PL6 作为 PMC 使用控制外部电源
# CFG_PMC_PL7_FOR_PWRCTRL=y # 配置 PL7 作为 PMC 使用控制外部电源(特殊设计,一般不使用,默认注释)

另外 fes 文件夹中的配置是执行 fes 时使用的,也需要配置,否则可能会出现 fes 烧录阶段无法启动的问题

RTOS 相关配置
由于 V821 休眠唤醒需要 RTOS 参与,所以需要配置 RTOS 相关
输入 mrtos menuconfig 进入 RTOS 配置页面
System components --->
aw components --->
[*] PowerManager Support --->
[*] pmc en1 for pwrctrl # 配置 PMC EN1 启用 PMC 功能
[*] pmc en2 for pwrctrl # 配置 PMC EN2 启用 PMC 功能
[*] pmc pl6 for pwrctrl # 配置 PL6 用作 PMC 功能
[ ] pmc pl7 for pwrctrl # 配置 PL7 用作 PMC 功能(特殊设计,一般不使用)

BOOT0 相关配置 - SDK1.1
首先确认当前 方案使用的配置文件,这里以 perf2b 板级为例,查看 BoardConfig_nor.mk 和 BoardConfig.mk 中配置的 LICHEE_BOOT0_BIN_NAME,分布对应 SPI NOR 方案与 eMMC 方案下使用的 BOOT0 配置。

如果 BoardConfig_nor.mk 和 BoardConfig.mk中没有配置 LICHEE_BOOT0_BIN_NAME ,则标识方案使用默认配置,根据具体存储器件选择 mmc.mk,spinor.mk,nand.mk 即可
| 软件方案 | 存储器件 | 配置文件 |
|---|---|---|
| 普通 | SPI NOR | brandy/brandy-2.0/spl/board/sun300iw1p1/spinor.mk |
| 普通 | SPI NAND | brandy/brandy-2.0/spl/board/sun300iw1p1/nand.mk |
| 普通 | eMMC/SD NAND | brandy/brandy-2.0/spl/board/sun300iw1p1/mmc.mk |
| 快起 | SPI NOR | brandy/brandy-2.0/spl/board/sun300iw1p1/spinorfastboot.mk |
| 快起 | eMMC/SD NAND | brandy/brandy-2.0/spl/board/sun300iw1p1/mmcfastboot.mk |
前往 brandy/brandy-2.0/spl/board/sun300iw1p1 找到配置文件

这里以 spinorpmc.mk 为例,配置项如下:
CFG_PM_ENABLE_PMC=y # 启用 PMC 功能
CFG_SUNXI_PL_1V8=y # 配置 PL 使用 1.8V 电平
CFG_PM_PMC_PL6=y # 使用 PL6 控制 DRAM 供电,AOV 方案

另外 fes 文件夹中的配置是执行 fes 时使用的,也需要配置,否则可能会出现 fes 烧录阶段无法启动的问题

RTOS 相关配置
由于 V821 休眠唤醒需要 RTOS 参与,所以需要配置 RTOS 相关
输入 mrtos menuconfig 进入 RTOS 配置页面
System components --->
aw components --->
[*] PowerManager Support --->
[*] pm enable pmc # 配置启用 PMC 功能
[ ] pm pmc using PL6 GPIO as power ctl # 配置启用 PL6 作为电源控制引脚
