MaixCAM MaixPy 电源管理单元

更新历史
日期 版本 作者 更新内容
2024-11-08 1.0.0 916BGAI 初版文档

警告 !!!
设置错误的电压可能会损坏 MaixCAM-Pro。除非明确了解调整目的和后果,否则请勿修改 DCDC2~DCDC5ALDO1~ALDO4BLDO1~BLDO2 的电压。

简介

MaixCAM-Pro 板载了 AXP2101 电源管理单元,提供多通道电源输出、充电管理以及系统保护功能。AXP2101 支持线性充电,拥有 5DC-DC 通道和 11LDO 通道,能够满足多种电源需求。它还配备了多通道 ADC,用于实时监控电压和温度,并集成了过压、过流和过温等保护功能,确保系统的稳定性和安全性。

MaixCAM 没有板载电源管理单元,如需使用电源管理功能请自行外接。

MaixPy 中使用电源管理单元

使用 PMU 模块操作 AXP2101 设备。

示例代码:

from maix import time, app
from maix.ext_dev import pmu

p = pmu.PMU("axp2101")

# Get battery percent
print(f"Battery percent: {p.get_bat_percent()}%")

# Set the max battery charging current
p.set_bat_charging_cur(1000)
print(f"Max charging current: {p.get_bat_charging_cur()}mA")

# Set DCDC1 voltage (!!! Do not modify the voltage of other channels,
# as it may damage the device.)
old_dcdc1_voltage = p.get_vol(pmu.PowerChannel.DCDC1)
print(f"Old DCDC1 voltage: {old_dcdc1_voltage}mV")
p.set_vol(pmu.PowerChannel.DCDC1, 3000)
new_dcdc1_voltage = p.get_vol(pmu.PowerChannel.DCDC1)
print(f"New DCDC1 voltage: {new_dcdc1_voltage}mV")

# Get all channel voltages
channels = [
    pmu.PowerChannel.DCDC1, pmu.PowerChannel.DCDC2, pmu.PowerChannel.DCDC3,
    pmu.PowerChannel.DCDC4, pmu.PowerChannel.DCDC5, pmu.PowerChannel.ALDO1,
    pmu.PowerChannel.ALDO2, pmu.PowerChannel.ALDO3, pmu.PowerChannel.ALDO4,
    pmu.PowerChannel.BLDO1, pmu.PowerChannel.BLDO2
]

print("------ All channel voltages: ------")
for channel in channels:
    print(f"{channel.name}: {p.get_vol(channel)}")
print("-----------------------------------")

# Poweroff (Important! Power will be cut off immediately)
# p.poweroff()

while not app.need_exit():
    time.sleep_ms(1000)

也可以使用 AXP2101 模块对电源管理单元进行设置。使用方法和 PMU 模块类似,可以参考例程 axp2101_example.py

初始化 PMU 对象,调用 get_bat_percent() 即可获取当前电池电量。调用 set_bat_charging_cur() 可以设置最大充电电流。

调用 poweroff() 设备将立即断电。在使用前,请确保将内存中的数据同步到磁盘。

调用 set_vol()get_vol() 方法可以分别设置和读取 DC-DCLDO 通道的电压。当前支持对 AXP2101 的以下通道进行电压设置:DCDC1~DCDC5ALDO1~ALDO4BLDO1~BLDO2

警告 !!!
设置错误的电压可能会损坏 MaixCAM-Pro。除非明确了解调整目的和后果,否则请勿修改 DCDC2~DCDC5ALDO1~ALDO4BLDO1~BLDO2 的电压。若需测试,请使用 DCDC1 通道。

有关 PMU API 的详细说明请看 PMU API 文档