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:HRPWM 看起来与 ePWM 完全相同

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

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/613194/ccs-tms320f28335-hrpwm-looks-exactly-like-epwm

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

工具/软件:Code Composer Studio

您好!

由于能够使 HRPWM 正常工作、我有点烦恼、因为我得到的结果不如我预期的好。 HR 配置如下:

EPwm4Regs.CMPA.half.CMPAHR =(1 << 8);      //初始化 HRPWM 扩展 
EALLOW; EPwm4Regs.HRCNFG.ALL = 0x0; EPwm4Regs.HRCNFG.bit.EDGMODE = 2;//下降沿上的 MEP 控制 EPwm4Regs.HRCNFG.bit.CTLMODE = 0;// CMPAHR 控制 EPwm4Regs.HRCNAD= 0;THRLOAD = 0;THRCNTL.CTR = 0

我在我的正常 ePWM 代码中嵌入了编码。 我将通过 ePWM ISR 使用 ADC 输出更新 CMPA 和 CMPAHR 寄存器。 在 CMPA 和 CMPAHR 更新之前、我按照 http://www.ti.com/lit/ug/spru924f/spru924f.pdf 中列出的步骤转换了 ADC 输出。  我的 Tsysclkout 为6.667ns、我的 MEP 计算为44。 下面是我得到的结果:

使用 HRPWM

2.无 HRPWM

我真的无法分辨出这种差异。 也许我做了些错误的事情。

感谢您的建议和指导。

+不要介意显示的频率(我认为这是由于放大图像、因此可以说)、实际频率为330kHz。

谢谢。

David。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我写信告诉您、C2000团队成员已被分配到此帖子、应该很快回答。

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

    EALLOW 会在您共享的代码中注释掉。 代码是如何在您的应用中的?

    您已链接到不同器件的 HRPWM 用户指南。 虽然可能没有变化、但 F2833x HRPWM 用户指南可在以下位置找到:www.ti.com/lit/ug/sprug02b/sprug02b.pdf

    如果外设发生变化、我通常建议参考您正在使用的特定器件的用户指南。

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

    David、

    除了 Elizabeth 的建议之外、您能否放大下降沿? 看起来有一些问题(为什么波形这么厚)?

    通常、我测试 HR 移动的方法是在不启用 HRPWM 的情况下以相同方式同步设置另一个 PWM。 将这两个值同时放在示波器上、并在启用 HR 的情况下使用 PWM 上的 CMPAHR/CMPBHR 值查看移动。

    此致、

    Kris

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的参考。
    我已经了解了。 差别不大。 此外、EALLOW 不会在代码中注释掉。 我在粘贴时必须错过它。
    David。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    David、

    您将 CMPAHR/CMPBHR 值设置为什么? 我看到您启用它的线路、但除此之外、还需要将一个值编程到其中、以确定应用到输出的 MEP 数量。

    您是否在 controlSUITE 中运行过我们的任何参考项目?

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

    谢谢。

    我已经缩放了下降沿、如下所示。 它看起来真的很奇怪。 我还会将两者并排放置、以便进行更好的比较。 但在平均时间内、您对此有何看法?

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

    是的。
    我将根据 ADC 转换的输出设置 CMPAHR 和 CMPA。 其中 dutycalc 是0和1之间 ADC 转换的输出。 方法如下:

    _interrupt void ePWM_ISR (void)
    {
    Fract = modf (dutycalc*EPwm4Regs.TBPRD、&intDuty);//提取整数和小数部分
    EPwm4Regs.CMPA.half.CMPAHR =(Fract MEP_ScaleFactor+1.5)*256;// muty 部分 EP4Regs.CMPA.half.CMPA.CMPA2.5和 CMPAHR =(tw 1.5)*256;//保留1.5和1.5并添加1和1.5 乘以256与<<8 //1st 8位相同、未使用
    EPwm4Regs.CMPA.half.CMPA = intDuty;//新占空比的整数部分
    /EPwm4Regs.CMPA.half.CMPA = dutycalc*EPwm4Regs.TBPRD;
    EPwm4Regs.ETCLR =位;INT 1;INT = INT //清除 INT SEQ1位
    PieCtrlRegs.PIEACK.all = PIEACK_Group3;//确认 PIE
    返回中断;
    } 

    此外、我成功运行了 Example_2833xHRPWM。 我从该案例中了解到、但它并不完全适用于我的案例。 我觉得如果我获得了良好的结果,那么我可以继续进行比例因子优化…

    David

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

    我认为我们需要先弄清下降沿问题、然后才能看到 HRPWM 的任何好处。 您使用 TI 电路板进行开发还是使用定制电路板? 您的 PWM 当前是否正在驱动任何类型的负载、如果是、您是否能够将其断开并重试波形捕获? 此外、请发布您正在使用的完整 PWM 初始化例程。

    您上一篇有关 CMPAHR 和 CMPBHR 更新代码的文章似乎没有通过。

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

    我同意你的意见。 下降沿混乱。
    我根本没有驾驶任何东西。 我只是在示波器上绘制 PWM 输出。 HRPWM 初始化如下:

    void Setup_HRPWM4A (void)
    {
    EPwm4Regs.TBCTL.bit.CLKDIV = 0;//SysClkOut/1 ie default
    EPwm4Regs.TBCTL.bit.HSPCLKDIV = 0;//SysClkOut/1但是/2是默认值//TBCLK = 150MHz EPwm4Regs.TBRd.TBRD
    =
    
    0;/TBR4D.TBRD.TBRD/ TBRD0 = 0 = 0 = 0;SYSCLCRD.TBRD.TBRD.TBRD.TCMD.TMRD.T0 = 0 = 0 = 0 = 0 = 0 = 0;/TBRD.TBRD.TBRD.TCMOD.TBRD.TBRD.Tn 位0 = 0 = 0 = 0 = 0 = 0 = 0;EP4D.TBRD.TCM
    //330kHz
    EPwm4Regs.CMPA.half.CMPA = 0;//初始 CMPA = 0
    
    EPwm4Regs.CMPA.half.CMPAHR =(1 << 8); //初始化 HRPWM 扩展
    EPwm4Regs.CMPCTL.bit.LOADAMODE = 0;
    EPwm4Regs.CMPCTL.bit.SHDWAMODE = 0;
    
    EPwm4Regs.AQCTLA.ALL = 0x0012;//CTR = 0 (设置)、CTR = cmpa on up (up.EN.EPM1.CALC.EPTL.C=0)
    //在组
    EPwm4Regs.ETSEL.bit.SOCASEL = 1上启用 SOC; //从 CTR=0
    EPwm4Regs.ETPS.bit.SOCAPRD =1选择 SOC; //在发生第一个事件
    EPwm4Regs.ETSEL.bit.INTEN 时生成脉冲= 1; //启用 PWM 中断
    EPwm4Regs.ETSEL.bit.INTSEL = 2; //在 CTR = PRD
    EPwm4Regs.ETPS.bit.INTPRD = 1上启用中断; //第一个事件
    
    EALLOW 上的中断;
    EPwm4Regs.HRCNFG.ALL = 0x0;
    EPwm4Regs.HRCNFG.bit.EDGMODE = 2;//下降沿上的 MEP 控制
    EPwm4Regs.HRCNFG.bit.CTLMODE = 0;// CMPAHR 控制
    EPw40.HRCnG.READ = 0;//加载 HRCMOG.0
    
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    一个问题是您使用 CTR=0来设置 PWM。 启用 HRPWM 后、CTR=0和 CTR=PRD 有3个周期限制、限制您不受操作限定符事件的影响。 不过、我不认为这是完整的情况、因为它看起来也是在您没有从第一个帖子中的波形启用 HRPWM 时发生的。 当您说 HRPWM 已禁用时、这是否意味着第23-28行已注释掉?

    此致、
    Kris
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉、我通常需要重新编辑之前的回复、然后才能放入图片和其他内容。 代码现已出现。
    David。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的。 当我不使用 HRPWM 时、第23-28行和第11行注释掉。 我了解到了3周期限制(或 HRPWM 生效前的延迟)、但我并没有感到太烦恼、因为我认为我只需要它用于下降沿。 这是因为我使用的是向上计数。

    您认为这可能是一个问题吗?

    David。

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

    您好、Kris、

    我将这两个 PWM 放在一起。 黄色-无 HRPWM。 蓝色-带 HRPWM



    实际上没有区别。 你怎么看?

    谢谢。

    David。

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

    您好!

    这是对我的查询的温和提醒。

    谢谢。

    David。

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

    即使您没有在 TBCTR = 0附近使用 HRPWM、当启用 HRPWM 时、您仍需要避免该范围。 不过、我认为这不是下降沿的问题。

    要进行调试、除了 PWM 的基础知识之外、您还能评论一下所有内容吗? 我只想说时基和操作限定器配置(无 HRPWM)。 让我们确保先清理下降沿。 如果可行、请重新添加其他部分、看看我们是否可以确定问题所在。

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

    感谢您的回答。

    我已经尝试调试 PWM。 我尝试了较低的频率、结果很好。 我认为下降沿模糊 可能是因为我使用的频率以及 ADC 输出从未恒定、即使在恒定模拟输入下也是如此。

    通常情况下、这就是我得到的结果:

    我只会在缩放下降沿时看到模糊。  是否有办法使 ADC 的输出保持恒定、因为它的波动似乎是造成模糊的原因?

    或者我还可以尝试其他什么?

    顺便说一下、由于我正在处理占空比、Elizabeth 建议的材料建议使用 CMPAHR 而不是 TBPHSHR、因此我不确定如何避免使用 CTR = 0。 如果我尝试使用向上/向下计数、我很可能需要担心会导致 TBPHSHR 的两个边沿。

    希望很快收到您的回复。

    此致。

    David。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    这是对我的查询的温和提醒。
    谢谢。
    David。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    David、

    这对我来说不像是变频 ADC 问题、除非您的示波器没有及时更新。 如果只是不同的时序、我认为我们不会看到信号弹跳。 我肯定会错的、但我的大亨更是如此。 让我联系其中一位 ADC 专家、看看他们是否可以在这里为我们提供帮助。 在尝试使用 HRPWM 之前、我想将其拉直。

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

    谢谢 Kris。

    希望很快收到您的回复。

    David。