芯教程|平头哥助力昊芯HX2000系列芯片EPWM_PC电源稳压输出
中科昊芯
2022年08月12日 17:22
收录于文集
共36篇

随着能源需求的日益紧张,科技的日趋智能化,高可靠的稳压输出,已日趋成为当今社会迅速发展的必然趋势。中科昊芯顺应时代要求,推出适用于高精度工业自动化运动控制的新版HXS320F28034PNT数字信号处理器DSP,芯片EPWM_PC,由一次触发首脉宽调制与高频脉冲电压脉宽调制组成,更有效助力于工程师实现快速有效蓄能降压斩波、高可靠稳压输出,广泛应用于电动汽车与轨道交通电源、新能源发电、白色家电开关电源等高精度控制领域。

自平头哥半导体有限公司剑池集成开发环境(简称“CDK”)支持HX2000系列芯片调试以来,本期以EPWM_PC降压斩波实例对EPWM_PC电源稳压输出展开介绍。

HX2000系列EPWM_PC降压斩波,由一次触发与高频调制模块组成,是一种通过高频信号调制PWM波,实现降压斩波的模拟降压电路模块,原理如下:

经EPWM时基、比较、动作、死区模块输出PWM波,作为PC斩波模块输入。经一次触发模块,采用公式Tsysclkout*8*PCCTL[OSHTWTH],斩波输入波形,使输出有效快速导通功率器件。通过PCCTL[CHPFREQ]配置斩波时钟频率分频系数,1~8分频输出高频信号,调制产生占空比为(PCCTL[CHPDUTY]+1)/8的脉冲电压,使功率器件获得足够驱动能力,以在一定时间内维持导通状态。典型Buck电路应用如下,可通过EPWM_PC一次触发脉宽调制,有效快速导通功率器件Q,使输入电源向电感L充电。经高频时钟调制,输出脉冲电压,作用于功率器件Q,以维持导通状态,使电感L完成充电,实现降压斩波,稳定电压输出。

详细介绍请参见下图所示二维码B站视频链接:

由此设计EPWM_PC降压斩波实例:PWM波频率30kHz、死区0.4us,双边沿延时,互补输出。斩波:(1)PWM1,一次触发调制脉宽,输出频率250kHz;(2)PWM2,一次触发调制脉宽,输出频率250kHz;斩波时钟占空比62.5%输出。

基于CDK开发,代码包括:EPWM的 GPIO配置、EPWM频率配置30KHz、死区0.4us,双边沿延时,互补输出、事件触发模块配置。斩波PWM1/2第一个脉冲宽度为2/8的SYSCLKOUT时钟周期;PWM1的斩波时钟频率分频系数为不分频、62.5%脉宽输出中断服务程序;PWM2的斩波时钟频率分频系数为3分频、62.5%脉宽输出中断服务程序。主程序调用执行。

代码块
clike
自动换行
复制代码

int main(void)
{ 
  /*初始化系统控制*/
  InitSysCtrl();
  /*初始化EPwm GPIO*/
  InitEPwm1Gpio();
  InitEPwm2Gpio();
  InitEPwm3Gpio();
  /*关中断*/
  InitPieCtrl();
  /*清中断*/
  IER = 0x0000;
  IFR = 0x0000;
  /*初始化PIE向量表*/
  InitPieVectTable();
  EALLOW;
  /*epmw1_isr中断,一次触发2/8首脉宽调制斩波*/
  PieVectTable.EPWM1_INT = &epwm1_isr;
  /*epmw2_isr中断,一次触发2/8首脉宽调制,1/8系统时钟三分频、62.5%脉宽调制斩波*/
  PieVectTable.EPWM2_INT = &epwm2_isr;
  /*将epmw3_isr入口地址赋给EPWM3_INT*/
  PieVectTable.EPWM3_INT = &epwm3_isr;
  EDIS;
  EALLOW;
  /*禁用TBCLK同步,允许EPWM初始化配置*/
  SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;
  EDIS;
  /*初始化EPWM1,EPWM2,EPWM3,频率30KHz,向上向下计数模式*/
  InitEPwm1Example();
  InitEPwm2Example();
  InitEPwm3Example();
  EALLOW;
  /*使能TBCLK同步,EPWM配置功能起作用*/
  SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;
  EDIS;
  /*禁止CPU中断并清除所有中断标志*/
  IER |= M_INT3;
  /*使能相对应的中断*/
  PieCtrlRegs.PIEIER3.bit.INTx1 = 1;
  PieCtrlRegs.PIEIER3.bit.INTx2 = 1;
  PieCtrlRegs.PIEIER3.bit.INTx3 = 1;
  /*使能全局中断*/
  EINT;
  while(1)
  {
  }
  return 0;
}
复制成功

CDK上开发降压斩波实例程序,编译结果为:

编译通过后,可以开始调试了,调试结果如下:

(1)下图中通道1和通道2的波形为PWM斩波输出整体波形:

(2)下图中通道1和通道2的波形均为第一个脉冲宽度为2/8的SYSCLKOUT时钟周期:

(3)下图中通道1为斩波时钟频率分频系数为1分频,占空比为7/8的波形;通道2为斩波时钟频率分频系数为3分频,占空比为7/8的波形: