AE3 电池扩展板

AE3 电池扩展板可通过多种电源为 OpenMV AE3 供电——5–36 V、一节 3.7 V 锂聚合物电池,或为 3 节串联的碱性电池提供 1.8–5.5 V——并在 P0P3 上增加了一个 SPI microSD 卡插槽。所有三路电源输入都接到 JST 端子上;扩展板随附一个用于宽范围输入的 JST 转猪尾线适配器和一个用于碱性电池输入的 JST 转 DC 圆头插孔适配器。

AE3 电池扩展板

完整的数据手册、照片和订购信息请参阅 AE3 电池扩展板产品页面

亮点

  • HV PWR —— 5–36 V,可耐受 −36 V 的反向电压。以 3.3 V(最高 600 mA)为 AE3 供电。

  • BAT —— 3.7 V 单节锂聚合物电池。以 3.0 V(最高 800 mA)为 AE3 供电。只要扩展板上有 3.3 V 可用——由 USB、HV PWR 或通过 Qwiic 连接器馈入 AE3 的 3.3 V 提供——板载充电器便以 100 mA 充电电流 运行。一个 6.25 小时的安全定时器将支持的电池容量上限设为 625 mAh

  • LV PWR —— 1.8–5.5 V,用于 3 节串联的碱性电池,可耐受 −5.5 V 的反向电压。以 3.0 V(最高 800 mA)为 AE3 供电。

  • microSD 卡插槽 通过 SPI 接到 P0P3,并在 P11 上配有软件控制的电源开关。

备注

扩展板随附一个外壳,可将 AE3 牢固地固定在连接器上。四个边角处的 M1.6 安装孔让你能够将扩展板螺接到机壳或夹具上。

小技巧

使用 电池寿命估算器 来推算在给定的有源/深度睡眠占空比下,通过此扩展板供电的 AE3 在给定电池上能运行多久。

引脚参考

引脚

功能

P0

microSD SPI MOSI

P1

microSD SPI MISO

P2

microSD SPI SCLK

P3

microSD SPI CS

P6

充电器 电源正常(当扩展板上存在 3.3 V 时为低电平——来自 USB、HV PWR 或 Qwiic 3.3 V;只有在此为低电平时才会进行充电)

P7

充电器 充电中(在锂聚合物电池正在充电时为低电平)

P8

锂聚合物电池电压监测——扩展板在该引脚处将 0–5 V 分压到 0–1.8 V

P9

LV 输入电压监测——扩展板在该引脚处将 0–6 V 分压到 0–1.8 V

P11

microSD 电源使能(拉高以为卡供电)

HV PWR 输入

JST 端子上的 5–36 V(可耐受反向电压;随附 JST 转猪尾线适配器)

BAT 输入

JST 端子上的 3.7 V 单节锂聚合物电池

LV PWR 输入

JST 端子上的 1.8–5.5 V,用于 3 节串联的碱性电池(可耐受反向电压;随附 JST 转 DC 圆头插孔适配器)

3.3V 电源轨

为 AE3 和扩展板的板载电子器件供电

GND 电源轨

公共地

用法

将 AE3 插到扩展板上,并连接三路电源输入中的任意一路——扩展板会在内部对各电源轨进行或运算,并从存在的电源中为 AE3 供电。

备注

在仅连接 BAT(没有 USB、HV PWR 或 Qwiic 3.3 V 馈入扩展板)时,AE3 以 3.0 V 由锂聚合物电池供电,充电器处于空闲状态,两个状态 LED 均熄灭。

microSD 插槽通过 machine.SPI 和标准 sdcard 驱动暴露在 AE3 的 SPI 总线上。将 P11 拉高以为卡供电,然后将块设备封装进 VfsFat 并将其挂载到 /sdcard:

import os
import machine
import sdcard

machine.Pin("P11", machine.Pin.OUT, value=1)  # enable card power

spi = machine.SPI(0)
cs  = machine.Pin("P3", machine.Pin.OUT, value=1)

sd  = sdcard.SDCard(spi, cs, baudrate=20_000_000)
os.mount(os.VfsFat(sd), "/sdcard")
print(os.listdir("/sdcard"))

通过读取充电器的两个状态引脚来监视其状态。一旦扩展板上存在 3.3 V——来自 USB、HV PWR 或通过 AE3 的 Qwiic 馈回的 3.3 V——P6(电源正常)便变为低电平,这也是允许充电器运行的时刻。在锂聚合物电池实际充电时,P7(充电中)变为低电平。这两个引脚还驱动板载状态 LED——P6 点亮一个 绿色 LED,P7 点亮一个 红色 LED:

from machine import Pin

pg  = Pin("P6", Pin.IN, Pin.PULL_UP)
chg = Pin("P7", Pin.IN, Pin.PULL_UP)

if not pg.value():
    print("Charger powered")
    if not chg.value():
        print("Battery charging")
    else:
        print("Battery full or no battery")
else:
    print("Running off battery only")

P8P9 上监测锂聚合物电池电压和 LV 输入电压。扩展板将每路电源分压到 AE3 的 1.8 V ADC 范围内,因此请按输入的满量程范围将读数按比例放大回去:

from machine import ADC
import time

lipo = ADC("P8")    # 0–5 V at the input
lv   = ADC("P9")    # 0–6 V at the input

while True:
    # 0–1.8 V at the pin → 0–5 V on the battery rail
    vbat = lipo.read_u16() * 1.8 / 65535 * (5.0 / 1.8)
    # 0–1.8 V at the pin → 0–6 V on the LV rail
    vlv  = lv.read_u16()  * 1.8 / 65535 * (6.0 / 1.8)
    print("Li‑Po:", vbat, "V  LV:", vlv, "V")
    time.sleep_ms(500)