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/TMS320F28335:ePWM 输出上升沿和下降沿的不同延迟

Guru**** 2421360 points
Other Parts Discussed in Thread: TMS320F28335

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/782623/ccs-tms320f28335-different-delay-in-epwm-output-rising-and-falling-edges

器件型号:TMS320F28335

工具/软件:Code Composer Studio

您好!

我观察到、当我向 CMPA 寄存器加载 EPWM 比较所需的变量时、下降沿的延迟大于上升沿的延迟。 粉色线是我要馈送到 CMP 寄存器的变量,它的低值为0,高值为1.2*TBPRD。 因此、我希望 ePWM 的输出波形(黄色)严格遵循我使用 DAC 显示的输入粉红色波形。 绿色脉冲表示 TBCTR 向上减计数器的过零、通过与0.1*TBPRD 进行比较显示为 ePWM 输出。

(请忽略下图中的光标(垂直虚线)、用"delay"表示粉色和黄色波形上升/下降之间的滞后)

上升沿:延迟少于一个 TBCTR 三角形周期

下降沿:延迟是 TBCTR 三角的一个周期

由于下降脉冲中的延迟与上升脉冲中的延迟相比增加、输出脉冲的宽度大于输入可变脉冲的宽度。 无论是否启用影子、都是如此。

如何最大限度地减小 EPWM 输出脉冲的延迟、以便将粉色和黄色波形之间的延迟降至最低?

如何确保两个边沿的延迟相同、从而使脉冲宽度不受影响?

谢谢

阿尔卡纳

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

    以下几个问题可帮助您更好地了解您所面临的此问题:
    1) 1)当您提到上升沿和下降沿的延迟时、您是否意味着这些延迟是由 ePWM 的死区寄存器配置引起的? 如果是、请查看并提及您为上升沿延迟(红色)和下降沿延迟(FED)配置的值。

    2) 2)您能否提供有关每个示波器波形的详细信息? 我无法理解 ePWM 输出应如何密切跟随粉色波形。 如果您能给我一个您正在使用的 ePWM 配置示例、这将使我能够了解问题并进一步帮助您。

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

    您好 Pramod、

    我认为延迟不是由于死区。 我已为 FED 和 RED 设置80。 这些是我的设置:

    EPwm1Regs.TBPRD = 3901;
    EPwm1Regs.TBCTL.bit.HSPCLKDIV = 0x2;
    EPwm1Regs.TBCTL.bit.CLKDIV = 0x2;
    EPwm1Regs.TBPHS.Half.TBPHS = 0;EPwm1Regs.TBRCTL.TBIT_UPTBCTL
    = 0x2;EPwm1REP.TBIT_TBRCTL =倒计数
    EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;//主模块
    EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADD;
    EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO;//同步下行模块
    EPwm1Regs.EPTL.ADCMOCR.CLA.T=
    
    
    0;EPwCMOCC.ADDR.OCR.OST.OCR.OCR.EPTL.ADCMPOTL.ADCMOCR.E= EPwTL.ADCMOCR.OCR.OCR.OCR.OCR.OCR.OCR.EPT.OCR.E= 0
    ;EPwTCMPOTL.OCR.OCR.OCR.OCR.OCR.OCR.OCR.OCR.OCR.EPT.OCR.OCR.OCR.OCR.OCR.EPT.OCR.OCR.OCR.OCR.OCR.OCR.OCR.OCR.OCR.OCR.TCM
    
    EPwm1Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;//启用死区模块
    EPwm1Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;//活动高电平互补
    EPwm1Regs.DBFED = 80;// FED = 50 TBCLK
    EPwm1RED/红色 

    我在每次迭代期间更新变量'1a'的值。 该 S1A 通过 DAC 显示为粉色波形。 '1a'在0和1.2之间切换
    EPwm1Regs.CMPA.half.CMPA = S1A*EPwm1Regs.TBPRD;
    由于 S1A 的幅度大于 TBPRD、与 TBCTR 比较的输出也将是一个方波、形状与 S1A 相同。 可以容忍一点延迟。 对于我来说、由于上升和下降延迟不相等、输出脉冲与输入 S1A 脉冲的宽度不同。
    黄色波形是 ePWM 引脚上的输出。

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

    查看您的配置、延迟(红色和 FED)不会对 ePWM 输出生效。 如果是您想要的、则死区配置不完整。 尝试删除死区设置、并检查您是否获得相同的上升沿和下降沿延迟。 这将确保死区设置出现问题。 我仍然认为这是你问题的原因。

    同时、请您回答以下问题、以便我可以尝试并再现您的情景:

    1.检查上升沿和下降沿延迟有多少不同?
    2.黄色输出是 ePWM1A 还是 ePWM1B?
    3.更改'1a'变量的频率(或迭代值是多少)? 这与 TBPRD 值有任何关系吗?

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

    请您详细说明为什么您说 FED 和 RED 不会生效? 我如何确保它们生效?

    1、上升沿和下降沿延迟在 TBPRD 周期中是固定的。 禁用影子时(1)、延迟如下:

    上升沿:TBCTR 上升/下降周期的一半左右

    下降沿:大约一个 TBCTR 上升/下降周期

    2.黄色输出为 ePWM1A

    3.无论 S1A 值的变化率如何,都可以观察到延迟。 我附加了一个项目、其中'archana_ePWM_delay.c'代码包含每次代码迭代(由 TBCTR 过零强制的迭代)期间的 S1A 切换。 也通过 DAC 通道 D 显示"1a"。通过 ePWM2A (绿色脉冲).e2e.ti.com/.../archana_5F00_EPWM_5F00_delay.rar 查看 TBCTR 的过零

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

    请参阅 TMS320F28335产品页面中 eTPWM 参考指南的死区部分。

    图31说明了死区子模块的工作亮点、清楚地显示中的 EPWMxA 不能同时产生红色和馈送效果。
    图32展示了各种可能的组合、其中没有一种组合在同一 PWM 输出上同时具有红色和馈入。 您询问的功能(红色和馈送必须在同一 PWM 上生效)可在未来的器件(TMS320F2837x、TMS320F28004x)中实现。

    我怀疑这是你所面临问题的答案。 在您的示例中、只有一个死区配置延迟生效、因此请尝试从示例中删除死区配置并进行尝试。

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

    我上次听到您的反馈已经有一段时间了。 因此、我假设您能够解决您的问题。 如果情况并非如此、请回复此主题。 如果该线程锁定、请制作一个描述问题当前状态的新线程、我一定会在这方面为您提供帮助。

    谢谢、此致
    Pramod