0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DshanMCU-R128s2 PMU 电源管理

嵌入式Linux那些事 来源:嵌入式Linux那些事 作者:嵌入式Linux那些事 2023-12-22 17:58 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

PMU 功能简介

目前已支持的PMU 为:AXP2585。

该PMU 主要用于电池管理以及充电管理,主要有以下功能:

  • 读取电池电量、电池温度。
  • 设置充电时的充电电流,截止充电电压、充电超时等。
  • 自动根据连接PC 或者适配器设置USB 输入的最大限流。
  • 电池温度过高时自动触发停充。
  • 检测USB 线的接入和拔出。
  • PMU 芯片过温保护。

PMU 配置介绍

sys_config.fex 配置说明

[pmu]
pmu_irq_pin      = port:PA14< 14 >< 0 >< default >< default >
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

配置含义:

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 < u32 >
	usb pc输入电压限制值,单位为mV
	
pmu_usbpc_cur < u32 >
	usb pc输入电流限制值,单位为mA
	
pmu_usbad_vol < u32 >
	usb adaptor输入电压限制值(vimdpm),单位为mV
	
pmu_usbad_cur < u32 >
	usb adaptor输入电流限制值,单位为mA
	
pmu_chg_ic_temp < u32 >
    1: TS current source always on
    0: TS current source off
    
pmu_battery_rdc < u32 >
	电池内阻,单位为mΩ
	
pmu_battery_cap < u32 >
	电池容量,单位为mAh
	
pmu_runtime_chgcur < u32 >
	运行时constant充电电流限制,单位为mA
	
pmu_suspend_chgcur < u32 >
	休眠时constant充电电流限制,单位为mA
	
pmu_shutdown_chgcur < u32 >
	关机时constant充电电流限制,单位为mA
	
pmu_terminal_chgcur < u32 >
	截止电流,停止充电的标志位之一,单位为mA
	
pmu_init_chgvol < u32 >
	电池满充电压,单位为mV
	
pmu_init_chg_pretime < u32 >
	当电池电压低于REG 0x8C[1]时,属于pre charge阶段。
	如果此阶段时间超过pmu_init_chg_pretime,视为超时,停止充电。
	
pmu_init_chg_csttime < u32 >
	当电池电压高于REG 0x8C[1]且低于截止电压(REG 0X8C[7:2])时,属于恒流充电阶段。
	如果此阶段时间超过pmu_init_chg_csttime,视为超时,停止充电。
	
pmu_chgled_type < bool >
    0: Enable CHGLED pin funciton
    1: Disable CHGLED pin funciton
    
pmu_init_bc_en < bool >
    0: Enable BC1.2
    1: Disable BC1.2
        
pmu_bat_temp_enable < u32 >
	设置电池温度检测、ntc是否使能
        
pmu_bat_charge_ltf < u32 >
    触发电池低温停充的TS pin电压阈值,单位:mV
    默认:1105mV
    范围:08160mV
        
pmu_bat_charge_htf < u32 >
    触发电池高温停充的TS pin电压阈值,单位:mV
    默认:121mV
    范围:0510mV
        
pmu_bat_shutdown_ltf < u32 >
	非充电模式下,触发电池低温中断的TS pin电压阈值,单位:mV
	默认:1381mV
        
pmu_bat_shutdown_htf < u32 >
	默认:89mV
	范围:0510mV
        
pmu_bat_para1 < u32 >
pmu_bat_para2 < u32 >
...
pmu_bat_para32 < u32 >
	电池曲线参数
	电池参数根据使用的电池不同,通过仪器测量出来
        
pmu_bat_temp_para1 < u32 >
	电池包‑25度对应的TS pin电压,单位:mV
        
pmu_bat_temp_para2 < u32 >
	电池包‑15度对应的TS pin电压,单位:mV
        
pmu_bat_temp_para3 < u32 >
	电池包‑10度对应的TS pin电压,单位:mV
        
pmu_bat_temp_para4 < u32 >
	电池包‑5度对应的TS pin电压,单位:mV
        
pmu_bat_temp_para5 < u32 >
	电池包0度对应的TS pin电压,单位:mV
        
pmu_bat_temp_para6 < u32 >
	电池包5度对应的TS pin电压,单位:mV
        
pmu_bat_temp_para7 < u32 >
	电池包10度对应的TS pin电压,单位:mV
        
