STMCU小助手
发布时间:2022-3-5 09:26
|
问题: 在很多便携式消费类设备上,通常需要通过 USB 口对设备自带的锂电池充电。如果使用专用的电池管理芯片,不仅增加了产品成本,也增大了 PCB 的面积。所以客户希望在已有的主芯片 STM32 上同时实现对锂电池的充电管理。 调研:$ q4 w/ w* Z; s! H6 C 锂离子电池充电分为两个阶段:先恒流充电,到接近终止电压时改为恒压充电,电池以充电率为 1C 恒流充电,开始时电池电压以较大的斜率升压,当电池电压接近 4.2V 时,改成 4.2V 恒压充电,电流渐降,电压变化不大,到充电电流降为 1/10C 时,认为接近充满,可以终止充电。(C 是以电池标称容量对照电流的一种表示方法,如电池是 1000mAh 的容量,1C 就是充电电流 1000mA,注意是 mA 而不是 mAh,0.01C 就是 10mA。)5 I% _0 F: x( g" t3 f + ]/ B- w% a# z! a& H" |) P 结论:( M. n7 l$ y4 i1 y 使用 STM32 片上定时器的 PWM 输出和 ADC 采样功能即可实现对锂电池的充电管理。' Y- K) h- P) f6 K8 y4 ^8 I - C1 F1 T8 ]2 L) T * g1 k. h7 t' R& l8 N% a 处理:% W/ e, J! ?6 G8 n 5 ]. X- F3 }5 _' E% e" @/ O+ f
本方案在 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 时,充电完成。' ~5 L4 I0 c; ^/ C9 H* P7 G0 `6 ` 建议:1 K% @2 m& x7 [ 客户可在本例程的基础上实现智能三段式充电,或增加温度检测,以提高产品的安全可靠性。 . n: N: a+ b5 |% \$ e |
【经验分享】STM32语音识别的智能蓝牙音箱(源程序+原理图+PCB+设计说明书+PPT)
想找个ST芯片
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
技术手册stm32f1xx中的一个小问题
【经验分享】STM32 HAL库移植FreeModbus详细步骤
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
微信公众号
手机版