超长续航×工业级电源管理
基于Rockchip RK3568高性能处理器,支持双节电池(7.4V)充放电管理,搭配DC-DC转换电路,实现5小时连续工作于-20℃~85℃宽温稳定运行!无论是户外物联网设备、工业现场控制还是移动多媒体终端,电力无忧! 硬件方案解析 一、关键部件分工 1、SC8886 用于充电管理,既充电芯片; 2、RK809-5 用于电量计算,即电量计; 3、RK3568 通过I2C控制充电芯片,同时通过I2C读取电量计的电量; 二、充电电路 三、充电阶段解析① 预充电阶段 · 当电池电压过低时,PMOS管截止,启用预充电路(通常为100mA小电流) · 目的:避免大电流冲击导致锂电池损伤 ② 恒流充电阶段 · SC8886通过PWM控制MOSFET,使充电电流恒定(由ISET电阻决定) · 公式:I_charge = 1000/ISET (单位:mA) ③ 恒压充电阶段 · 当电池电压达到设定值(如4.2V)后,切换至恒压模式 · 通过TL431反馈调整输出电压,精度可达±1% ④ 终止条件 · 充电电流降至预设阈值(如C/10) · 或检测到温度超标(需外接NTC热敏电阻) 必须从精密电阻两端采样,走差分 四、dts配置 内核配置
配置内核开启以下驱动 RTC_DRV_RK808 [=y] BATTERY_RK817 [=y] 设备树修改如下: RK809 没有充电功能,只需要配置 battery 节点。电源检测IO使用gpio-charger驱动,并配置charger-type为mains。 battery {
compatible = "rk817,battery"; ocv_table = <6800 6894 6970 7048 7108 7160 7194
7222 7248 7282 7324 7398 7484 7564
7650 7746 7850 7956 8066 8182 8330>; design_capacity = <2500>;
design_qmax = <2750>;
bat_res = <100>;
sleep_enter_current = <300>;
sleep_exit_current = <300>;
sleep_filter_current = <100>;
power_off_thresd = <6800>; //7000
zero_algorithm_vol = <7000>;
max_soc_offset = <60>;
monitor_sec = <5>;
sample_res = <10>;
virtual_power = <0>;
bat_res_up = <140>;
bat_res_down = <20>;
status = "okay";
}; 电池调试驱动文件路径为:kernel/drivers/power/supply/rk817_battery.c 系统启动后可从 /sys/class/power_supply/battery/uevent 节点获取电池状态信息。 支持应用层配置驱动调试信息的输出,配置方法如下: #开启打印信息 echo 1 > /sys/module/rk817_battery/parameters/dbg_level #关闭打印信息 echo 0 > /sys/module/rk817_battery/parameters/dbg_level [root@RK356X:/]# cat /sys/class/power_supply/bms/uevent
POWER_SUPPLY_NAME=bms
POWER_SUPPLY_STATUS=Not charging //未充电
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_VOLTAGE_NOW=9848000
POWER_SUPPLY_CURRENT_NOW=107000
POWER_SUPPLY_CAPACITY=2
POWER_SUPPLY_CAPACITY_LEVEL=Low
POWER_SUPPLY_TEMP=264
POWER_SUPPLY_TIME_TO_EMPTY_NOW=29
POWER_SUPPLY_HEALTH=Good
POWER_SUPPLY_CHARGE_FULL=2714000
POWER_SUPPLY_CHARGE_FULL_DESIGN=2600000
POWER_SUPPLY_TECHNOLOGY=Li-poly 我们可以通过以上节点来获取电池的状态。 最后我们来看一下这个开发板的特性 电池接口采用2.54间距,5PIN 电流较大预计达到4A,充电接口是typec5 支持快充。
|