供电模块作为系统不可缺少部分,供电方式大概包括:1、电池供电;2、专用适配器供电;3、USB线供电;4、USB充电适配线供电。THEME项目采用电池供电,以下将针对电池供电进行讲解。
一、硬件电路
1、充电电路
Theme项目使用SY6982C1芯片对电池进行充电,其中使能管脚EN决定充电模块工作状态,管脚STAT表示是否充满。
图1 充电电路
图2 充电状态管脚
图3 充电使能管脚
通过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 上层应用执行流程