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.

[参考译文] TMS320F28388D:TBPRD 上具有相移的 HRPWM:在高 ISR 速率上节省时间

Guru**** 2582405 points
Other Parts Discussed in Thread: C2000WARE, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1226718/tms320f28388d-hrpwm-on-tbprd-with-phase-shift-save-time-on-hi-isr-rate

器件型号:TMS320F28388D
主题中讨论的其他器件:C2000WARESysConfig

大家好!

我在 F28388D 上的应用使用2个 ePWM 单元以相当高的 PWM 频率(1MHz)驱动相移全 H 桥。

相移应该可修改(当然)、但 PWM 频率也应该可修改(约-/+ 10%符合标称值1MHz)。

直接实现(也是在循环中断期间对 ePWM 寄存器的写入次数较少)的方法是让左侧桥臂上的输出 A (ePWM-A)在发生零事件时向上、在发生 PRD 事件时向下、 另一个 ePWM 模块上的逆变器用于驱动右腿。

驱动同一桥臂上较低 MOSFET 的"B"信号是通过 DB 单元中的反转获得的。

使用这种方法并使用 EPWMLINK 寄存器将2个 ePWM 模块链接在一起时、只需要对"左"桥臂的 TBPHS 寄存器进行一次写入(该值由 EPWMLINK 传播、且更改 PWM 频率更改 TBPRD 时始终正确编程)。

在此模式下、我无需写入或使用 CMPA/CMPB (因为占空比始终为50%、且零点/PRD 点足以构建50%方波)。

当然、这会起作用。

现在我要使用 HRPWM 模式。 在了解 TRM 并查看 C2000ware 中的示例代码"HRPWM_ex3_prd_updown_SFO.c"之后、我成功提高了分辨率。

但我注意到一个奇怪的行为:

  • a)如果我使用 CMPA = TBPRD/2、如在 TI 示例代码中用于生成 PWM 输出、则所有4个信号(H 桥第一个桥臂中的2个信号来自 ePWM2、 另外2个来自 ePWM3)对于使用的任何 HR 步进值来说都非常稳定(我根据需要使用 AUTOCONV 模式);
  • B)如果我使用我的原始想法、即使用零和 PRD 来切换 PWM 输出、则与 ePWM2输出相比、来自第二个桥臂的脉冲(使用 EPWMLNK 连接的 ePWM3)有一点点抖动。 抖动在5ns 范围内、这相当于一个 TBPRD 步长。

你有什么想法或建议吗?

使用选项 B)将需要我计算和写入 CMPA = TBPRD/2以保持50%的占空比、这需要一些时间、这对我来说非常宝贵(PWM 频率为1MHz)。

而使用选项2、换向在架构中是隐式的。

谢谢!

