Battery模块驱动


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


一、硬件电路


1、充电电路

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

Battery模块驱动

图1 充电电路


Battery模块驱动

图2 充电状态管脚

Battery模块驱动

图3 充电使能管脚

2、电池电压检测电路

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

Battery模块驱动

图4 电池电压检测电路

二、软件实现

1、管脚初始化

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

Battery模块驱动

图5 初始化充电使能管脚


Battery模块驱动

图6 初始化状态管脚

Battery模块驱动

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



2、充电流程

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

2.1 底层驱动

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

Battery模块驱动

图8 底层驱动 

2.2 上层应用


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

Battery模块驱动
图9 上层应用执行流程



相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-18
  • 2021-12-27
  • 2021-11-13
  • 2021-12-25
猜你喜欢
  • 2022-01-23
  • 2021-09-19
  • 2022-12-23
  • 2021-10-08
  • 2022-02-05
  • 2021-07-28
相关资源
相似解决方案