SY6970 电池管理 IC
sy6970 组件允许您使用 SY6970 电池管理和充电 IC
SY6970 数据手册 与 ESPHome 配合使用。
SY6970 是一款高度集成的电池充电器和系统电源路径管理器件,适用于单节锂离子和锂聚合物电池。 它具有宽输入电压范围、可编程充电电流和电压,以及全面的安全功能。
此组件常见于 LilyGo T-Display S3 Pro。
需要在配置中设置 I²C 总线 才能使此传感器工作。
此实现灵感来自 lewisxhe/XPowersLib Arduino 库。
组件/集线器
Section titled “组件/集线器”必须在配置中定义 SY6970 组件以设置设备。以下所有平台都引用此组件。
# 示例配置条目i2c: - id: bus_a sda: GPIO5 scl: GPIO6
sy6970: id: pmu address: 0x6A enable_status_led: true input_current_limit: 1000 charge_voltage: 4200 charge_current: 500 precharge_current: 128 charge_enabled: true enable_adc: true update_interval: 1s- id (可选, ID): 手动指定用于代码生成的 ID。
- address (可选, 整数): 设备的 I²C 地址。默认为
0x6A。 - enable_status_led (可选, 布尔值): 启用或禁用 IC 上的状态 LED。默认为
true。 - input_current_limit (可选, 整数): 输入电流,单位为毫安。接受 100 到 3200 之间的值。默认为
500。 - charge_voltage (可选, 整数): 充电电压,单位为毫伏。接受 3840 到 4608 之间的值。默认为
4208。 - charge_current (可选, 整数): 充电电流,单位为毫安。接受 0 到 5056 之间的值。默认为
2048。 - precharge_current (可选, 整数): 预充电电流,单位为毫安。接受 64 到 1024 之间的值。默认为
128。 - charge_enabled (可选, 布尔值): 启用或禁用充电。默认为
true。 - enable_adc (可选, 布尔值): 启用或禁用 ADC。默认为
true。 - 来自 I²C 设备 的所有其他选项。
- update_interval (可选, 时间): 检查传感器的时间间隔。默认为
5s。
sy6970 传感器平台公开来自 SY6970 IC 的电压和电流测量值。
# 示例配置条目sensor: - platform: sy6970 sy6970_id: pmu vbus_voltage: name: "VBUS Voltage" battery_voltage: name: "Battery Voltage" system_voltage: name: "System Voltage" charge_current: name: "Charge Current" precharge_current: name: "Precharge Current"传感器配置变量
Section titled “传感器配置变量”- sy6970_id (可选, ID): SY6970 组件的 ID。默认为配置中唯一的 SY6970 组件。
- vbus_voltage (可选): VBUS (USB) 输入端的电压,单位为伏特。
- 来自 Sensor 的所有选项。
- battery_voltage (可选): 电池电压,单位为伏特。
- 来自 Sensor 的所有选项。
- system_voltage (可选): 系统电压,单位为伏特。
- 来自 Sensor 的所有选项。
- charge_current (可选): 充电电流,单位为毫安。
- 来自 Sensor 的所有选项。
- precharge_current (可选): 预充电电流,单位为毫安。
- 来自 Sensor 的所有选项。
- 来自 Sensor 的所有其他选项。
sy6970 二值传感器平台公开来自 SY6970 IC 的充电状态信息。
# 示例配置条目binary_sensor: - platform: sy6970 sy6970_id: pmu vbus_connected: name: "VBUS Connected" charging: name: "Battery Charging" charge_done: name: "Charge Done"二值传感器配置变量
Section titled “二值传感器配置变量”- sy6970_id (可选, ID): SY6970 组件的 ID。默认为配置中唯一的 SY6970 组件。
- vbus_connected (可选): 指示 VBUS (USB 电源) 是否已连接。
- 来自 Binary Sensor 的所有选项。
- charging (可选): 指示电池当前是否正在充电。
- 来自 Binary Sensor 的所有选项。
- charge_done (可选): 指示充电是否完成。
- 来自 Binary Sensor 的所有选项。
- 来自 Binary Sensor 的所有其他选项。
sy6970 文本传感器平台将来自 SY6970 IC 的状态信息以文本形式公开。
# 示例配置条目text_sensor: - platform: sy6970 sy6970_id: pmu bus_status: name: "Power Source Type" charge_status: name: "Charging Status" ntc_status: name: "Battery Temperature"文本传感器配置变量
Section titled “文本传感器配置变量”- sy6970_id (可选, ID): SY6970 组件的 ID。默认为配置中唯一的 SY6970 组件。
- bus_status (可选): 连接的电源类型。可能的值有:
No Input- 未连接电源USB SDP- USB 标准下游端口USB CDP- USB 充电下游端口USB DCP- USB 专用充电端口HVDCP- 高压专用充电端口Adapter- 专用适配器Non-Standard Adapter- 非标准适配器OTG- OTG 模式- 来自 Text Sensor 的所有选项。
- charge_status (可选): 当前充电状态。可能的值有:
Not Charging- 电池未在充电Pre-charge- 电池处于预充电阶段Fast Charge- 电池处于快充阶段Charge Done- 充电完成- 来自 Text Sensor 的所有选项。
- ntc_status (可选): 基于 NTC 热敏电阻的电池温度状态。可能的值有:
Normal- 温度在正常范围内Warm- 电池温热Cool- 电池凉爽Cold- 电池过冷Hot- 电池过热- 来自 Text Sensor 的所有选项。
- 来自 Text Sensor 的所有其他选项。
以下是 LilyGo T-Display S3 Pro v1 的完整配置示例:
# LilyGo T-Display S3 Pro 的完整配置示例i2c: - id: bus_a scan: true sda: GPIO5 scl: GPIO6
sy6970: id: pmu address: 0x6A update_interval: 1s enable_status_led: true input_current_limit: 1000 charge_voltage: 4200 charge_current: 500 precharge_current: 128 charge_enabled: true enable_adc: true
sensor: - platform: sy6970 sy6970_id: pmu vbus_voltage: name: "VBUS Voltage" battery_voltage: name: "Battery Voltage" system_voltage: name: "System Voltage" charge_current: name: "Charge Current" precharge_current: name: "Precharge Current"
text_sensor: - platform: sy6970 sy6970_id: pmu bus_status: name: "Power Source Type" charge_status: name: "Charging Status" ntc_status: name: "Battery Temperature"
binary_sensor: - platform: sy6970 sy6970_id: pmu charging: name: "Battery Charging" vbus_connected: name: "VBUS Connected" charge_done: name: "Charge Done"SY6970 提供多种可从自动化或脚本调用的配置方法:
# 用于调整充电参数的示例自动化automation: - trigger: - platform: homeassistant event: start then: - lambda: |- // 将输入电流限制设置为 1500mA id(pmu).set_input_current_limit(1500); // 将充电目标电压设置为 4200mV id(pmu).set_charge_target_voltage(4200); // 将充电电流设置为 1000mA id(pmu).set_charge_current(1000); // 启用充电 id(pmu).set_charge_enabled(true);set_input_current_limit(uint16_t milliamps)- 设置输入电流限制(100-3200mA,步进 50mA)set_charge_target_voltage(uint16_t millivolts)- 设置目标充电电压(3840-4608mV,步进 16mV)set_charge_current(uint16_t milliamps)- 设置快充电流(0-5056mA,步进 64mA)set_precharge_current(uint16_t milliamps)- 设置预充电电流(64-1024mA,步进 64mA)set_charge_enabled(bool enabled)- 设置电池充电启用/禁用set_led_enabled(bool enabled)- 设置状态 LED 启用/禁用set_enable_adc_measure(bool enabled)- 启用 ADC 测量
SY6970 是一款 I²C 控制的电池管理 IC,具有以下特性:
- 单节锂离子/锂聚合物电池充电器
- 宽输入电压范围:4.5V 至 14V
- 可编程充电电流高达 5A
- 可编程充电电压高达 4.608V
- 通过 NTC 热敏电阻实现电池过温保护
- 自动电源路径管理
- 内置 ADC 用于电压和电流监测
- 状态 LED 输出
该组件直接实现 SY6970 寄存器协议:
- REG_0B: 总线和充电状态(位 7:5 为总线类型,位 4:3 为充电状态)
- REG_0E: 电池电压(基准 2304mV,步进 20mV)
- REG_11: VBUS 电压(基准 2600mV,步进 100mV)
- REG_12: 充电电流(步进 50mA)
- REG_00-07: 用于电流限制、充电参数和安全定时器的配置寄存器