TMS28027输出PWM波例程解析

PWM波模块由Time-Base(时基)、Counter-Compare(计数器比较)、Action-Qualifier(波形发生器)、Dead-Band(死区设置)、Trip-Zone(错误处理)、Event-Trigger(事件触发)、PWM-Chopper(PWM斩波器)、HRPWM(高分辨率脉宽调制器)、Digital Compare Event(数字比较事件)这些子模块组成

例程中输出一个PWM波只需要用到TB(Time-Base)、CC(Counter-Compare)、AQ(Action-Qualifier)、ET(Event-Trigger)模块

首先看TB模块包含的寄存器

TBPRD   决定时基计数器的周期(设置 PWM 频率)。

TBPHS    设置所选 ePWM 相对于提供同步输入信号的时基的时基计数器相位。

TBCTR    读取当前时基计数器值

TBCTL     控制时基行为

TBSTS    

TBPRDHR(1)

TBPHSHR(1)

TBPRDHRM(1)

TBPRDM(1)

(1)该寄存器仅在包含高分辨率扩展 (HRPWM) 的 ePWM 实例上可用。 在不包含 HRPWM 的 ePWM 模块上,此位置是保留的。

  

 CC包含的寄存器

CMPCTL    控制计数器比较寄存器的工作模式、状态标志等

CMPA          CMPA 寄存器中的值不断与时基计数器 (TBCTR) 进行比较。 当值相等时,计 数器比较模块生成“时基计数器等于计数器比较 A”事件。 此事件被发送到动作限定符, 在那里它被限定并将其转换为一个或多个动作。 这些操作可应用于 EPWMxA 或 EPWMxB 输出,具体取决于 AQCTLA 和 AQCTLB 寄存器的配置。

CMPB同理

AQ包含的寄存器

 ET包含的寄存器

PWM模块各寄存器更详细的介绍我整理在了pdf里https://download.csdn.net/download/asbcddasds/20430625

 例程中用PWM3模块,对应的引脚为gpio4、5。

 

 初始化程序

GPIO的初始化以及PWM模块的设定

void InitEPwm3Gpio(void)
{
   EALLOW;
    GpioCtrlRegs.GPAPUD.bit.GPIO4 = 1;    // Disable pull-up on GPIO4 (EPWM3A)
    GpioCtrlRegs.GPAPUD.bit.GPIO5 = 1;    // Disable pull-up on GPIO5 (EPWM3B)
    GpioCtrlRegs.GPAMUX1.bit.GPIO4 = 1;   // Configure GPIO4 as EPWM3A
    GpioCtrlRegs.GPAMUX1.bit.GPIO5 = 1;   // Configure GPIO5 as EPWM3B
    EDIS;
}
void InitEPwm3Example(void)
{EALLOW;
   EPwm3Regs.TBPRD = 2000;       // Set timer period计数为2001(设置频率)
   // Setup TB
   EPwm3Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; // 模式选择Count up
   EPwm3Regs.TBCTL.bit.PHSEN = TB_DISABLE;    // 禁用相位加载
   EPwm3Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;   // Clock ratio to SYSCLKOUT
   EPwm3Regs.TBCTL.bit.CLKDIV = TB_DIV1;      //分频设置
   EPwm3Regs.TBPHS.half.TBPHS = 0x0000;       // 相位设置为0
   EPwm3Regs.TBCTR = 0x0000;                  //清除时基计数器
   // Setup shadow register load on ZERO
   EPwm3Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW; //计数器计较A寄存器工作在影子模式
   EPwm3Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW; //计数器计较B寄存器工作在影子模式
   EPwm3Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;//计数器比较A从影子模式加载,时基计数器初始置零
   EPwm3Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;
   // Set Compare values确定占空比
   EPwm3Regs.CMPA.half.CMPA = 50;             // 设定比较值A为50
   EPwm3Regs.CMPB = 1950;                     // 设定比较值B为1950

   // Set Actions
   EPwm3Regs.AQCTLA.bit.CAU = AQ_SET;         // 当计数器等于CMPA寄存器且计数器为递增时,强制epwm3a输出高电平    
   EPwm3Regs.AQCTLA.bit.CBU = AQ_SET; 
   EPwm3Regs.AQCTLA.bit.ZRO = AQ_CLEAR;       // 当计数器为0时切换epwm3A的输出
   EPwm3Regs.AQCTLB.bit.ZRO = AQ_CLEAR;    

   // Interrupt where we will change the Compare Values
   EPwm3Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;  //使能事件计数器为零
   EPwm3Regs.ETSEL.bit.INTEN = 1;             //启用 ePWM 中断 (EPWMx_INT) 生成
   EPwm3Regs.ETPS.bit.INTPRD = ET_3RD;        //在 ETPS[INTCNT] = 1,1(第三个事件)上产生中断
EDIS;
   // Start by increasing the compare A and decreasing compare B

}

