wangshihao 4afd7ea52b add: 提交Air8000的aircharge代码,同时删去扩展库中的exchg.lua vor 3 Monaten
..
aircharge.lua 4afd7ea52b add: 提交Air8000的aircharge代码,同时删去扩展库中的exchg.lua vor 3 Monaten
exchg.lua 4afd7ea52b add: 提交Air8000的aircharge代码,同时删去扩展库中的exchg.lua vor 3 Monaten
main.lua 4afd7ea52b add: 提交Air8000的aircharge代码,同时删去扩展库中的exchg.lua vor 3 Monaten
readme.md 4afd7ea52b add: 提交Air8000的aircharge代码,同时删去扩展库中的exchg.lua vor 3 Monaten

readme.md

功能模块介绍

1、main.lua:主程序入口,负责初始化系统环境;

2、aircharge.lua:电池充电管理模块,演示内置充电ic的Air8000系列的电池充电管理功能;

3、exchg.lua:exchg扩展库,提供电池充电管理功能的扩展接口;

演示功能概述

1、初始化YHM2712充电IC

2、配置电池参数

3、注册事件回调

4、处理充电状态变化

历史背景:

本demo原本是专为内置充电IC的Air8000/8000G/8000XB/8000GB所设计,但是Air8000系列内置充电IC会存在以下问题,故含有充电管理的型号已不再推荐:

1、内置的充电管理芯片,不仅只负责充电,也负责供电路径管理、供电短路保护等;

2、当大家使用的不是电池,而是由诸如充电器等类似电源供电时,如电路连接不当,非常容易造成给DCDC充电的效果,进而形成VBAT供电的混乱;

3、同时,如果快速的下电和上电,内置的充电管理芯片会根据电压的快速跌落而判断电源短路,继而把VBAT供电电路断开,造成的后果就是不能开机、无法下载、电脑无法识别USB等,本质都是充电管理芯片的主动保护造成的;

4、出现充电管理芯片的短路保护之后,一般要过一段时间等板子上电容的余电放光后,也就是充电管理芯片的保护功能失效后再上电开机,或者通过插入充电器(充电器接模组VCHG管脚的前提之下)来退出短路保护;

5、即便是电池供电,如果系统设计上增加了类似于拨动开关一类的上下电的复位设计,在含有充电管理的这些型号上,也需要在断电一段时间后(取决于板载电容的大小,电容越大,余电放电越慢,充电IC的保护作用就越长)再上电,否则仍然会有长时间无法开机的风险(快速的下电和上电,根据实测,大家在2分钟左右会恢复正常开机);

适用场景:

本软件模块旨在对 Air8000 系列 已内置的 YHM2712 充电管理IC 进行功能管理与状态监控。

主要应用场景为标准的 “电池供电 + 需要通过VCHG引脚进行充电” 的应用。在此场景下,本模块提供以下核心功能:

1、电池充电管理:用于管理Air8000系列内置的YHM2712充电IC,包括配置电池参数,注册事件回调,处理充电状态变化。

2、电池过放保护:当电池电压快速下降到1V以下时,充电IC会触发过放保护,切断VBAT到系统内部供电的电路,防止电池过放。

3、电池充电完成检测:充电IC会在电池充电完成后触发事件,用于检测充电是否完成。

4、电池电压测量:充电IC可以测量电池电压,用于实时监控电池状态。

更详细的Air8000系列特别说明,请查看:https://docs.openluat.com/air8000/product/notice/

演示硬件环境

image

1、Air8000开发板一块 + 可充电锂电池一块:

2、TYPE-C USB数据线一根,Air8000开发板和数据线的硬件接线方式为:

  • Air8000开发板通过TYPE-C USB口供电;(外部供电/USB供电 拨动开关 拨到 USB供电一端)

  • TYPE-C USB数据线直接插到开发板的TYPE-C USB座子,另外一端连接电脑USB口;

演示软件环境

1、Luatools下载调试工具

2、Air8000 V2018版本固件

演示核心步骤

1、搭建好硬件环境

2、Luatools烧录内核固件和demo脚本代码

3、烧录成功后,自动开机运行,通过luatools日志可以观察到以下信息:

[2025-11-25 16:35:26.453][000000000.670] I/user.main aircharge 1.0.0
[2025-11-25 16:35:26.457][000000000.696] I/user.充电管理 初始化电池管理...
[2025-11-25 16:35:26.461][000000000.697] I/user.充电管理 设置电池参数: 4.20V, 400mAh, DEFAULT
[2025-11-25 16:35:26.539][000000000.911] I/user.充电管理 电池参数设置成功
[2025-11-25 16:35:26.542][000000000.911] I/user.充电管理 尝试启动充电...
[2025-11-25 16:35:26.810][000000001.337] I/user.exchg.start 生效
[2025-11-25 16:35:26.828][000000001.338] I/user.充电管理 充电启动成功
[2025-11-25 16:35:26.843][000000001.338] I/user.充电管理 开始监控电池状态...
[2025-11-25 16:35:32.599][000000007.128] luat_adc_open 670:adc gain 1658, offset 130
[2025-11-25 16:35:32.602][000000007.128] luat_adc_open 694:adc4 param 1,15,0,32,8, max read:6664500mv
[2025-11-25 16:35:32.709][000000007.242] I/user.充电管理 电池电压: 4.06V (84%)
[2025-11-25 16:35:32.712][000000007.243] I/user.充电管理 充电阶段: 恒压快速充电
[2025-11-25 16:35:32.715][000000007.243] I/user.充电管理 充电完成: 否
[2025-11-25 16:35:32.717][000000007.243] I/user.充电管理 电池在位: 是
[2025-11-25 16:35:32.719][000000007.243] I/user.充电管理 充电器在位: 是
[2025-11-25 16:35:32.721][000000007.244] I/user.充电管理 IC过热: 否
[2025-11-25 16:35:32.723][000000007.244] I/user.充电管理 状态变化: 未知 -> 恒压快速充电
[2025-11-25 16:35:32.728][000000007.245] I/user.充电管理 电压变化显著: 4.06V
[2025-11-25 16:35:32.730][000000007.245] I/user.充电管理 充电器状态变化: 连接