X
首页
技术
模拟电子
单片机
半导体
电源管理
嵌入式
传感器
最能打国产芯
应用
汽车电子
工业控制
家用电子
手机便携
安防电子
医疗电子
网络通信
测试测量
物联网
最能打国产芯
大学堂
首页
直播
专题
TI 培训
论坛
汽车电子
国产芯片
电机驱动控制
电源技术
单片机
模拟电子
PCB设计
电子竞赛
DIY/开源
嵌入式系统
医疗电子
颁奖专区
【厂商专区】
【电子技术】
【创意与实践】
【行业应用】
【休息一下】
最能打国产芯
活动中心
直播
发现活动
颁奖区
电子头条
参考设计
下载中心
分类资源
文集
排行榜
电路图
Datasheet
最能打国产芯
国产芯片交流
[MCU] 全志R128外设模块配置——PMU电源管理
aleksib
2023-10-13 14:01
楼主
# PMU 电源管理 ## PMU 功能简介 目前已支持的PMU 为:AXP2585。 该PMU 主要用于电池管理以及充电管理,主要有以下功能: - 读取电池电量、电池温度。 -设置充电时的充电电流,截止充电电压、充电超时等。 -自动根据连接PC 或者适配器设置USB 输入的最大限流。 -电池温度过高时自动触发停充。 -检测USB 线的接入和拔出。 -PMU 芯片过温保护。 ## PMU 配置介绍 ### `sys_config.fex` 配置说明 ```ini [pmu] pmu_irq_pin = port:PA14<14><0>
pmu_irq_wakeup = 2 pmu_hot_shutdown = 1 pmu_bat_unused = 0 pmu_usbad_vol = 4600 pmu_usbad_cur = 1500 pmu_usbpc_vol = 4600 pmu_usbpc_cur = 500 pmu_chg_ic_temp = 0 pmu_battery_rdc = 100 pmu_battery_cap = 3568 pmu_runtime_chgcur = 900 pmu_suspend_chgcur = 1200 pmu_shutdown_chgcur = 1200 pmu_init_chgvol = 4200 pmu_init_chg_pretime = 50 pmu_init_chg_csttime = 1200 pmu_chgled_type = 0 pmu_init_bc_en = 1 pmu_bat_temp_enable = 0 pmu_bat_charge_ltf = 2261 pmu_bat_charge_htf = 388 pmu_bat_shutdown_ltf = 3200 pmu_bat_shutdown_htf = 237 pmu_bat_para[0] = 0 pmu_bat_para[1] = 0 pmu_bat_para[2] = 0 pmu_bat_para[3] = 0 pmu_bat_para[4] = 0 pmu_bat_para[5] = 0 pmu_bat_para[6] = 1 pmu_bat_para[7] = 1 pmu_bat_para[8] = 2 pmu_bat_para[9] = 4 pmu_bat_para[10] = 5 pmu_bat_para[11] = 12 pmu_bat_para[12] = 19 pmu_bat_para[13] = 32 pmu_bat_para[14] = 41 pmu_bat_para[15] = 45 pmu_bat_para[16] = 48 pmu_bat_para[17] = 51 pmu_bat_para[18] = 54 pmu_bat_para[19] = 59 pmu_bat_para[20] = 63 pmu_bat_para[21] = 68 pmu_bat_para[22] = 71 pmu_bat_para[23] = 74 pmu_bat_para[24] = 78 pmu_bat_para[25] = 81 pmu_bat_para[26] = 82 pmu_bat_para[27] = 84 pmu_bat_para[28] = 88 pmu_bat_para[29] = 92 pmu_bat_para[30] = 96 pmu_bat_para[31] = 100 pmu_bat_temp_para[0] = 7466 pmu_bat_temp_para[1] = 4480 pmu_bat_temp_para[2] = 3518 pmu_bat_temp_para[3] = 2786 pmu_bat_temp_para[4] = 2223 pmu_bat_temp_para[5] = 1788 pmu_bat_temp_para[6] = 1448 pmu_bat_temp_para[7] = 969 pmu_bat_temp_para[8] = 664 pmu_bat_temp_para[9] = 466 pmu_bat_temp_para[10] = 393 pmu_bat_temp_para[11] = 333 pmu_bat_temp_para[12] = 283 pmu_bat_temp_para[13] = 242 pmu_bat_temp_para[14] = 179 pmu_bat_temp_para[15] = 134 ``` 配置含义: ```c pmu_irq_pin AXP芯片IRQ引脚连接的IO,用于触发中断 pmu_irq_wakeup Press irq wakeup or not when sleep or power down. 0: not wakeup 1: wakeup pmu_hot_shutdown when PMU over temperature protect or not. 0: disable 1: enable pmu_bat_unused unused bat 0: disable 1: enable pmu_usbpc_vol
usb pc输入电压限制值,单位为mV pmu_usbpc_cur
usb pc输入电流限制值,单位为mA pmu_usbad_vol
usb adaptor输入电压限制值(vimdpm),单位为mV pmu_usbad_cur
usb adaptor输入电流限制值,单位为mA pmu_chg_ic_temp
1: TS current source always on 0: TS current source off pmu_battery_rdc
电池内阻,单位为mΩ pmu_battery_cap
电池容量,单位为mAh pmu_runtime_chgcur
运行时constant充电电流限制,单位为mA pmu_suspend_chgcur
休眠时constant充电电流限制,单位为mA pmu_shutdown_chgcur
关机时constant充电电流限制,单位为mA pmu_terminal_chgcur
截止电流,停止充电的标志位之一,单位为mA pmu_init_chgvol
电池满充电压,单位为mV pmu_init_chg_pretime
当电池电压低于REG 0x8C[1]时,属于pre charge阶段。 如果此阶段时间超过pmu_init_chg_pretime,视为超时,停止充电。 pmu_init_chg_csttime
当电池电压高于REG 0x8C[1]且低于截止电压(REG 0X8C[7:2])时,属于恒流充电阶段。 如果此阶段时间超过pmu_init_chg_csttime,视为超时,停止充电。 pmu_chgled_type
0: Enable CHGLED pin funciton 1: Disable CHGLED pin funciton pmu_init_bc_en
0: Enable BC1.2 1: Disable BC1.2 pmu_bat_temp_enable
设置电池温度检测、ntc是否使能 pmu_bat_charge_ltf
触发电池低温停充的TS pin电压阈值,单位:mV 默认:1105mV 范围:0‑8160mV pmu_bat_charge_htf
触发电池高温停充的TS pin电压阈值,单位:mV 默认:121mV 范围:0‑510mV pmu_bat_shutdown_ltf
非充电模式下,触发电池低温中断的TS pin电压阈值,单位:mV 默认:1381mV pmu_bat_shutdown_htf
默认:89mV 范围:0‑510mV pmu_bat_para1
pmu_bat_para2
... pmu_bat_para32
电池曲线参数 电池参数根据使用的电池不同,通过仪器测量出来 pmu_bat_temp_para1
电池包‑25度对应的TS pin电压,单位:mV pmu_bat_temp_para2
电池包‑15度对应的TS pin电压,单位:mV pmu_bat_temp_para3
电池包‑10度对应的TS pin电压,单位:mV pmu_bat_temp_para4
电池包‑5度对应的TS pin电压,单位:mV pmu_bat_temp_para5
电池包0度对应的TS pin电压,单位:mV pmu_bat_temp_para6
电池包5度对应的TS pin电压,单位:mV pmu_bat_temp_para7
电池包10度对应的TS pin电压,单位:mV pmu_bat_temp_para8
电池包20度对应的TS pin电压,单位:mV pmu_bat_temp_para9
电池包30度对应的TS pin电压,单位:mV pmu_bat_temp_para10
电池包40度对应的TS pin电压,单位:mV pmu_bat_temp_para11
电池包45度对应的TS pin电压,单位:mV pmu_bat_temp_para12
电池包50度对应的TS pin电压,单位:mV pmu_bat_temp_para13
电池包55度对应的TS pin电压,单位:mV pmu_bat_temp_para14
电池包60度对应的TS pin电压,单位:mV pmu_bat_temp_para15
电池包70度对应的TS pin电压,单位:mV pmu_bat_temp_para16
电池包80度对应的TS pin电压,单位:mV 不同电池包的温敏电阻特性不一样,根据电池包的TS温敏电阻手册,找到pmu_bat_temp_para[1‑16]对应温度点的电阻阻值,将阻值除以20得到的电压数值(单位:mV),将电压数值填进pmu_bat_temp_para[1‑16]的节点中即可 ``` ### rtos menuconfig 配置说明 AXP 是依赖于I2C 进行通过的,所以首先就需要确认I2C 驱动是已经被选上的。 - 使能I2C 驱动 ``` ‑> Drivers Options ‑> soc related device drivers ‑> TWI Devices [*] enable twi driver ``` - 使能PMU 驱动 ``` ‑> Drivers Options ‑> soc related device drivers [*] POWER Devices ``` - 选择AXP2585 ``` ‑> Drivers Options ‑> soc related device drivers ‑> POWER Devices [*] enable power driver ``` ### PMU 源码结构 ``` lichee/rtos‑hal/hal/source/power/ ├── axp2585.c ├── axp2585.h ├── axp.c ├── axp_twi.c ├── ffs.h ├── Kconfig ├── Makefile ├── sun20iw2p1 │ ├── core.c └── type.h ``` - axp2585.c: AXP2585 驱动。 -axp.c: AXP 框架API 接口。 -axp_twi.c: 初始化以及I2C 接口。 -sun20iw2p1: R128 配置以及总初始化接口。 ## PMU 常用功能 ### 驱动初始化 若 `mrtos_menuconfig` 中已经选上了该设备,并且 `sys_config.fex`中也配置完成,那么系统加载时就已经自动将 PMU 驱动加载完成,无需软件工程师再进行初始化。 初始化成功的 log 可如下所示: ``` axp2585 chip version C ! axp2585 chip id detect 0x49 ! current limit not set: usb adapter type axp2585 init finished ! ``` 若是没有打印上述的打印 log 信息,可能是 PMU 驱动加载失败了,可以从 `sys_config.fex` 配置中确认是否有配置漏配置了,或者是从 I2C 方向去排查,确认I2C 通信是正常的。 ### AXP 接口使用 PMU 驱动有一个统一的驱动入口,初始化和一些功能接口,都是由AXP 驱动统一管理的。具体请参照 [PMU](/sdk_module/pmu)章节的说明。 ### 电源管理应用healthd healthd 是一个电源管理的应用,主要功能为:检测电池电量、设置充电电流、电量变低警报、电压过低关机、电池温度过高过度保护等等。 应用配置方法: ``` ‑> System components ‑> aw components [*] healthd for axp ``` 应用源码路径为: ``` lichee/rtos/components/aw/healthd/healthd.c ``` #### healthd 用法 ##### 开启应用 应用在默认SDK 中并不会启动,在系统启动之后,需要手动输入: ``` healthd ``` 然后就开启了电池管理应用了。开启了之后,就会启动了电量变低警报、电压过低关机、电池温度过高过度保护的功能。 ##### 获取电池电量 运行命令: ``` healthd_get_capacity ``` ##### 设置充电电流 运行命令: ``` healthd_set_chgcur 1500 ``` 命令的后缀为充电电流大小,单位为mA,范围为0~3072mA。
点赞
回复评论
暂无评论,赶紧抢沙发吧
最新活动
免费申请 | 上百份MPS MIE模块,免费试用还有礼!
TI 有奖直播 | 使用基于 Arm 的 AM6xA 处理器设计智能化楼宇
Follow me第二季第3期来啦!与得捷一起解锁高性能开发板【EK-RA6M5】超能力!
报名直播赢【双肩包、京东卡、水杯】| 高可靠性IGBT的新选择——安世半导体650V IGBT
30套RV1106 Linux开发板(带摄像头),邀您动手挑战边缘AI~
安世半导体理想二极管与负载开关,保障物联网应用的稳健高效运行
随便看看
请问现在有哪些芯片支持大屏幕1280x1024; DDR2 SDRAM ;最好有2D加速的 ?
裂地跪求~~~各位高手~~~,帮忙看看这个电路。
STM32的参考资料太差
升降压恒流IC——QX5278
MSCOMM控件做串口通信程序,发送数据的格式怎么去定义啊
开发驱动需要向厂商要什么资料?急~~~~~~
求高手帮忙看一下这个程序
宝丽来LCD数码相框XSA-0720S方案解析
zigbee 协议栈 SamPle App工程(转自天运科技)
摩托车尾快闪砾霹雳灯电路
求wince5.0 下修改背光的方法
敬业无处不在,女电子工程师的美甲电路图
LQFP封装焊接各位大虾有何巧门?
关于使用霍尔传感器测量电机启停与转速遇到的问题,有一个点的位置无法解决。谢谢!
MSComm不显示单片机发来的数据
我们需要参考别人的例程么?
c6655 spi boot的问题
落叶是疲倦的蝴蝶
请问如何用Graphics Resource Converter工具转中文字型
FPGA心得体会-时序是设计出来的
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
京公网安备 11010802033920号
回复
写回复
收藏
回复