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.

[参考译文] TMS320F28335:关于 TMS320F28335的 HRPWM 配置、只能使用 CMPAHR 将 CMPA 配置为0和控制占空比是否可行? 在 MEP 步长为150ps 的情况下、示波器可以精确取样多大的带宽? 距离

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

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1320985/tms320f28335-regarding-the-hrpwm-configuration-of-the-tms320f28335-is-it-feasible-to-configure-cmpa-to-0-and-control-duty-cycle-only-with-cmpahr-how-much-bandwidth-can-an-oscilloscope-accurately-sample-to-the-edge-of-a-mep-st

器件型号:TMS320F28335

您好:

我在使用 TMS320F28335系列芯片配置 HRPWM 时遇到了此类问题。 配置代码如下:


HRPWM6_Config (周期)
{
//
//使用 HRPWM 配置 ePWM6寄存器
// ePWM6A 通过在下降沿进行 MEP 控制来切换高/低电平
//
EPwm6Regs.TBCTL.bit.PRDLD = TB_immediate;//设置立即加载
EPwm6Regs.TBPRD =周期-1;
EPwm6Regs.CMPA.half.CMPA = 0;//仅通过 CMPAHR 设置占空比控制
EPwm6Regs.CMPA.half.CMPAHR =(255<< 8);//初始化 HRPWM 扩展
EPwm6Regs.TBPHS.all = 0;
EPwm6Regs.TBCTR = 0;

EPwm6Regs.TBCTL.bit.CTRMODE = TB_COUNT_DOWN;//向下计数模式
EPwm6Regs.TBCTL.bit.PHSEN = TB_DISABLE;// ePWM6是主控方
EPwm6Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_DISABLE;
EPwm6Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;
EPwm6Regs.TBCTL.bit.CLKDIV = TB_DIV1;

EPwm6Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
EPwm6Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;
EPwm6Regs.CMPCTL.bit.SHDWAMODE = CC_影子;
EPwm6Regs.CMPCTL.bit.SHDWBMODE = CC_影子;

EPwm6Regs.AQCTLA.bit.ZRO = AQ_CLEAR;// PWM 切换高电平/低电平
EPwm6Regs.AQCTLA.bit.CAD = AQ_SET;
//EPwm6Regs.AQCTLB.bit.PRD = AQ_CLEAR;
//EPwm6Regs.AQCTLB.bit.CBU = AQ_CLEAR;

EALLOW;
EPwm6Regs.HRCNFG.all = 0x0;
EPwm6Regs.HRCNFG.bit.EDGMODE = HR_REP;//上升沿上的 MEP 控制
EPwm6Regs.HRCNFG.bit.CTLMODE = HR_CMP;
EPwm6Regs.HRCNFG.bit.HRLOAD = HR_CTR_ZERO;
EDIS;

在主函数中、我配置 SYSCLKOUT=PWM 150MHz 和 TBCLK=PWM、并且将15作为周期参数传递到 HRPWM6_Config (PERIOD)函数中、所以生成的150MHz 频率为15MHz。 现在我只想使用 CMPAHR 来控制占空比、所以将 CMPA 配置为0、而 CMPAHR=255、当 CTR = CAD 时、输出设置为 当 CTR = ZRO 时、输出很清晰、TMS320F28335的 MEP =150ps、因此生成的 PWM 的脉冲宽度应为255x150ps = 38.25、但我在示波器上看不到这样的 PWM 输出。 我想问一下、是否可以仅使用 CMPAHR 来控制 PWM 的占空比。 换句话说、在高精度模式下、CMPA 可以配置为0

同时、为了避免 HRPWM 模式下的限制、将 COUNT 模式配置为 COUNT_DOWN、并使用 MEP 控制输出上升沿 REP、如下图所示:

根据本文档、可以通过在计数接近0时使用 MEP 配置上升沿 REP 来实现高精度 PWM 输出、因此我想知道是否可以将 CMPA 配置为0、换句话说、当 CMPA=0时、 HRPWM 模式的 MEP 技术是否仍然可用?

如果我想看到 MEP 边沿、那么使用示波器需要多大的带宽? 此外、我在配置期间发现、当 PWM 输出为30MHz 50%占空比时、GPIO 的 PWM 波形输出在示波器采样后接近正弦波(示波器带宽为200MHz)、 而且、当 PWM 频率降至15MHz 时、波形相对失真、如下图所示:

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

    您好、Runhao:  

    我对你试图用信号实现的目的感到有点困惑-你是否试图使 PWM 脉冲持续一个 TBCLK (或更短)-记住 CMPAHR 将~1 TBCLK? 由于 HR 设置不能在前3个 TBCLK 周期内应用、所以如此低的 CMPA 值无法实现这一点。  一般而言、不建议您 设置 CMPA = 0、因为如果您 同时尝试在 CTR = 0上进行影子加载、这是一个很大的问题。 您能解释一下您试图产生什么 PWM 信号、可能是为什么?

    在查看信号方面、HRPWM 的 MEP 阶跃为皮秒级(通常在150ps 左右)、因此、如果您希望拥有该精细的分辨率来查看信号时的 MEP 阶跃、 您的示波器必须能够放大以查看至少数百皮秒的视图。  

    此致、

    艾里森

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

    您好 Allison:

    我没有在前三个 TBCLKS 中放置 MEP 边沿、而是采用了立即加载模式、即向下计数。 在最后一个 TBCLK 周期中、CMPAHR 配置为255、CMPA 配置为0、以调整要输出的 PWM 的上升沿、从而实现小于一个 TBCLK 甚至更短的占空比。 本文档中介绍的是、处于向上计数模式的前三个 TBCLKS 无法使用 MEP 来实现高分辨率、但如果您想实现它、可以使用向下计数。 换句话说、我可以使用 TMS320F28335芯片来生成仅具有一个 MEP 步进占空比的 PWM 波形吗?

    文档说明如下:

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

    您好、Runhao、

    请允许我再花一天时间来回顾一下、然后再给您提供一些更具体的答案。 感谢您的耐心!

    此致、

    艾里森

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

    您好  Allison,ñ a

    感谢您对我提出的问题的关注,我会耐心地等待您的进一步回答!

    此致、

    润浩

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

    您好、Runhao、

    感谢您的耐心等待。 我注意到您正在尝试生成30MHz ePWM、但 最大 GPIO 切换频率为25MHz、因此我建议降低 ePWM 频率、以满足数据表的规格要求。 您为什么要生成这样的高频 PWM?  

    我还仔细检查了、您正确地说、该最小占空比限制不适用于向下计数模式。  在这种情况下、您应确保 CMPAHR 不是0。

    另一个注意事项:我建议至少使用一个能够查看 HR 信号的500MHz 示波器。

    此致、

    艾里森