pmu_bat_temp_para8 < u32 >
	电池包20度对应的TS pin电压,单位:mV
        
pmu_bat_temp_para9 < u32 >
	电池包30度对应的TS pin电压,单位:mV
        
pmu_bat_temp_para10 < u32 >
	电池包40度对应的TS pin电压,单位:mV
        
pmu_bat_temp_para11 < u32 >
	电池包45度对应的TS pin电压,单位:mV
        
pmu_bat_temp_para12 < u32 >
	电池包50度对应的TS pin电压,单位:mV
        
pmu_bat_temp_para13 < u32 >
	电池包55度对应的TS pin电压,单位:mV
        
pmu_bat_temp_para14 < u32 >
	电池包60度对应的TS pin电压,单位:mV
        
pmu_bat_temp_para15 < u32 >
	电池包70度对应的TS pin电压,单位:mV
        
pmu_bat_temp_para16 < u32 >
	电池包80度对应的TS pin电压,单位:mV

不同电池包的温敏电阻特性不一样,根据电池包的TS温敏电阻手册,找到pmu_bat_temp_para[116]对应温度点的电阻阻值,将阻值除以20得到的电压数值(单位:mV),将电压数值填进pmu_bat_temp_para[116]的节点中即可

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]章节的说明。

电源管理应用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。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    147

    文章

    18609

    浏览量

    387083
  • 电源管理
    +关注

    关注

    117

    文章

    6548

    浏览量

    147536
  • PMU
    PMU
    +关注

    关注

    1

    文章

    125

    浏览量

    23021
  • R128
    +关注

    关注

    0

    文章

    41

    浏览量

    392
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深入剖析DAC128S085:高性能12位八通道数模转换器

    、可编程电源等领域有着广泛的应用前景。 文件下载: dac128s085.pdf 一、DAC128S085概述 DAC128S085是一款功能齐全的通用八通道12位电压输出数模转换器。
    的头像 发表于 11-27 14:13 323次阅读
    深入剖析DAC<b class='flag-5'>128S</b>085:高性能12位八通道数模转换器

    RVMCU课堂「24」: 手把手教你玩转RVSTAR—PMU应用篇

    使用的GD32VF103微控制器提供了电源管理单元(Power Management Unit,PMU),它提供了三种省电模式,本期内容将介绍其中一种模式的应用,帮助大家学习PMU的用
    发表于 10-28 08:10

    RY1228AD10 双降压2通道电源管理单元(PMU)数据手册

    电子发烧友网站提供《RY1228AD10 双降压2通道电源管理单元(PMU)数据手册.pdf》资料免费下载
    发表于 07-25 15:45 0次下载

    RY1303 3通道5.5V 2A 1.2MHz DC/DC降压型电源管理单元(PMU)数据手册

    电子发烧友网站提供《RY1303 3通道5.5V 2A 1.2MHz DC/DC降压型电源管理单元(PMU)数据手册.pdf》资料免费下载
    发表于 07-25 15:41 0次下载

    Analog Devices Inc. ADP5320电源管理单元 (PMU)数据手册

    Analog Devices Inc. ADP5320电源管理单元 (PMU) 设计旨在满足可穿戴设备应用的严苛性能和电路板空间要求。该PMU结合了9个数字可调稳压器、电量计、12位模
    的头像 发表于 07-01 11:49 526次阅读
    Analog Devices Inc. ADP5320<b class='flag-5'>电源</b><b class='flag-5'>管理</b>单元 (<b class='flag-5'>PMU</b>)数据手册

    Analog Devices Inc. ADP1034微功耗管理单元 (PMU)数据手册

    Analog Devices Inc. ADP1034微功耗管理单元 (PMU) 是一款高性能、隔离式PMU,将隔离式反激直流-直流稳压器、降压-升压、降压直流-直流稳压器结合在一起。ADP1034
    的头像 发表于 06-22 09:16 646次阅读
    Analog Devices Inc. ADP1034微功耗<b class='flag-5'>管理</b>单元 (<b class='flag-5'>PMU</b>)数据手册

    性能标杆·可靠典范 | 金升阳LM-R2S系列机壳电源焕新上市

    一、产品介绍 在工业电源领域,金升阳始终以技术创新为驱动力,结合市场需求,对电源产品进行持续性优化。基于LM-R2系列的成熟技术与市场认可,金升阳正式推出升级版LM-R2S系列机壳开关
    发表于 05-30 15:24 1399次阅读
    性能标杆·可靠典范 | 金升阳LM-<b class='flag-5'>R2S</b>系列机壳<b class='flag-5'>电源</b>焕新上市

    金升阳推出升级版LM-R2S系列机壳开关电源

    在工业电源领域,金升阳始终以技术创新为驱动力,结合市场需求,对电源产品进行持续性优化。基于LM-R2系列的成熟技术与市场认可,金升阳正式推出升级版LM-R2S系列机壳开关
    的头像 发表于 05-10 10:05 1000次阅读
    金升阳推出升级版LM-<b class='flag-5'>R2S</b>系列机壳开关<b class='flag-5'>电源</b>

    深度解析:Air8201如何使用LuatOS进行电源管理功能!

    在物联网应用场景中,设备续航能力直接影响其部署成本与运维效率。Air8201作为新一代低功耗物联网通信模块,其硬件架构已内置多种电源管理单元(PMU),但仅依靠硬件优化难以满足复杂场景的动态功耗需求
    的头像 发表于 03-25 18:23 3144次阅读
    深度解析:Air8201如何使用LuatOS进行<b class='flag-5'>电源</b><b class='flag-5'>管理</b>功能!

    FD60-36S24B3R2 FD60-36S24B3R2

    电子发烧友网为你提供AIPULNION(AIPULNION)FD60-36S24B3R2相关产品参数、数据手册,更有FD60-36S24B3R2的引脚图、接线图、封装手册、中文资料、英文资料,FD60-36S24B3R2真值表,
    发表于 03-21 18:33
    FD60-36<b class='flag-5'>S24B3R2</b> FD60-36<b class='flag-5'>S24B3R2</b>

    PFD50-36S24B3R2 PFD50-36S24B3R2

    电子发烧友网为你提供AIPULNION(AIPULNION)PFD50-36S24B3R2相关产品参数、数据手册,更有PFD50-36S24B3R2的引脚图、接线图、封装手册、中文资料、英文资料,PFD50-36S24B3R2
    发表于 03-21 18:31
    PFD50-36<b class='flag-5'>S24B3R2</b> PFD50-36<b class='flag-5'>S24B3R2</b>

    FD50-36S24B3(R)2 FD50-36S24B3(R)2

    电子发烧友网为你提供AIPULNION(AIPULNION)FD50-36S24B3(R)2相关产品参数、数据手册,更有FD50-36S24B3(R
    发表于 03-21 18:31
    FD50-36<b class='flag-5'>S</b>24B3(<b class='flag-5'>R</b>)<b class='flag-5'>2</b> FD50-36<b class='flag-5'>S</b>24B3(<b class='flag-5'>R</b>)<b class='flag-5'>2</b>

    hyper 2012 r2,Hyper 2012 R2:经典版本功能与使用

    在日常工作中,我们常常需要对大量文件、数据或任务进行重复性操作,这些工作不仅耗时费力,还容易出错。幸运的是,批量管理工具的出现为这些问题提供了高效的解决方案。今天就为大家介绍Hyper2012R2
    的头像 发表于 02-08 10:11 982次阅读
    hyper 2012 <b class='flag-5'>r2</b>,Hyper 2012 <b class='flag-5'>R2</b>:经典版本功能与使用

    如何让HT4928S移动电源管理芯片使用寿命更长?

    HT4928S 是一款集成度非常高的移动电源管理芯片,内置充电管理模块、LED 指示模块、升压放电管理模块,并使用小型的 SOP8 封装,外
    的头像 发表于 01-25 15:29 703次阅读
    如何让HT4928<b class='flag-5'>S</b>移动<b class='flag-5'>电源</b><b class='flag-5'>管理</b>芯片使用寿命更长?

    PMU电源管理芯片CN8911B适用于超级电容备电的电源系统

    PMU电源管理芯片CN8911B适用于超级电容备电的电源系统
    的头像 发表于 01-23 09:11 1206次阅读
    <b class='flag-5'>PMU</b><b class='flag-5'>电源</b><b class='flag-5'>管理</b>芯片CN8911B适用于超级电容备电的<b class='flag-5'>电源</b>系统