16. 充电
Overview
以 AC638N 为例,提供:
检测充电、满电,切换充电档位应用示例
工程配置、 API 介绍和常见问题。
16.1. 应用示例
具体的源代码详见 sdk/bsp/AC638N/src/charge.c
charge.c
中检测充电、满电参考示例如下://检测定时器调用VPWR插拔检测和充电时的充满检测 static void charge_timer_handle(void) { if (!__this->init) { return; } charge_vpwr_detect(); charge_full_detect(); } REGISTER_TIMER_TARGET(charge_timer) = { .timer_handle = charge_timer_handle, };
16.2. 工程配置
在 sdk/bsp/AC638N/board/board_demo.c 中开启宏:
#define TCFG_CHARGE_ENABLE 1
在 sdk/apps/main.c 中函数
user_main()
添加如下切换充电档位工程代码:int user_main() { mdelay(10000); charge_current = charge_get_mA_config(); charge_set_mA(charge_current); }
编译下载后,将 KEITHLEY 电池模拟器连接 Ldoin,然后进行普通 usb 进行充电,观察充电是否正常,满电停止是否充电,充电档位调节是否有效。
16.3. 常见问题
充电初始化函数在
board_demo.c
的void board_init()
函数中已经声明调用
16.4. API参考
ADC常用相关API介绍,具体软件代码见 sdk/bsp/AC638N/src/charge.c
Functions
-
u8 charge_get_online_flag(void)
获取VPWR在线状态
Note
VPWR电压大于插入电压(约0.6V)则返回值为1
- Returns
0:不在线 1:在线
-
void charge_start(void)
开始充电
Note
当VPWR电压大于电池电压时,可进行充电
- Returns
无
-
void charge_close(void)
停止充电
Note
当VPWR电压小于于电池电压时,可停止充电
- Returns
无
-
u8 charge_get_mA_config(void)
获取配置的恒流充电电流档位
Note
该接口用于获取配置的档位
- Returns
参考charge.h充电电流档位
-
void charge_set_mA(u8 charge_mA)
设置恒流充电电流档位
Note
该接口用于改变充电电流档位,使用场景有: 1、电池电压小时(<3V),用小电流充电(20mA) 电池电压大时(>3V),用配置的电流充电(charge_mA) 2、温度升高时,降低充电电流,减小发热
- Parameters
charge_mA – 参考charge.h充电电流档位
- Returns
无
-
u8 charge_get_vpwr_pulldown_en(void)
soft power off时,判定是否需要维持下拉电阻
Note
该接口由软关机函数调用
- Returns
0:关闭下拉电阻 1:使能下拉电阻
-
u8 charge_get_vpwr_pulldown_res(void)
soft power off时,获取下拉电阻档位
Note
该接口由软关机函数调用
- Returns
0:50k 1:100k 2:150k 3:200k
-
u8 charge_get_vpwr_online_hw(void)
获取VPWR和插入电压(约0.6V)比的大小
Note
该接口直接读取寄存器,没有经过软件滤波
- Returns
0:VPWR<0.6 1:VPWR>0.6
-
u8 charge_get_lvcmp_det(void)
获取VPWR和VBAT比的大小
Note
该接口直接读取寄存器,没有经过软件滤波
- Returns
0:VPWR<VBAT 1:VPWR>VBAT
-
void charge_init(void *arg)
内置充电初始化
Note
设置充电相关寄存器
- Parameters
arg – 配置结构体
- Returns
无