本帖最后由 香水城 于 2017-8-16 15:04 编辑
STM32F334 应用于LLC+SR的高精度Timer波形产生
前言
LLC 谐振变换器优于常规串联谐振变换器和并联谐振变换器:在负载和输入变化较大时,频率变化仍很小,且全负载范围内切换可实现零电压开关(ZVS),越来越多的被使用,同时使用二次同步整流(SR)可以实现零电流开关(ZCS)。微控制器的使用带来体积更小,控制更灵活的产品, STM32F334 内部集成高精度Timer 高精度,高灵活性的PWM 波形产生不仅使控制变简单,同时对产品效率提升带来好处。
简要说明LLC以及SR原理
对于普通的拓扑而言,在开关管开关时,MOSFET 的D-S 间的电压与电流产生交叠,因此产生开关损耗,见下图示意:
为了减小开关时的交叠,人们提出了零电流开关(ZCS)和零电压开关(ZVS)两种软开关的方法。对于ZCS:使开关管的电流在开通时保持在零,在关断前使电流降到零。对于ZVS:使开关管的电压在开通前降到零,在关断时保持为零。
实际应用中一般是在变压器源边ZVS 打开,而在副边进行二次同步整流(SR--synchronous rectification)的ZCS 的关闭操作,下图为LLC + SR 基本硬件构图:
电感Lr,变压器电感Lm,电容Cr 构成LLC 网络。
控制波形
在变压器源边根据电路参数设定固定的死区时间,副边延迟时间则根据实际电路以及频率进行实时调整。
MOSFET 端控制波形如下:
STM32F334的HRTIM简介
STM32F334 内部集成高精度Timer(HRTIMER),时钟频率最高达到4.6GHz,同时各种波形控制机制,可以灵活配置波形产生,5 路Timer 单元,每个上面可以产生互补输出或者单独的PWM,同时可以使用Master Timer 进行同步操作,各种Fault 产生机制快速终止输出,下图为HRTIMER 框图:
如何产生波形以及机制
Timer A 互补输出(两路波形)作为变压器源边PWM 波形,死区时间根据电路参数调整,Timer B 其中一路波形作为SR 控制输出1,Timer C 其中一路波形作为SR 控制输出2;具体操作如下:
- 设定Master Timer 做为Timer A,B,C 的同步信号
pTimerCfg.ResetTrigger = HRTIM_TIMRESETTRIGGER_MASTER_PER;
- 设定Timer A 两路互补输出,死区时间可调,本例中死区时间为T1
pTimerCfg.DeadTimeInsertion = HRTIM_TIMDEADTIMEINSERTION_ENABLED;
pDeadTimeCfg.RisingValue = T1;
pDeadTimeCfg.FallingValue = T1;
- 设定Timer A 的Set 源为TIMERA_Compare1, Reset 源是Master Timer 周期事件
pOutputCfg.SetSource = HRTIM_OUTPUTSET_TIMCMP1;
pOutputCfg.ResetSource = HRTIM_OUTPUTRESET_MASTERPER;
- 设定Timer B 为单路输出,Set 源为TIMERB_Compare1,Reset 源是TIMERB_Compare2
pOutputCfg.SetSource = HRTIM_OUTPUTSET_TIMCMP1;
pOutputCfg.ResetSource = HRTIM_OUTPUTRESET_TIMCMP2;
- 设定Timer C 为单路输出,Set 源为TIMERC_Compare1,Reset 源是TIMERC_Compare2
- 设定TIMERB_Compare1 数据为半周期数据(Half period)+ T2,TIMERB_Compare2 数据为T3
__HAL_HRTIM_SetCompare(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, HRTIM_COMPAREUNIT_1,HALF_FRQUENCY+T2);
__HAL_HRTIM_SetCompare(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, HRTIM_COMPAREUNIT_2, T3);
- 设定TIMERC_Compare1 数据为T2,TIMERB_Compare2 数据为半周期数据(Half period)+ T3
__HAL_HRTIM_SetCompare(&hhrtim1, HRTIM_TIMERINDEX_TIMER_C, HRTIM_COMPAREUNIT_1, T2);
__HAL_HRTIM_SetCompare(&hhrtim1, HRTIM_TIMERINDEX_TIMER_C, HRTIM_COMPAREUNIT_2,HALF_FRQUENCY+T3);
实测波形:
PWM 波形参数设定如下:
Timer 时钟:2.048GHz
PWM 频率:100KHz
T1:500ns
T2:1000ns
T3:300ns
Timer A 未加死区波形:
Timer A 加入死区时间波形:
对应的代码:STM32F334_LLC_SR
更多实战经验请看:【ST MCU实战经验汇总贴】
|