wkhn
认证:优质创作者
作者动态
STM32G4系列MCU——数字电源入门(4)
2023-03-14 10:46
STM32G4系列MCU——数字电源入门(3)
2023-03-13 20:05
STM32G4系列MCU——数字电源入门(2)
2023-03-13 19:51
STM32G4系列MCU——数字电源入门(1)
2023-03-13 14:24
2KW交错并联+同步整流BUCK电路的数字DC-DC电源实践
2023-01-31 20:45

ISL6753全桥软开关电路的数字电源实现

   最近,有一个项目,要求仿照Intersil公司的isl6753的功能,用dsp芯片做一个数字电源,为此笔者选用了TI的TMS320F28035这颗芯片做了一台初始样机。

      在笔者以前的文章中,介绍过用28035这颗芯片做的数字电源,所以这里就不再过多的阐述28035的技术细节。isl6753是一颗固定频率的谐振软开关功能的PWM调制芯片。在做DC-DC电源时,驱动一个全桥DC变换器。左右桥臂的上桥臂都是固定50%占空比,且互补输出。左右下桥臂为PWM推挽模式输出,通过调节脉冲宽度(即占空比)来调节输出电压或电流。再具体的内容请自行搜索isl6753相关的资料。下面是原理图的局部,主要是全桥变换器部分和dsp芯片的控制部分。

 

电源参数:

输入电压:270VDC(±10%)

输出电压:324V(电压0V至324V可调)

输出电流:0-5A(可稳流输出)

稳流精度:±2%

稳压精度:±1%

开关频率:80KHz

控制模式:峰值电流控制

负载类型:超级电容5F。


28035片内资源分配:

输出电压采样:ADCINA0

输出电流采样:ADCINB0

左桥臂峰值电流比较器:COMP1A

右桥臂峰值电流比较器:COMP2A

左上桥臂驱动(UL):PWM1A

左下桥臂驱动(LL):PWM1B

右上桥臂驱动(UR):PWM2A

右下桥臂驱动(LR):PWM2B

LED指示灯:GPIO24

比较器1的输出指示:GPIO20

比较器2的输出指示:GPIO21

系统示意图如下:

      本数字电源程序设计中最主要的工作就是设计四路PWM的发波逻辑。因为28035的PWM配置非常灵活,所以要实现与isl6753相同的功能可能就会有许多种不同的PWM配置方案。下面介绍一下笔者的配置方案。

左边的上下桥臂用PWM1驱动,右边上下桥臂用PWM2驱动。

PWM的时基的计数模式采用上下方式。

在向上计数过程中,用PWM1的CMPA事件来做为下桥臂开通的起点,通过调节CMPA的位置,可以调节上下桥臂的死区时间。

CMPB用来控制下桥臂的占空比,以达到控制输出电压和输出电流的目的。CMPB的值不能超过PRD,所以最大占空比不超过50%。

PRD事件做为上桥臂的开通起点,ZERO事件做为上桥臂导通的终点。上桥臂刚好为50%占空比,且不需要调节占空比。

PWM2的配置与PWM1相同,只是PWM2要做为PWM1的从属,与PWM1同步,且做180°的相移。


下面开始程序的编写:

首先打开CCS,笔者用的是CCS7.4.0。导入TI的数字电源程序模板。

导入成功后,先进行28035引脚的分配和外设时钟的使能。

将GPIO引脚相应的PWM功能开启

为了便于观察比较器的输出是否正确,将比较器的输出使能。

该电源需要急停开关功能,用于手动控制电源的启动与停止。将该功能分配到GPIO29,当该引脚为高电平时,电源停止工作,低电平时,正常输出。

在ProjectName-CLA_Shared.h文件中包含程序中用到的外设头文件。


1)修改外设配置文件

因为并没有一个适合ISL6753的PWM输出逻辑的配置文件,所以首先拿一个比较相近的PWM配置文件进行修改。原程序框架中的PWM_2ch_UpDwnCnt_Cnf.c比较适合拿来修改。

同时要修改函数名。

PWM配置文件改完后,用宏语句的形式更新占空比,在工程文件夹中新建一个头文件:PWM_update.h。

因为是电流峰值控制,所以此处的下桥臂的占空比其实是下桥臂的最大占空比,下桥臂的实际占空比是由模拟比较器的输出通过控制PWM的TZ模块来确定的。


因为CLA的两个任务分别由两个不同ADC的中断来触发,在原来TI的程序框架中ADC_SOC_CNF.c配置文件只触发了ADCInterrupt1,而没有触发ADCInterrupt2,也就无法启动CLA的任务2。所以需要修改ADC的配置文件,将ADCInterrupt2添加进去。

其它地方不需要改,改过的文件和函数名都要重新命名,防止冲突。


将一些常用的常量预定义集中在一个文件中:Define.h


2)PWM的配置:

在原来的程序中PWM2是通过触发C28内核中断来完成PWM占空比更新的,现在需要在CLA中进行,先把相关代码注释掉。

PWM1和PWM2触发ADC的SOCA设定。

最后,通过调用配置函数,正确启动PWM1和PWM2。

此时PWM已经能正常输出,因为存在死区时间,所以每一路PWM最大占空比要小于0.47。


3)ADC的配置

因为在修改后的ADC的配置函数中增加了一个数组形参,用来设置ADC的中断源,所以先声明一个数组:

分别用到ADC的SOC0和SOC1,并分配它们的采样通道。

PWM1的SOCA触发ADC的SOC0,PWM2的SOCA触发ADC的SOC1

ADC的采样完成后,产生EOC0和EOC1,做为进入CLA任务的先决条件。

前面的配置工作完成后,调用ADC的配置函数

为了进入CLA的任务,CLA也要进行相关的配置。


4)模拟比较器配置

将配置文件DAC_Cnf.c导入工程文件夹中,直接调用配置函数。

到此,外设的配置完成。在下一篇文章中,将介绍如何实现输出的恒压恒流输出。

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 6
收藏 13
关注 439
成为作者 赚取收益
全部留言
0/200
  • 好学2019 2023-01-31 12:02
    学习下
    回复
  • shanzhihun 2022-12-08 20:55
    过来学习
    回复