阿尔贝托

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

    尊敬的 Alberto、  

    对于 ePWM、它简单明了、您所提到的是正确的。

    HRPWM:当使用 CMPAHR 非常接近零/周期时、您将观察到1-3 sysclk 的抖动。  我建议使用选项 A  

    Question:

    1.您是否在上升沿和衰减沿都使用 MEP 控制? 在这种情况下,你不能在 PRD/ZERO 上使用 AQ

    相反,您的 AQ 必须配置为在上升计数时设置,在下降计数时清除。

    我看到您需要使用选项 B 进行尝试、具体取决于您使用的 CMPAHR 范围。 如果稍远离 PRD/ZERO、它应该能够正常工作。  

    您可以使用 SysConfig 输入系统要求(通过启用警告和其他信息):

    此致、

    Uttam

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

    Uttam 您好、

    感谢您的友好和快速回复。

    事实上,我已经尝试了两种溶剂:

    -使用 a ),我把 CMPA 放在50%,远离零和 prd。 我已将 AQ 设置为在上升和下降时清除、我已在两个边沿上选择了 MEP 控制、但实际上我对边沿上的 MEP 并不感兴趣、我希望 MEP 在 PRD 上、因为我的应用需要微调生成的波频率、始终处于50%占空比。 如果由于 PRD 上的 MEP 校正、占空比不是完全为50%、而是略小于或大于、那么这就不是太重要了。 实际上、如上文所述、如果我在 PRD 上使用 MEP 控制并使用 CMPA (预设为 TBPRD/2)来生成50%占空比方波、那么生成的波形将是完美的。 唯一的缺点是如果我更改频率(我的应用执行此操作、使用周期的 HR 控制更改方波的频率)、我还需要更新 CMPA 以将占空比保持在50%左右。 这意味着在 ISR 中进行2个寄存器写入、所需时间应小于1us。

    是否有趣您的句子:

    " 是否在上升沿和衰减沿都使用 MEP 控制? -在这种情况下,你不能在 PRD/ZERO 上使用 AQ "

    实际上、我已经尝试在 PRD/ZERO 上使用 AQ、但我已经在两个边沿上配置了 MEP。 由于我主要需要用 HR 分辨率控制周期、我是否可以尝试将 AQ 置于 PRD/ZERO、而不在两个边沿上都使用 MEP?

    在本例中、我不会使用 CMPA

    谢谢你

    阿尔贝托

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

    您好、Albreto:

    请告诉我这是否起作用? 如果没有、我可以查看其他可能性。  

    此致!

    Uttam

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

    你好、Uttam

    很抱歉我迟到了回复。

    我完成了其他一些测试。

    在 ZerD/PRD 上使用 AQ 来设置 PWM 命令向上/向下(并在 TBPRD 上选择 HR)仍然在第2个 PWM 通道上显示抖动(以相同的方式配置为 HR、但 TBPRDHR 由 EPWMLINK 更新)。 所以我认为最好使用 CMPA。

    使用 CMPA:

    -我不使用(至少,我不写) CMPAHR,因为我只需要 PRD 上的 HR;

    -我在配置期间输入 CMPA = TBPRD/2 ;

    - AQ 设置为 CMPA 向上, AQ 清除为 CMPA 向下;

    -切勿更改 CMPA ,所以 始终远离0/PRD (在中间);

    -在运行时期间,我按照 C2000ware 示例中的指南,在 HR 模式更新 TBPRD ; AUTOCONV 已启用。

    它可以正常工作(频率随 HR 分辨率改变)、但我遇到了这种奇怪的行为:

    1) 1)如果我在 TBPHS 为0时更新 TBPRDHR、则始终为 OK;

    2) 2) 如果我在 TBPHS <>0时更新 TBPRDHR、则第2个 ePWM 通道上存在抖动(TBPRDHR 在这里由 EPWMLINK 复制);

    3) 3)然后、我离开之前的 TBPRDHR、并设置 TBPHS = 0;抖动消失、频率仍然正确、具有小数分辨率;

    4) 4)如果我现在移动 TBPHS、则一切正常(频率正确、第2个通道上没有抖动)。

    我正在做其他测试、我会在接下来的几天给您写。

    谢谢你

    阿尔贝托

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

    尊敬的 Alberto、

    请问您的问题是否得到了解决?

    此致!  

    Uttam

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

    你好、Uttam

    不完全是真的。 通过上述设置(基本上是对 CMPA 上的 AQ)、我已经用实际功率级测试了控制板、具有 HR 分辨率的 PRD 设置可以正常工作- HRSTEP 的读数大多为32、这对我来说已经足够了。

    但是、只有当 TBPHS 为0时、第二个 ePWM 桥臂上的抖动(HRTBPRD 通过 EPWMLNK 自动更新)才为0。

    如果施加了 PHS 并且 TBPRD 与 HR 分辨率一起使用(=小数部分不为0) 、则第2个桥臂上会有抖动。

    因为其他紧急的问题,我必须做一些进一步的测试。

    我会告诉您。

    THX

    阿尔贝托