打印
[应用相关]

STM32垂直应用挑战第七周+STM32F334数控电源详解

[复制链接]
4179|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shendu0032|  楼主 | 2020-12-31 21:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
哈哈,小伙伴们我又回来了,@21小跑堂 上周连续两门专业课的考试,着实把我忙活的不轻,现在有空来二姨家坐坐。哇,这周的学习主题竟然是我已然学习过的数控电源。之前我是做硬件设计的,对数控电源有了一定的了解,而且我的学长也多有这方面的经验分享。对其中用到的BUCK电路原理以及MOS管的驱动电路也有一定的设计能力。我今天就把我理解到的分享给大家,数字电源并不是简单的在系统中应用了数字器件,比如DSP/MCU等,而是指在整个系统的控制中应用数字器件的计算能力和离散控制方法。通过软件编程实现的用于电源控制算法的复杂度远远高于模拟电路所能实现的硬件控制方法,后者仅局限于PID控制。DSP/MCU的应用使得开关电源能够用上各种现代控制算法,比如自适应控制,预测控制。这些先进的控制算法大大拓展了数字电源的性能,丰富了其应用场景。除了通过软件编程可以带来多功能以及控制算法上的优势外,数字电源所采用的DSP/MCU往往还带有丰富的通信外设,各种接口的使用让数字电源具备了通信能力,这大大拓展了数字电源的应用场景和功能,比如远程控制、在线监测、在线升级软件,多电源组网,集群管理,故障报警等等。这是纯模拟电源完全不具备的。DSP/MCU在数字电源的应用还催生了数字电源专用的通讯协议——PWBus(Power Management Bus,电源管理总线),这是一种开放标准的数字电源管理协议。通过定义传输和物理接口以及命令语言,即可促进与电源转换器或其他设备的通信。数字电源有什么优势吗?
(1)便于高度集成化。由于数字电路采用二进制,所以电路基本单元简单,而且对元件要求也不严格,允许电路参数有较大的离散性,有利于将众多的基本单元集成在同一硅片上进行批量生产。
(2)工作准确可靠,抗干扰能力强,数字电源用0和1来表示信号,数字电路辨别信号有无是非常简单的,这就大大提高了电路的工作可靠性。同时数字信号不易受到噪声干扰,抗干扰能力极强。
(3)数字信息便于长期保存。借助某种媒体(磁盘、光盘等)可将数字信息长期保存下来。
(4)数字集成电路产品多、通用性强且成本低。
(5)保密性好,数字信息容易进行加密处理,不易被窃取。
(6)不仅能完成数值运算,还可以进行逻辑运算和判断。这在控制系统中是不可缺少的。
数字电源与模拟电源应用场景比较:
(1)数字电源适合于控制参数众多,实时响应速度快,复杂的高性能电源系统,可广泛用于移动通信设备,计算机服务器、数据中心电源系统及不间断电源(UPS)等负载波动大,要求多路不同的供电电压,甚至对供电的时序也有特殊要求,比如通信用电源、数据中心供配电、复杂电路系统(比如FPGA/CPU)。
(2)模拟电源适用于简单易用,控制参数少,成本低的应用场合。负载波动不大,电压等级需求单一的系统适合采用模拟电源。

ST也研发了专门用于数字控制的MCU——STM32F334,这应该是说是专为电源控制量身打造的一款高性能MCU,无论是DC/DC转换,DC/AC逆变,BUCK/BOOST,以及它们各种不同的拓扑结构,都非常适合用这款芯片来做控制器,也可以用在其他地方。那这款芯片有什么特别的性能吗?答案是肯定的。高分辨率定时器,等效频率可达4.608G,控制精度达到217ps,领先世界啊。高分辨率定时器由一个主定时器和5个子定时器组成,主定时器可以同时控制5个定时器,且每个定时器有独立的计数器,最多可产生10通道独立波形或者5组互补PWM,插入死区时间最小可达到868ps,并且上升沿下降沿可以设置不同的死区时间,不同的延迟方式。可以在主定时器的控制下,其他的定时器之间可以产生任意角度移相,用于多相(三相)的控制。


今天介绍利用STM32F334设计的数控电源。BUCK同步降压数字电源系统。该系统由辅助电路,控制电路,驱动电路,BUCK电路,信号调理电路构成。采用STM32F334的PWM模块发出对称的PWM波驱动BUCK电路,通过ADC模块采集直流母线电压,输出电压,输出电流及远端测量,还预留了一个串口通信接口,可以实现与上位机,操作面板等设备通信。
(1)下图是同步BUCK由经典的BUCK变换而来,具体是使用MOS管替换二极管实现。输入端与输出端都采用LC滤波,使得输入输出电流连续,便于滤波。输出端的负极采用电阻实现电流采样,并经过放大电路放大之后送入MCU的ADC口。

(2)下图是驱动电路,MOS管的驱动电路采用TI的半桥驱动芯片UCC27211。该器件内部集成自举电容 充电用二极管,耐压值120V,驱动电流达4A。但是这款器件内部不带死区时间功能,为避免上下桥臂同时导通,死区时间必须在MCU上实现。

(3)下图是信号调理电路。该电路包括输入电压检测,输出电压检测,远端电压检测,输出电流检测等,这些功能都是基于TLV2374运算放大器实现并且采用差分形式。输入电压检测直接采用电阻分压实现。表达式为:Vin=ADC_V_IN*31

