STM32数控恒流恒压充电器开发实战

1. 项目概述:数控恒流恒压充电器开发实录

去年接手的一个工业级锂电池充电器项目,让我对陶晶驰串口屏与STM32的联动开发有了全新认识。这个数控电源的核心诉求很简单:通过触摸屏设置目标电压/电流值,主控芯片实时调整PWM输出,实现精确的恒流恒压充电控制。听起来像是嵌入式开发的常规操作?但魔鬼藏在细节里——当你的PWM频率高达20kHz,ADC采样率突破1MHz,而串口屏的触摸响应延迟有50ms时,整个系统就变成了数字信号与模拟电路的角斗场。

项目中使用的陶晶驰TJC4827T043_011串口屏是个有趣的家伙。4.3寸480×272分辨率,支持Lua脚本扩展,最关键是价格只有同性能工业屏的三分之一。不过它的USART通讯协议有个特性:所有触摸事件都是异步上报的,这意味着主控芯片必须处理好"人机交互延迟"与"实时控制"之间的矛盾关系。就像你一边要应对领导随时可能改变的主意,一边还要保证生产线稳定运行。

需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。

2. 硬件架构设计要点

2.1 功率拓扑选择

采用Buck-Boost拓扑结构实现0-30V/0-5A的可调输出。关键元件选型:

  • 主控芯片:STM32F103C8T6(72MHz Cortex-M3)
  • 功率MOS:IRF3205(55V/110A)x2
  • 驱动芯片:IR2104S半桥驱动器
  • 电流采样:INA240高侧电流检测放大器
  • 电压基准:REF3025(2.5V±0.1%)

特别注意:Buck-Boost拓扑的相位补偿设计直接影响稳定性,建议在反馈网络中加入可调零极点补偿电路。我在PCB上预留了多个RC参数焊盘,方便后期调试。

2.2 抗干扰设计实录

初期测试时出现的ADC采样毛刺问题,本质是数字噪声通过地平面耦合到了模拟电路。最终采取的解决方案堪称"硬件滤波全家桶":

  1. 在运放反馈端并联10nF+100pF组合电容(应对不同频段噪声)
  2. ADC基准脚添加47μF钽电容+1μF陶瓷电容
  3. 所有数字信号线串联22Ω电阻
  4. 采用星型接地,功率地、数字地、模拟地在一点汇合

实测表明,仅第4项改进就使电压采样波动从±50mV降至±5mV。这让我想起大学老师常说的:"处理好地线,问题就解决了一半。"

3. 软件核心逻辑实现

3.1 PWM动态调整策略

PWM生成采用TIM1的CH

内容推荐

已经到底了哦
已经到底了哦