
问题:! ^/ ?. Y8 k$ x# H4 j2 j 在很多便携式消费类设备上,通常需要通过 USB 口对设备自带的锂电池充电。如果使用专用的电池管理芯片,不仅增加了产品成本,也增大了 PCB 的面积。所以客户希望在已有的主芯片 STM32 上同时实现对锂电池的充电管理。 调研: 锂离子电池充电分为两个阶段:先恒流充电,到接近终止电压时改为恒压充电,电池以充电率为 1C 恒流充电,开始时电池电压以较大的斜率升压,当电池电压接近 4.2V 时,改成 4.2V 恒压充电,电流渐降,电压变化不大,到充电电流降为 1/10C 时,认为接近充满,可以终止充电。(C 是以电池标称容量对照电流的一种表示方法,如电池是 1000mAh 的容量,1C 就是充电电流 1000mA,注意是 mA 而不是 mAh,0.01C 就是 10mA。)/ T' T! V* j/ u { 结论:2 r5 n8 Z% v, e0 k" N5 A7 i 使用 STM32 片上定时器的 PWM 输出和 ADC 采样功能即可实现对锂电池的充电管理。; m6 X! @/ E9 @ 处理:9 N* H$ K' J+ r8 J- r 0 v+ ?( s* z1 A6 ^ ![]() 本方案在 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 时,充电完成。 * u" ]* e. Z! q, ` 建议: 客户可在本例程的基础上实现智能三段式充电,或增加温度检测,以提高产品的安全可靠性。* f+ p# M" s* P+ O; i # q5 N& ]2 K5 b1 c* z# z# r! P2 y |
STM32 ISP IQTune:真正零门槛的免费ISP调整软件
【经验分享】STM32 新建基于STM32F40x 固件库的MDK5 工程
意法半导体MCU双供应链策略,打消中国客户后顾之忧
【经验分享】基于STM32使用HAL库实现USB组合设备CDC+MSC
2024意法半导体工业峰会:赋能智能电源和智能工业,构筑可持续未来
ST推出灵活、面向未来的智能电表通信解决方案,助力能源转型
意法半导体 x Qu-Bit Electronix:推动新一轮的数字声音合成革命
从STM32 MPU产品看嵌入式系统中微处理器的新变化
【Hot!】STM32全系列开发板都支持Arduino开发,你知道吗?
【经验分享】STM32 HAL库移植FreeModbus详细步骤