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.

[参考译文] CCS/TMS320F28377S:ePWM

Guru**** 2486415 points
Other Parts Discussed in Thread: CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/688444/ccs-tms320f28377s-epwm

器件型号:TMS320F28377S
Thread 中讨论的其他器件:controlSUITE

工具/软件:Code Composer Studio

您好、Cottier
感谢您的指导。
我们设置不同的 EPwmxRegs.CMPA.bit.CMPA 值和固定的 EPwmxRegs.TBPRD 值来生成 PWM 波形。  我们将 EPwmxRegs.TZCTL.All=10 和 EPwmxRegs.TZFRC.bit.OST=1设置 为停止 EPWMA 和 EPWMB 输出。 我们设置 EPwmxRegs.TZCLR.bit.OST =1 以启动 EPWMA 和 EPWMB 输出。 我们将 EPwmxRegs.TZCTL.bit.TZA=3设置为启动 EPWMA 输出。 我们将 EPwmxRegs.TZCTL.bit.TMZ=3设置为启动 EPWMB 输出。 在 EPWMA 或 EPWMB 开始输出之前、EPwmxRegs.CMPA.bit.CMPA 活动寄存器已更新为预期值。 时基计数器(TBCTR)始终向上计数-向下计数。 DB 子模块的输出始终有效。 :

条件如下:TBCLK=30M、上-下计数模式。 EPwmxRegs.TBPRD=1500 (开关频率为10k)。 EPwmxRegs.DBCTL.All=11 (x=1/2/3)。 DB 子模块上升沿和下降沿2us 的时间延迟。 EPwmxRegs.AQCTLA.All=0x61。

使用 ePWM1/2/3的 A 和 B 输出来控制三相 IGBT (100A)桥。 A 控制上半桥、B 控制下半桥。 A 和 B 输出到缓冲器。 用于控制光耦合器的缓冲器输出。 光耦合器控制 IGBT。 SVPWM 电压矢量振幅固定为200V、直流总线电压约为560V。 SVPWM 电压矢量动作时间1ms、停止时间80ms、以使永磁同步电机定子绕组完全释放电流。 每个电压矢量角度测试20000次。 电压矢量角度为348.7、337.5、270、202.5、180、 157.5、112、101.2、92.8、90、 88.5和0。 不同的角度将使 CMPA 值不同。 当 CMPB = 0时、当电压矢量角度为88.5度时、当每次测试大约40次时、ePWM1/2/3的 A 和 B 输出将输出高电平。 这将导致 IGBT 短路和光耦合器输出保护。 其他角度不存在此问题。 将 CMPB 的值设置为1498 (CMPA 不使用该值)。 当每次测试大约3000次时、这些异常发生在92.8度。 当每次测试大约3000次时、这些异常在157.5度处发生。 更改中断服务程序的位置后(项目有5.C 文件。  我们将 ISR 移至其他.C 文件。)。 CMPB 的值仍然为1498。  

原因是什么?

我们测试了 ePWM 模块的一些寄存器、包括 EPwmxRegs.TZFLG.ALL、EPwmxRges.TZCTL.ALL、EPwmxRges.DBCTL.ALL、EPwmxRges.AQCTL.ALL、 EPwmxRges.AQCTLA.ALL、EPwmxRges.TBCTL.ALL、(x=1/2/3)。所有这些寄存器的值都是预期值。

EPwmxRegs.TZCTL、EPwmxRegs.TZFRC、EPwmxRegs.TZCLR 等 TZ 子模块寄存 器只能在 EPwmxRegs.TBCTR、EPwmxRegs.CMPA.bit.CMPA 和 EPwmxRegs.CMPB.TZCLR 寄存器处于设置状态时才能设置、也可以在 TZ 位模块中设置这些位值。

EPwmxRegs.CMPA.bit.CMPA 或 EPwmxRegs.CMPB.BIT.CMPB 的功能仅与 EPwmxRegs.TBCTR 进行比较、并在不使用任何其他功能的情况下产生相应的事件。 是这样吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们正在研究这个问题。 我们预计将于周一与您再次联系。

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

    当 DBCTL=11时、PWM 应该被接至 CMPA 的内容、并且不应该受到 CMPB 的影响。 我怀疑是否在未启用 EALLOW 的情况下尝试进行任何初始化。 我建议查看 ePWM 寄存器表、其中显示了哪些寄存器受 EALLOW 保护。

     controlSUITE 中提供了许多 用于初始化 EPWM 以生成三相 PWM 的示例。 我推荐以下选项。

    C:\ti\controlSUITE\development_kits\TMDSIDDK_v2.0\IDDK_PM_Servo_F2837x_v2_00_00_00\IDDK_PM_Servo_F2837x.c

    希望这对您有所帮助。

    Rgds、

    Ramesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我假设您的问题已解决、并正在关闭该主题。 如果没有、您可以拒绝关闭并发布您的进一步查询(如果有)。