pmu 电源管理pmu 功能简介目前已支持的pmu 为:axp2585。
该pmu 主要用于电池管理以及充电管理,主要有以下功能:
读取电池电量、电池温度。设置充电时的充电电流,截止充电电压、充电超时等。自动根据连接pc 或者适配器设置usb 输入的最大限流。电池温度过高时自动触发停充。检测usb 线的接入和拔出。pmu 芯片过温保护。pmu 配置介绍sys_config.fex 配置说明[pmu]pmu_irq_pin      = port:pa14pmu_irq_wakeup   = 2pmu_hot_shutdown = 1pmu_bat_unused = 0pmu_usbad_vol = 4600pmu_usbad_cur = 1500pmu_usbpc_vol = 4600pmu_usbpc_cur = 500pmu_chg_ic_temp = 0pmu_battery_rdc = 100pmu_battery_cap = 3568pmu_runtime_chgcur = 900pmu_suspend_chgcur = 1200pmu_shutdown_chgcur = 1200pmu_init_chgvol = 4200pmu_init_chg_pretime = 50pmu_init_chg_csttime = 1200pmu_chgled_type = 0pmu_init_bc_en = 1pmu_bat_temp_enable = 0pmu_bat_charge_ltf = 2261pmu_bat_charge_htf = 388pmu_bat_shutdown_ltf = 3200pmu_bat_shutdown_htf = 237pmu_bat_para[0] = 0pmu_bat_para[1] = 0pmu_bat_para[2] = 0pmu_bat_para[3] = 0pmu_bat_para[4] = 0pmu_bat_para[5] = 0pmu_bat_para[6] = 1pmu_bat_para[7] = 1pmu_bat_para[8] = 2pmu_bat_para[9] = 4pmu_bat_para[10] = 5pmu_bat_para[11] = 12pmu_bat_para[12] = 19pmu_bat_para[13] = 32pmu_bat_para[14] = 41pmu_bat_para[15] = 45pmu_bat_para[16] = 48pmu_bat_para[17] = 51pmu_bat_para[18] = 54pmu_bat_para[19] = 59pmu_bat_para[20] = 63pmu_bat_para[21] = 68pmu_bat_para[22] = 71pmu_bat_para[23] = 74pmu_bat_para[24] = 78pmu_bat_para[25] = 81pmu_bat_para[26] = 82pmu_bat_para[27] = 84pmu_bat_para[28] = 88pmu_bat_para[29] = 92pmu_bat_para[30] = 96pmu_bat_para[31] = 100pmu_bat_temp_para[0] = 7466pmu_bat_temp_para[1] = 4480pmu_bat_temp_para[2] = 3518pmu_bat_temp_para[3] = 2786pmu_bat_temp_para[4] = 2223pmu_bat_temp_para[5] = 1788pmu_bat_temp_para[6] = 1448pmu_bat_temp_para[7] = 969pmu_bat_temp_para[8] = 664pmu_bat_temp_para[9] = 466pmu_bat_temp_para[10] = 393pmu_bat_temp_para[11] = 333pmu_bat_temp_para[12] = 283pmu_bat_temp_para[13] = 242pmu_bat_temp_para[14] = 179pmu_bat_temp_para[15] = 134配置含义:
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: enablepmu_bat_unused    unused bat    0: disable    1: enablepmu_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 driverpmu 源码结构lichee/rtos‑hal/hal/source/power/├── axp2585.c├── axp2585.h├── axp.c├── axp_twi.c├── ffs.h├── kconfig├── makefile├── sun20iw2p1│ ├── core.c└── type.haxp2585.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 typeaxp2585 init finished !若是没有打印上述的打印 log 信息,可能是 pmu 驱动加载失败了,可以从 sys_config.fex 配置中确认是否有配置漏配置了,或者是从 i2c 方向去排查,确认i2c 通信是正常的。
axp 接口使用pmu 驱动有一个统一的驱动入口,初始化和一些功能接口,都是由axp 驱动统一管理的。
电源管理应用healthdhealthd 是一个电源管理的应用,主要功能为:检测电池电量、设置充电电流、电量变低警报、电压过低关机、电池温度过高过度保护等等。
应用配置方法:
‑ > system components    ‑ > aw components        [*] healthd for axp应用源码路径为:
lichee/rtos/components/aw/healthd/healthd.chealthd 用法开启应用应用在默认sdk 中并不会启动,在系统启动之后,需要手动输入:
healthd然后就开启了电池管理应用了。开启了之后,就会启动了电量变低警报、电压过低关机、电池温度过高过度保护的功能。
获取电池电量运行命令:
healthd_get_capacity设置充电电流运行命令:
healthd_set_chgcur 1500命令的后缀为充电电流大小,单位为ma,范围为0~3072ma。
			
			
       	 	
    	BIO、NIO、AIO 模型工作方式
         	 	
    	意大利议会安全委员会呼吁政府禁用华为中兴设备,但没有任何约束力
         	 	
    	如何在振动环境下使涡街流量计能够实现准确计量
         	 	
    	多方力量协同努力加快车载显示“上路”步伐
         	 	
    	电容器开关跳闸的检查顺序
         	 	
    	全志R128外设模块配置—PMU电源管理
         	 	
    	蔚来汽车发布NAD平台,自动驾驶再引争议
         	 	
    	华为折叠屏手机Mate X2的性能怎么样?
         	 	
    	核心芯片技术发明为成就更好的电机控制器
         	 	
    	ooVoo 视频与音频会议在更多国家增加国际电话呼叫功能
         
       	 	
    	智能电话销售、电话机器人的对话原理是什么?你知道吗?-悟空话务积机器人
         	 	
    	台积电2nm和3nm制程工艺
         	 	
    	如何加快5G室内覆盖建设步伐?
         	 	
    	控温认准莱克空气调节扇,你的贴心空调伴侣
         	 	
    	阿尔泰科技—创新解决农业环境监测难题!
         	 	
    	用于个人局域网的超宽带技术研究
         	 	
    	科艺星创新CSP光源 3千小时LM80测试无光衰
         	 	
    	LitePoint宣布IQgig-5G测试系统可用于测试小型蜂窝基站
         	 	
    	NVIDIA工程师构建人工智能框架,向癌发起冲击
         	 	
    	机器开发的最大软硬件挑战及性能驱动解决方案