(4)输出电压检测电路基于TLV2374的差分电路实现,由于主电路的输出端的低端电流采样会对电压检测形成干扰,并且差分电路具有很高的共模信号噪声,有利于猜到准确的信号。表达式:Vout=ADC_V_OUT*30。

(5)远端电压检测电路基于TLV2374的差分电路实现,远端电路测量对于电池充放电是有效的,可以避免由于导线压降产生的影响。表达式:Vext=ADC_EXT_SENSN*30

(6)输出电流检测电路基于TLV2374的差分电路实现,在主电路中采样电阻采用10毫欧,要使MCU能够识别到该信号,必须经过放大到一定值。又因为本应用要实现双向DCDC功能,这就使得电流有正负,但是MCU无法采集负信号,这里得人为的将电压提高,保证电流在负值时,ADC_I_OUT输出还是正。所以采用1:1电阻分压,然后经过一个跟随器(提高驱动能力)输出一个1.65V的参考电压。表达式:Iout=(ADC_I_OUT-1.65)/0.2


(6)下面是控制电路

(7)辅助电源电路产生12V、3.3V两种电压等级,XL7005A将输入端降压到12V,SPX3819-M-3.3将12V稳压到3.3V。SPX3819-M-5.0将12V稳压到5V。

STM32F334资源分配如下所示:
功能分类引脚名称 对应引脚 说明
PWMPA8 PWM1A 上桥臂驱动信号
PWMPA9 PWM1B 下桥臂驱动信号
ADC信号 PA0ADC_I_OUT 输出电流检测
ADC信号 PA1ADC_V_OUT 输出电压检测
ADC信号 PA2 ADC_EXT_SENSN 远端电压检测
ADC信号 PA3 ADC_V_IN 输入电压检测
串口通信 PB6 USART1_TX USART1发送
串口通信 PB7 USART1_RX USARET1接收
程序下载接口 PA13 SWDAT SWD仿真接口
程序下载接口 PA14 SWCLK SWD仿真接口
LED指示灯 PB3 LED2故障指示灯
LED指示灯 PB4 LED1 运行指示灯
好了。今天先分享到这里,还有一些软件和BUCK电路的相关知识,我会在以后的帖子中进行介绍,非常感谢大家的支持,我们2021年再见。祝好。
原理图和PCB-PDF档.pdf (1 MB)
AN4449 基于STM32F334调试说明.pdf (1.21 MB)

使用特权

评论回复
沙发
mmuuss586| | 2021-1-3 12:42 | 只看该作者

使用特权

评论回复
板凳
sanzi666| | 2021-5-31 08:51 | 只看该作者
在学习你那个程序,不知道你那个PID调节怎么处理的,怎么做到电压电流闭环调节的

使用特权

评论回复
地板
蒙面男@蒙面女王| | 2021-12-15 23:21 | 只看该作者
请问接下来的程序呢?

使用特权

评论回复
5
sanzi666| | 2021-12-28 08:12 | 只看该作者
mybuck2.0.rar (857.63 KB)

使用特权

评论回复
6
bjfxxc| | 2022-4-20 14:42 | 只看该作者
好东西,感谢楼主的分享。

使用特权

评论回复
7
Jacquetry| | 2022-10-5 21:23 | 只看该作者
怎么做到电压电流闭环调节的啊?

使用特权

评论回复
8
Pulitzer| | 2022-10-7 08:29 | 只看该作者

但是如果不懂程序设计的思想的话,会给你做项目的过程中带来很多很多的困惑。

使用特权

评论回复
9
Uriah| | 2022-10-7 15:30 | 只看该作者

只要内存占用量不超过 256.0 就可以用 small 模式编译

使用特权

评论回复
10
Bblythe| | 2022-10-7 18:29 | 只看该作者

代码量小的时候用来做条件判断

使用特权

评论回复
11
周半梅| | 2023-6-1 07:26 | 只看该作者

完全不必要的 Else 块

使用特权

评论回复
12
Pulitzer| | 2023-6-1 08:29 | 只看该作者

图像由前景和背景组成,在灰度直方图上,前景和背景会形成高峰,在双峰之间的最低谷处就是阈值。

使用特权

评论回复
13
周半梅| | 2023-6-1 09:32 | 只看该作者

对于没有else的场景,使用ifPresent即可

使用特权

评论回复
14
童雨竹| | 2023-6-1 10:25 | 只看该作者

当端口P1.0输出低电平时,小灯就亮,因为此时小灯中有电流通过

使用特权

评论回复
15
Wordsworth| | 2023-6-1 11:28 | 只看该作者

算数逻辑单元(ALU):处理算数和逻辑运算

使用特权

评论回复
16
Clyde011| | 2023-6-1 12:31 | 只看该作者

需要在做项目的过程中经历磨难

使用特权

评论回复
17
万图| | 2023-6-1 14:27 | 只看该作者

格式化输出需要删除掉多余的空白行

使用特权

评论回复
18
Uriah| | 2023-6-1 15:30 | 只看该作者

I2C1工作时钟源选择;I2C1模块工作时钟的开启使能。

使用特权

评论回复
19
帛灿灿| | 2023-6-1 17:26 | 只看该作者

Git 的api很多,但其实平时项目中90%的需求都只需要用到几个基本的功能即可

使用特权

评论回复
20
Bblythe| | 2023-6-1 18:29 | 只看该作者

孔璧里头必须经过电镀

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:总是缺乏自信,进进退退,走走停停,不停的自我耗损,又不断的为自我耗损而再耗损。

33

主题

260

帖子

6

粉丝