Battery模块驱动

xiaoxiao2021-02-28  111

Battery模块驱动

       供电模块作为系统不可缺少部分,供电方式大概包括:1、电池供电;2、专用适配器供电;3、USB线供电;4、USB充电适配线供电。THEME项目采用电池供电,以下将针对电池供电进行讲解。

一、硬件电路

1、充电电路

Theme项目使用SY6982C1芯片对电池进行充电,其中使能管脚EN决定充电模块工作状态,管脚STAT表示是否充满。

图1 充电电路

图2 充电状态管脚

图3 充电使能管脚

2、电池电压检测电路

通过ADC电路检测电池分压值,根据分压电路计算出当前电池电压。

图4 电池电压检测电路

二、软件实现

1、管脚初始化

系统上电初始化充电使能管脚,保持充电使能。Theme项目使用GPIOA5管脚作为充电使能管脚,并在welcome.c中初始化。

图5 初始化充电使能管脚

图6 初始化状态管脚

图7 初始化电池电量检测管脚

2、充电流程

        ATS2825电池充电流程中,包含底层驱动和上层应用两部分。底层驱动完成工作包括:1、电池电量采集;2、实现打开充电和关闭充电;3、电池电量等级转换。上层应用实现策略包括:1、低电量发送关机消息;2、检测电池充电状态;3、管理充电灯效。

2.1 底层驱动

底层驱动在源文件key_bat_charge_comm.c实现,通过操作系统,上层应用可以调用到底层接口,实现上层应用控制底层驱动。其中电池电量实时采集接口通过定时器调用,定时器定时时间为20ms。

图8 底层驱动 

2.2 上层应用

        上层应用在源文件common_charge.c中实现,其主要实现低电量提醒、满电停止充电及显示充电灯效。上层接口通过定时器调用,定时器定时周期为500ms,而上层应用调用底层接口获取当前电池电量及充电状态,上层应用通过获取的数据实现策略控制。

图9 上层应用执行流程

转载请注明原文地址: https://www.6miu.com/read-59116.html

最新回复(0)