This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28379D:如何使用 Simulink 中的 ePWM 块在两个 PWM 波形之间进行扫描?

Guru**** 2568565 points
Other Parts Discussed in Thread: TMS320F28379D

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/668853/tms320f28379d-how-to-sweep-between-two-pwm-waveforms-using-epwm-block-in-simulink

器件型号:TMS320F28379D

大家好、

有关我尝试执行的操作的信息:

我尝试在180度范围内来回扫描伺服电机(Hitec HS-422)的轴。 我正在使用 Simulink (和 Embedded Coder)对 TI 的 TMS320F28379D LaunchPad XL 进行编程。

图1 (下面)显示了我的 Simulink 模型。  

让我们从验证我的计算开始。

TBCLK = PWM 时钟/(HSPCLKDIV * CLKDIV)

PWM 时钟= SYSCLKOUT * EPWMCLKDIV、其中 CPU 时钟(SYSCLKOUT)= 200MHz。

默认情况下、EPWMCLKDIV = 1/2

然后 PWM 时钟= 100MHz、因此、

TBCLK = 100MHz /(HSPCLKDIV * CLKDIV)  (eq 1)

然后、"计数模式"被配置为向上/向下计数

TBPRD =(1/2)*(f_TBCLK/f_PWM)          (EQ 2)

将 eq 1代入 eq 2、

TBPRD =(1/2)* 100MHz /(f_PWM * HSPCLKDIV * CLKDIV)    (eq 3)

根据 伺服电机的数据表、  电机的 f_PWM 为50Hz。

现在 、我们需要选择 HSPCLKDIV 和 CLKDIV、使 TBPRD <= 2^16。

让 HSPCLKDIV = 2、CLKDIV = 8、然后 TBPRD = 62500。

同样、在数据表中、脉冲持续时间给出为"从0.9ms 到2.1ms "、T_PWM = 20ms (或50Hz)。

那么、占空比的范围是多少? 从4.5%到10.5%。 (这似乎太低了。)

现在、我们可以计算 CMPA 时钟周期。

对于 4.5%占空比、  

CPMA =(100%- 4.5%)* TBPRD =(95.5/100)* 62500 = 59687.5

对于10.5%占空比、  

CMPA =(100%- 10.5%)* TMPRD =(89.5/100)* 62500 = 55937.5

然后、WA 信号(通过输入端口指定 CMPA)应为:

振幅:(59687.5 - 55937.5)/2 = 1875、偏移:1875 + 55937.5 = 57812.5、频率:1Hz (任意)、类型:平方

               

结果: 这不符合我的预期。 电机会发出蜂鸣声而不会移动。

然后(根据我的经验)我将 CMPA 单元从"时钟周期"更改为"百分比"、并应用具有以下特性的正弦信号:

振幅:15、 偏移:15、 频率:1Hz (任意)、 类型:正弦

                  

结果: 它确实扫过、但这只是一个有教育经验的猜测。 请观看下面的视频、注意有少量的蜂鸣噪声。

https://youtu.be/qzgvmIayL4Q

您能解释一下我的计算出了什么问题吗? 明天我会与主管会面、我需要提前完成这项工作。 谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Canberk、

    要获得给定的占空比、CMPA 值应是多少取决于 CMPA 采取的操作。  如果我假设 CMPA 在递增计数时匹配会强制 ePWM 引脚为高电平、PRD 匹配会强制 ePWM 引脚为低电平、那么您可能会得到以下结果:

    您的方波不起作用、但您的正弦输入似乎表明您的两个值不正确(并且都产生无效的伺服时序)、但 CMPA 的一些中间值产生了一组有效的时序。   

    过去、为了使伺服工作、我按照以下方式执行了一些操作:

    • 使用函数发生器和示波器来了解伺服时序
    • 使用示波器和 ePWM 来了解 ePWM 时序
    • (理解和工作后、很容易将它们组合在一起以获得所需的控制)