PWM周期计算=(TBPRD+1)xTBCLK————TBCLK=SYSCLKOUT / (HSPCLKDIV × CLKDIV)

对于TMS28027来说SYSCLKOUT=60MHZ

例程中,HSPCLKDIV和CLKDIV都等于1,则TBCLK=60MHZ/1=16.67ns

周期为2001*16.67ns=33.4ms

占空比计算:

PWM3A通道占空比为(2000-50)/2000=97.5%

PWM3B同理

最后将函数导入主函数即可

 

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: TMS320F是一款数字信号处理器,用于处理数字信号,其中"PWM"代表脉冲宽度调制技术,"PWM移相"是指在PWM控制中通过改变相位来实现斩控制。 PWM脉冲宽度调制是一种常见的控制技术,可用于控制电压、电流或功率。通过改变脉冲的宽度,可以调节输出信号的平均值。脉冲宽度越宽,输出信号的平均值就越大,反之亦然。 TMS320F芯片提供了PWM控制功能,可以通过配置寄存器来设置控制参数,如占空比和频率。PWM移相是在PWM信号控制中改变相位的一种技术。通过改变相位,可以实现不同的控制效果。 斩技术是一种在PWM形上进行截断的技术,可以生成不同的形。移相则是改变PWM信号与参考信号的相位差。通过斩和移相的操作,可以实现更加灵活的控制。 在使用TMS320F进行PWM移相控制时,可以将PWM信号与参考信号进行比较,并根据比较结果调整斩和相位差,以达到所需的控制效果。这种技术广泛应用于电力电子、电机控制、照明等领域,具有调节精度高和响应速度快的优点。 总之,TMS320F芯片提供了PWM控制功能,通过斩和移相技术,可以实现精确的控制。这种技术在许多领域都有广泛的应用,并且可以根据实际需求进行灵活调整。 ### 回答2: TMS320F是德州仪器(Texas Instruments)推出的一款数字信号处理器。PWM(Pulse Width Modulation)即脉宽调制,是一种通过改变信号的脉冲宽度来控制电压或者电流的方法。斩移相则是使用PWM技术来控制电机的相位。 在TMS320F中,可以通过配置PWM输出通道的参数来实现斩移相的功能。首先,需要设置PWM频率,以确定斩的周期。然后,根据具体需求设置PWM的占空比,即信号高电平和低电平的时间比。占空比的调整可以通过控制电机的转速,并且可以通过改变PWM的频率来实现不同转速的要求。 移相是指通过改变PWM信号的相位位移来控制电机的相位,实现转向或者调整电机的运动和工作。在TMS320F的PWM控制器中,可以通过设置相关参数来移相。通过操控PWM信号的触发角度和触发源,可以实现不同的相位控制方法,如硬件插补和软件插补。 总之,TMS320F DSP可以利用其PWM控制器的功能实现斩移相技术。通过适当配置PWM输出通道参数,可以实现对电机速度和相位的控制,以满足实际应用需求。 ### 回答3: TMS320F PWM是一种数字信号处理器,它具有可编程的PWM(脉宽调制)功能。PWM是一种常用的电信号生成技术,它可以通过改变信号的脉冲宽度来控制输出电压或电流的平均值。 而斩PWM的一种特殊形式,它通过周期性地开启和关闭开关来产生方信号。当开关关闭时,输出电压为0,当开关打开时,输出电压为VDD(或其它给定的电压)。斩技术可以用于实现一个开关电源,从而提供稳定的直流电压。 在斩的实现中,移相是一种常用的技术。移相是指通过改变斩器的开关时刻,来实现改变输出脉冲的相位。通过移相,我们可以控制输出电压的相位和幅度,从而实现对电路中各个元件(如电机、LED灯等)的控制。 TMS320F PWM可以通过编程实现斩移相。通过改变PWM的占空比和频率,可以实现输出电压的变化,并通过改变斩器的开关时刻,可以实现对输出信号相位的控制。通过合理地编程,可以实现精确的斩移相效果,从而满足不同应用场景的需求。 总结起来,TMS320F PWM可以实现斩移相,通过改变占空比、频率和开关时刻,可以控制斩输出电压的相位和幅度,从而实现对电路中各个元件的控制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值