STMCU小助手
发布时间:2022-3-5 09:26
|
问题: 在很多便携式消费类设备上,通常需要通过 USB 口对设备自带的锂电池充电。如果使用专用的电池管理芯片,不仅增加了产品成本,也增大了 PCB 的面积。所以客户希望在已有的主芯片 STM32 上同时实现对锂电池的充电管理。 调研: 锂离子电池充电分为两个阶段:先恒流充电,到接近终止电压时改为恒压充电,电池以充电率为 1C 恒流充电,开始时电池电压以较大的斜率升压,当电池电压接近 4.2V 时,改成 4.2V 恒压充电,电流渐降,电压变化不大,到充电电流降为 1/10C 时,认为接近充满,可以终止充电。(C 是以电池标称容量对照电流的一种表示方法,如电池是 1000mAh 的容量,1C 就是充电电流 1000mA,注意是 mA 而不是 mAh,0.01C 就是 10mA。) 结论: 使用 STM32 片上定时器的 PWM 输出和 ADC 采样功能即可实现对锂电池的充电管理。 处理:
本方案在 STM32F101 上完成。BTY_CHRG(PB0)为定时器的 PWM 输出,用于控制 MOSFET 的开关程度,从而改变对锂电的充电电流。TSC101 用于充电电流的检测,将电流转换为电压量。BTY_V(PA3)和BTY_I(PB1)为 STM32 的 ADC 输入通道。STM32 通过采样充电电流 BTY_I 和电池电压 BTY_V,来调整 PWM输出的占空比,以实现闭环控制。当 BTY_V 小于 4.2V 时,逐步调整 PWM 波的占空比,使 BTY_I 达到 1C进行充电。当检测到 BTY_V 大于或等于 4.2V 时,逐步调整 PWM 波的占空比,使 BTY_I 降至 0.1C 进行充电。当充电电流小于 0.01C 时,充电完成。 建议: 客户可在本例程的基础上实现智能三段式充电,或增加温度检测,以提高产品的安全可靠性。 |
【经验分享】STM32 HAL库移植FreeModbus详细步骤
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
OpenSTLinux 6.1发布:M33-TD加持+安全升级,STM32MPU开发效率翻倍!
【经验分享】STM32CubeIDE汉化
手把手教你VSCode搭建STM32开发环境
RTOS在STM32中的应用
微信公众号
手机版