时间: 2025-04-19 16:34:30 | 作者: 塑料垫块模具
在物联网应用场景中,设备续航能力直接影响其部署成本与运维效率。Air8201作为新一代低功耗物联网通信模块,其硬件架构已内置多种电源管理单元(PMU),但仅依靠硬件优化难以满足复杂场景的动态功耗需求。
电源管理是电子设备中很重要的一部分,尤其是在移动电子设备和嵌入式系统中。它必然的联系到设备的能效、航时和整体性能。以下是关于电源管理的一些基本知识和常见概念的介绍。
电源管理指的是在电子设备内部合理规划利用和调节电源,以保证各个组件在最佳运行条件下工作,同时延长设备的使用时间和确保能量的有效利用。
延长电池使用寿命:通过有效的充放电管理,使电池在使用的过程中更长久地保持能量。
Vbat(电池电压):指设备中电池当前的电压值,通常用于评估电池的状态。
电池调节电压:电池在充放电过程中,能够最终靠一定控制策略或电路设计,维持电池电压在一些范围内的稳定。Air8201 的电池电压上限值默认为 4.2V,可在代码中自行更改电池电压阈值。
快充:快充是一种技术,它允许电池在较短时间内充入更多电量。快充技术包括恒流充电与恒压充电。在快速充电的恒流阶段,充电器会以一个固定的电流给电池充电,直到电池电压达到一个预设的电压值(Air8201 默认为 4.2V),随后切换至恒压模式,此时电流逐渐减小,直到电池充满后停止充电。
过压保护:当充电到达电池电压阈值时会自动停止充电,待剩余电量与满电量相差超过 120mA 时恢复充电。
在实际应用中,电源管理代码通常涉及多个功能模块,包括初始化电源,实时监测电量,响应用户操作和维护设备状态。一个良好的电源管理系统能够明显提高设备的性能和用户满意度。
通过合理的电源管理策略,用户不但可以延长设备的使用时间,还可以确保设备在关键时刻的稳定性和可靠性。在编写电源管理程序时,应充分考虑设备的使用场景和用户的需求。
在本演示中,我们将展示电源管理系统的核心功能模块,以及如何通过不同的技术手段实现有效的电源管理。这些功能旨在提升设备的性能和用户体验,以下是主要演示功能的概述:
1.电量监测:本系统通过 ADC(模数转换器)实时读取电池电压,并定期更新电量状态。通过精确监测电池电压,可以让用户清晰掌握当前电池剩余电量,避免意外关机带来的困扰。
2.充电检测:系统利用 GPIO 中断技术,能够快速检测电池的充电状态。当设备连接到电源时,将自动判断电池是否在充电状态,并相应地调整电源管理策略,以优化充电效率和电池寿命。
3.自动关机:根据监测到的电量百分比,该系统能够在电量过低时自动关机,以防止电池过度放电。这种智能管理能够保护电池,延长其使用寿命,确保设备在低电量时不会意外关机。
4.用户接口:系统提供了便捷的用户交互接口,用户可以通过长按电源键实现关机操作。提升用户体验的同时,确保用户可以方便地控制设备的电源状态。
通过这些功能的实现,用户不仅能延续设备的使用时间,还能够保证设备在关键时刻的稳定性和可靠性。在实际应用中,这些功能能够有效地提升设备性能,使用户得到满足对电源管理的需求。
4.1 Luatools 下载调试工具Luatools 工具支持最新固件获取、固件打包、trace 打印及单机烧录等功能。
5.1 电池充电器说明注意注意,锂电池与锂离子电池不是同一种电池。锂电池是一个统称,而锂离子电池是锂电池的其中一种类型。
Air8201 选用了一款高度集成的单电池锂离子电池充电器,该充电器具有系统电源路径管理,可供空间存在限制的便携式应用使用。功能具有涓流充电、恒流充电、恒压充电、充电终止和自动充电。还能够自动调节充电电流与充电电压,或者进入其他模式。
涓流充电用于先对完全放电的电池单元进行预充,也叫恢复性充电。在电池电压低于 3V 左右时,先采用最大 0.1C 的恒定电流对电池进行充电。(C 是充放电倍率,表示电池在单位时间内充放电电流与电池额定容量的比值。例如,一个电池的额定容量是 1000mAh,1C 就表示以 1000mA 的电流在单位时间内进行充放电,也表示电池在一小时内完全充放电。)
当在线性充电器设计中,电流经常会随着电池电压的上升而上升,应尽量减轻传输晶体管上的散热问题。选择大于 1.0C 的恒流充电并不会缩短整个充电充电周期时间,这样的做法是不可取的。
当以更高电流进行充电时,由于电极反应的过压以及电池里面阻抗上的电压上升,电池电压会更快速地上升。恒流充电阶段就会变短,同时下面恒压充电阶段的时间会相应增加,因此总的充电周期时间并不会缩短。
这个阶段有两种典型的充电终止方法:一种是采用最小充电电流判断,当恒压充电阶段的充电电流减小到判满电流值时终止充电;另一种是从恒压充电阶段开始计时,持续充电两个小时后终止充电过程。Air8201 选择的电池充电器充电终止方法为第一种。
Air8201 在代码中已经设置当电池的电量低于 30% 且两分钟内没有充电时自动关机。
由于 Air8201 单板子没有复位键和 BOOT 键,所以数据线 开发板之间还需要接一个 USB_BOOT 板,不过大家放心,Air8201 套件里已经包括了 USB_BOOT 板,不需要单独购买。 而且格外的注意,USB_BOOT 板在接 Air8201 开发板时不用区分正反。
此时就需要大家先点击 Luatools 工具上的 下载脚本 或 下载底层和脚本,再执行下方操作了。
6.1 ChargeICLogic.lua 中代码介绍该文件中的代码无需修改,大家直接调用这一个文件就行。
电池上限电压表:此部分定义了电池上限电压的不同设置值。Vreg 表包含多个十六进制数,每个数对应不同的电池上限电压。在 V_CTRL 寄存器中,前四位用来设置电池上限电压,其余位可以用作其他设置。默认情况下,其他位为 0。
这部分定义了快充电流的设置值。Ichg表中列出的十六进制数对应于不同充电电流的设置。在 I_CTRL 寄存器中,前三位是设置快充电流的,其余位是其他设置,默认为 0; 该电流值是通过电阻 Rsns 计算得出的,Air8201 的 Rsns 值为 1KΩ,经过公式计算后得出Ireg=500mA。
这部分是主任务的初始化。首先等待 1000 毫秒,然后通过sensor.yhm27xx函数与传感器进行通信,以获取设备信息。后面再进行传感器设备中各寄存器参数配置。
通过sensor.yhm27xx函数调用来读取传感器的数据。 参数说明:gpi``o_pin是传感器对应引脚,0x04是传感器设备 ID,0x08是设备信息寄存器的地址。等待 200 毫秒等待数据返回。
读取 I_CTRL 寄存器并设置电压跟随与快充电流。如果操作成功,将会再次读取配置寄存器并确认设置结果,记录相关的日志信息。 参数说明:gpio_pin是传感器对应引脚,0x04是芯片设备 ID 号,0x01是 I_CTRL 寄存器地址,0x02是设置电压跟随与快充电流为 0.5×Ireg。 特别说明:若需要在同一寄存器中设置多个参数,则需要将参数值进行或运算。(例如,要设置电压跟随和快充电流为 0.5×Ireg,则参数值为 0x02+0x00=0x02 。快充电流表可参考下方表格)
读取 V_CTRL 寄存器并设置电池上限电压。如果操作成功,将会再次读取配置寄存器并确认设置结果,记录相关的日志信息。 参数说明:gpio_pin 是传感器对应引脚,0x04 是芯片设备 ID 号,0x00 是 V_CTRL 寄存器地址,0x00 是设置电池上限电压为 4.2V,可参考下方表格。
提供了获取当前硬件版本号和出厂测试结果的方法,以及设置硬件版本号的功能。
实现了长按电源键的关机逻辑,按下电源键 3 秒后进行关机,松开时取消关机。
整体而言,该模块负责监控电池的电压和充电状态。它能够定期更新电量百分比,并在必要时自动关机。此外,该模块还允许用户通过长按电源键来手动关机。其基本功能是确保设备在电量过低时保护系统不受损坏,同时提供充电状态的实时反馈。
在电源管理实践中,合理的策略和有效的代码实施是成功的关键。通过实时监测电池状态和智能控制电源操作,不仅仅可以延长设备的使用时间,还能确保设备在关键时刻的稳定性与可靠性。这对于以移动电子设备和嵌入式系统为主的应用场景尤其重要。
未来,我们大家可以继续探索更为先进的电源管理技术,比如基于AI的预测分析和优化算法,以便进一步提升电源管理的智能化水平。这将为设备的使用者带来更佳的体验,使电源管理成为每一款电子设备中不可或缺的一部分。
检查是否有其他程序或任务占用过多资源,导致系统不稳定。可优先考虑优化系统任务的优先级或关闭不必要的功能模块。
确认电源键的 GPIO 引脚连接正常,确保其可被正常识别。如果仍然无效,请检查相关代码对电源键的事件处理是否正确。
设备发热可能是由于充电速率过高或设备运行负载过重引起的。建议降低负载、优化代码,或调整充电策略。
检查 USB 连接是不是正常,确保 Luatools 工具正确识别设备。注意遵循烧录步骤,并确保所用的固件版本与硬件兼容。