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.

[参考译文] TMS320F28379D:如何实现 PWM 同步?

Guru**** 2914580 points

Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1598778/tms320f28379d-how-pwm-synchronisation-is-achieved

部件号: TMS320F28379D
主题: C2000WARE 中讨论的其他器件

尊敬的先生/女士:
您能在下面的代码中解释一下如何实现同步吗? 因为我想更改 PWM 的同步顺序。
什么是功能的作用  
1) SysCtl_setSyncInputConfig
2) ePWM_setSyncOutPulseMode
 
我尝试遵循 C:\ti\c2000\C2000Ware_6_00_01_00\driverlib\f2837xd\examples\cpu1\epwm
EPWM_ex3_synchronization 示例。 以下代码 也来自同一文件。
 
 
initEPWM (myEPWM1_BASE); //1

  //
  //初始化具有 300 TBCLK 相移的 PWM2
  //
  initEPWM (myEPWM2_base);   //2
  ePWM_selectPeriodLoadEvent (myEPWM2_base、ePWM_shadow_load_mode_sync);
  EPWM_setPhaseShift (myEPWM2_base、150);  //300
  EPWM_setTimeBaseCounter (myEPWM2_base、150);

  //
  //通过 600 TBCLK 的相移初始化 PWM3
  //
  initEPWM (myEPWM3_base); //3
  ePWM_selectPeriodLoadEvent (myEPWM3_base、ePWM_shadow_load_mode_sync);
  EPWM_setPhaseShift (myEPWM3_base、300); //600
  EPWM_setTimeBaseCounter (myEPWM3_BASE、300);

  //
  //使用 900 TBCLK 的相移初始化 PWM4
  //
  initEPWM (myEPWM4_BASE); //4
  ePWM_selectPeriodLoadEvent (myEPWM4_BASE、ePWM_shadow_load_mode_sync);
  EPWM_setPhaseShift (myEPWM4_BASE、450);
  EPWM_setTimeBaseCounter (myEPWM4_BASE、450);

  //
  //在 CTR =0 时生成 ePWM1 SYNCO
  //
  ePWM_setSyncOutPulseMode (EPWM1_BASE、ePWM_SYNC_OUT_PULSE_ON_COUNTER_ZERO);

  //
  // ePWM2 使用 ePWM 1 SYNCO 作为其 SYNCIN。
  // ePWM2 SYNCO 是从其 SYNCIN 生成的、即 ePWM1 SYNCO
  //
  EPWM_setSyncOutPulseMode (myEPWM2_BASE、EPWM_SYNC_OUT_PULSE_ON_EPWMxSYNCIN);

  //
  // ePWM4 使用 ePWM 1 SYNCO 作为其 SYNCIN。
  //
  SysCtl_setSyncInputConfig (SysCtl_SYNC_IN_EPWM4、SysCtl_SYNC_IN_SRC_EPWM1SYNCOUT);
  //
  //启用所有相移。
  //
  EPWM_enablePhaseShiftLoad (myEPWM2_base);
  EPWM_enablePhaseShiftLoad (myEPWM3_base);
  EPWM_enablePhaseShiftLoad (myEPWM4_BASE);

  //
  //启用到 PWM 的 SYNC 和时钟
  //
  SysCtl_enablePeripheral (SYSCTL_PERIPH_CLK_TBCLKSYNC);
 
谢谢。此致、
Prashant Gugle
  
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Prashant、

    在这种情况下、ePWM1 是根据时基计数器零事件发送 SYNCOUT 脉冲的主 PWM。 ePWM2、ePWM3、ePWM4 是根据 ePWM1 同步的从 PWM。 如果按住 Ctrl 键并点击 CCS 中的函数、它将在 epwm.h 库中将其打开并提供函数描述、以便获得更多详细信息。  

    如果您还有其他问题或疑虑、请告诉我。

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

    尊敬的 Stevan:

    我正在寻找一个线路周期中的相位序列 PWM1、PWM2、PWM3、PWM4。 下一个周期  PWM2、PWM3、PWM4、PWM1  、在下一个周期相位序列 PWM3、PWM4、PWM31PWM2 中。 在下一个周期 PWM4、PWM3、PWM2、PWM1 中。 就像这种 PWM Seq 旋转将继续一样。 你认为,它可以用 TMS320F28379。 因为 PWM 只能通过一种方式触发。

    如果你有一个想法,怎么做,请告诉我。

    感谢您的回复、

    Prashant Gugle

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

    您好 Prashant、

    您能否进一步阐明一个生产线周期方法? 是否要在每个 ISR、每个时基周期或特定序列中更新序列? 期望的结果和应用是什么?

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

    尊敬的 Stevan:

    每个线路周期意味着, 50Hz 交流输入电压。我有零交叉信号,在 20ms(50Hz),这是中断 DSP。  对于前  20ms、我想保持相位序列 PWM1、PWM2、PWM3、PWM4。 在接下来的 20ms、我希望保持 PWM2、PWM3、PWM4、PWM1。 在接下来的 20ms、我想保持 PWM3、PWM4、PWM1、PWM2。 对于接下来的 20ms PWM4、PWM1、PWM2、PWM3。 类似这 4 个间隔将在 DSP 固件中继续。

    这是为了降低输出电压中的纹波。

    谢谢。此致、

    Prashant Gugle

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

    您好 Prashant、

    由于要每 20ms 或每个 ISR 更改一次 PWM 序列、因此您可以 使用中断服务例程 (ISR) 中基于状态的逻辑将占空比值重新分配到 PWM 通道。 制作一个序列状态计数器:使用一个静态状态变量(例如 SEQUENCE_INDEX)、该变量在 ISR 内从 0 递增至 3、并在第四个间隔后复位为 0。 在 switch 语句内部、为每条语句创建一个“大小写“。  

    不要进行硬件更改和修改 SyncOut 脉冲、而是保持硬件同步链固定(例如,PWM1 同步 PWM2、PWM2 同步 PWM3 等)、 只需交换写入其占空比 (CMPA) 和相位 (TBPHS) 寄存器的值。 在这种情况下、您无需更改同步输入/同步输出路由。

    希望这有所帮助。

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

    尊敬的 Stevan:

    谢谢您的建议、我也会这样做。

    是否可以对 PWM1 进行相移并将其与 PWM8 同步?

    谢谢。此致、

    Prashant Gugle  

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

    Prashant,

    您可以使用以下流水线、它将使用 ePWM1 输出、然后将 SYNCSELECT.EPWM7SYNCIN 多路复用器设置为 00、然后使用 EPWM7 SyncOut 作为 EPWM8 同步输入。  

    这款 C2000Tm 增强型脉宽调制器 (ePWM):时基子模块上有一个很好的视频、详细介绍了如何实现 ePWM 同步:  

    https://www.ti.com/video/series/C2000-enhanced-pulse-width-modulator.html

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

    尊敬的 Stevan:

    正如你所建议的,我保持同步链固定,并试图只旋转相位。 随附代码以供您参考。 但是、每 80ms、每个 PWM 的开关周期就会加倍。 这可能是什么原因?  有没有办法可以消除这种情况?  

      
               SysCtl_disablePeripheral(SYSCTL_PERIPH_CLK_TBCLKSYNC);
                switch(cycle_number)
                {
                    case 1:
                   
                        EPWM_setPhaseShift(myEPWM2_BASE, 4167);
                        EPWM_setTimeBaseCounter(myEPWM2_BASE, 4167);
                        EPWM_setPhaseShift(myEPWM3_BASE, 6250);
                        EPWM_setTimeBaseCounter(myEPWM3_BASE, 6250);
                        EPWM_setPhaseShift(myEPWM4_BASE, 8333);
                        EPWM_setTimeBaseCounter(myEPWM4_BASE, 8333);
                        EPWM_setPhaseShift(myEPWM5_BASE, 10416);
                        EPWM_setTimeBaseCounter(myEPWM5_BASE, 10416);
    
                    break;
                    case 2:
                     
                        EPWM_setPhaseShift(myEPWM2_BASE, 10416);
                        EPWM_setTimeBaseCounter(myEPWM2_BASE, 10416);
                        EPWM_setPhaseShift(myEPWM3_BASE, 4167);
                        EPWM_setTimeBaseCounter(myEPWM3_BASE, 4167);
                        EPWM_setPhaseShift(myEPWM4_BASE, 6250);
                        EPWM_setTimeBaseCounter(myEPWM4_BASE, 6250);
                        EPWM_setPhaseShift(myEPWM5_BASE, 8333);
                        EPWM_setTimeBaseCounter(myEPWM5_BASE, 8333);
    
                    break;
                    case 3:
                    
                        EPWM_setPhaseShift(myEPWM2_BASE, 8333);
                        EPWM_setTimeBaseCounter(myEPWM2_BASE, 8333);
                        EPWM_setPhaseShift(myEPWM3_BASE, 10416);
                        EPWM_setTimeBaseCounter(myEPWM3_BASE, 10416);
                        EPWM_setPhaseShift(myEPWM4_BASE, 4167);
                        EPWM_setTimeBaseCounter(myEPWM4_BASE, 4167);
                        EPWM_setPhaseShift(myEPWM5_BASE, 6250);
                        EPWM_setTimeBaseCounter(myEPWM5_BASE, 6250);
    
                    break;
                    case 4:
                    GPIO_togglePin(myGPIO0);
                        EPWM_setPhaseShift(myEPWM2_BASE, 6250);
                        EPWM_setTimeBaseCounter(myEPWM2_BASE, 6250);
                        EPWM_setPhaseShift(myEPWM3_BASE, 8333);
                        EPWM_setTimeBaseCounter(myEPWM3_BASE, 8333);
                        EPWM_setPhaseShift(myEPWM4_BASE, 10416);
                        EPWM_setTimeBaseCounter(myEPWM4_BASE, 10416);
                        EPWM_setPhaseShift(myEPWM5_BASE, 4167);
                        EPWM_setTimeBaseCounter(myEPWM5_BASE, 4167);
    
                    break;
                    default:
                    break;
                }
                  SysCtl_enablePeripheral(SYSCTL_PERIPH_CLK_TBCLKSYNC);
    
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Prashant,

    查看代码后、我发现了一个潜在的问题。 问题在于您设置了两个  相移寄存器 (TBPHS)  和  时基计数器 (TBCTR)  相同的值:


    EPWM_setPhaseShift (myEPWM2_base、4167);//设置 TBPHS
    EPWM_setTimeBaseCounter (myEPWM2_base、4167);//设置 TBCTR — 不正确

    这会导致 PWM 周期每 80ms 加倍一次、因为:

    - TBPHS  是加载到计数器中的相位偏移  一次  事件的次数

    - TBCTR  是运行计数器、用于确定您在当前 PWM 周期中的位置

    -通过在计数器已经运行时强制 TBCTR 为与 TBPHS 相同的值,您每次都有效地“跳过“计数,使有效周期延长两倍。 正确的实现应为:

    EPWM_setPhaseShift(myEPWM2_BASE, 4167); // Sets TBPHS
    EPWM_setTimeBaseCounter(myEPWM2_BASE, 0); // Reset to 0, NOT the phase value

    此外,您可以删除 EPWM_setTimeBaseCounter () 函数,然后执行以下操作:  
    SysCtl_disablePeripheral (SYSCTL_PERIPH_CLK_TBCLKSYNC);

    开关 (CYCLE_NUMBER)

    用例 1:
    EPWM_setPhaseShift (myEPWM2_base、4167);
    EPWM_setPhaseShift (myEPWM3_base、6250);
    EPWM_setPhaseShift (myEPWM4_BASE、8333);
    EPWM_setPhaseShift (myEPWM5_base、10416);
    休息;

    //其他情况
    }

    SysCtl_enablePeripheral (SYSCTL_PERIPH_CLK_TBCLKSYNC);

    Hope this helps.

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

    尊敬的 Stevan:

    我尝试了您建议的方式、但仍然会使占空比加倍。 我观察到,当相位从 4167 跳到 10416 时,这一意外事件就会发生。 请参考、我的时基周期是 6250、它处于向上/向下计数模式。

    开关 (CYCLE_NUMBER)

    用例 1:
    EPWM_setPhaseShift (myEPWM2_base、4167);
    EPWM_setPhaseShift (myEPWM3_base、6250);
    EPWM_setPhaseShift (myEPWM4_BASE、8333);
    EPWM_setPhaseShift (myEPWM5_base、10416);
    休息;

    //其他情况

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

    Prashant,

    感谢您提供更多详细信息。 您面临的问题很简单、因为相移值不应超过时基周期 (TBPRD)。

    TBPRD = 6250
    向上向下双向计数模式意味着总 PWM 周期= 2 × TBPRD = 2 × 6250 = 12,500 个计数
    但相移值必须≤TBPRD (6250)、而不是总周期

    对于 TBPRD = 6250 的向上/向下双向计数模式、您需要重新计算所有相移值、使其处于有效范围 (0 至 6249) 内。 举一个例子、如果您想 使用  具有相等 90°相位间隔的 4 个 PWM 通道、用户可以定义:(还应确保增加值 2 以考虑内部 SyncOut/syncin 同步延迟):

    用例 1: 
    EPWM_setPhaseShift (myEPWM2_base、0+2);// 0°
    EPWM_setPhaseShift (myEPWM3_base、156+2);// 90°= 3125/2 = 1562.5≈1562
    ePwm_setPhaseShift (myEPWM4_BASE、3125+2);// 180°= 6250/2 = 3125
    EPWM_setPhaseShift (myEPWM5_base、4687+2);// 270°= 9375/2 = 4687.5≈4687
    休息;



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

    尊敬的 Stevan:

    我尝试了根据你的建议下面的代码. 但也会使占空比加倍。 这可能是什么原因?

    用例 1: 
    EPWM_setPhaseShift (myEPWM2_base、0+2);// 0°
    EPWM_setPhaseShift (myEPWM3_base、156+2);// 90°= 3125/2 = 1562.5≈1562
    ePwm_setPhaseShift (myEPWM4_BASE、3125+2);// 180°= 6250/2 = 3125
    EPWM_setPhaseShift (myEPWM5_base、4687+2);// 270°= 9375/2 = 4687.5≈4687
    休息;
    此致、
    Prashant Gugle
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Prashant,

    我很抱歉弄错了、TBPHS 值应该是 1560 + 2、而不是 156。 您能分享一下您的 CMPA 值是什么吗?如何配置动作限定器模块以便我可以进一步帮助您吗?

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

    尊敬的 Stevan:

    我实际上使用以下路径中的 C2000ware 示例: epwm_ex3_synchronous

    C:\ti\c2000\C2000Ware_6_00_01_00\driverlib\f2837xd\examples\cpu1\epwm

    EPWM_TIMER_TBPRD 为 6250、因此 CMPA 值为 6250/4、我得到 75%的占空比。

     //
      //设置比较值
      //
      EPWM_setCounterCompareValue (base、
                    EPWM_COUNTER_COMPARE_A、
                    EPWM_TIMER_TBPRD/4);
    用于获得互补 PWM 的动作限定器如下所示:  
    //
      //设置操作
      //
      EPWM_setActionQualifierAction (base、
                     EPWM_AQ_OUTPUT_A、
                     EPWM_AQ_OUTPUT_HIGH、
                     EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
      EPWM_setActionQualifierAction (base、
                     EPWM_AQ_OUTPUT_B、
                     EPWM_AQ_OUTPUT_HIGH、
                     EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
      EPWM_setActionQualifierAction (base、
                     EPWM_AQ_OUTPUT_A、
                     EPWM_AQ_OUTPUT_LOW、
                     EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
      EPWM_setActionQualifierAction (base、
                     EPWM_AQ_OUTPUT_B、
                     EPWM_AQ_OUTPUT_LOW、
                     EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
    谢谢。此致、
    Prashant Gugle


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

    Prashant,

    似乎错过了相应操作、这就是 PWM 在额外周期内保持高电平或低电平的原因。 应用相移后、 根据假设 3120 且 CMPA 为 1560、一旦 TBCTR 等于 1560、将执行该操作、这将在下一个周期中发生。

    需要说明的是、同步后是倒计时还是向上计时?  

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

    尊敬的 Stevan:

    我不负责相位方向。 您是说我需要每 20ms 设置一次 TBCTL[PHDIR]吗?

    谢谢。此致、

    Prashant Guhle

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

    Prashant,  

    这是用于在同步后选择计数器方向的设置、是要向上计数还是向下计数、具体取决于是要产生超前相位还是滞后相位。

    只需设置一次。  

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

    尊敬的 Stevan:

    我已经尝试了 TBCTL[PHSDIR]=1 ,它没有影响双倍的占空比。 是否知道如何解决此问题?

    谢谢。此致、

    Prashant Gugle

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

    尊敬的 Stevan:

    在周期为 6250(1 毫秒)的向上/向下计数模式 下、我在旋转模式下尝试了 4167 (333us)、6250 (500us)、8333 (666us)、10416 (833us)。 我观察到 PWM 之间示波器上的正确相位超前量。 唯一的问题是占空比加倍。  

    有没有办法解决这个问题?

    谢谢。此致、

    Prashant Gugle

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

    Prashant,

    由于在额外的周期内错过了该操作、因此会发生占空比加倍。 可以通过使用 CMPA 和 CMPB 方法而不是 TBPHS 寄存器来解决这一问题。 请允许我花些时间检查 CMPA/CMPB 方法策略在这种情况下是否可行、我将在您的问题陈述中向您提供更清晰、更简洁的建议。 感谢您的耐心。  

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

    Prashant,

    请参阅此应用手册以及它们使用 CMPA/CMPB 方法配置三相 120 度相移的器件: https://www.ti.com/lit/an/sprad15/sprad15.pdf?CMPA=1771457208541 ts &ref_url=https ps%253A%252F%252Fwww.google.com%252F

    这是了解此方法如何工作的良好起点。 如有任何问题或疑虑、请与我联系。

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

    尊敬的 Stevan:

    参考随附的文档、我已经了解 CMPB 是相移、CMPA-CMPB 是 50%占空比。 对于可变占空比、例如正弦三角 PWM、 我们能否 针对 PWM2 和 PWM3 的 CMPB = 1/3 PRD 保持固定值、并计算 CMPA 的 PWM 值。  

       在下一段中、全局加载是 GLDCTL[GLD]、单次触发模式是 GLDCTL[OSHTMODE]? 以及我们需要如何以及在何处使用它。

    首先、在 PWM 1/2/3 中单独配置全局负载、确保 CTR =0 时同时加载周期和比较器 A/B 值。 其次、启用一次性加载、确保只有在控制环路运行完全完成后才加载值、然后才将影子寄存器中的内容加载到活动寄存器中。“

    谢谢。此致、

    Prashant Gugle

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

    Prashant,

    全局加载功能用于同时进行影子到活动寄存器传输、因此寄存器会同时更新、避免任何不必要的覆盖。 如果您要将占空比设置为 50%、那么需要确保在向上/向下计数模式下 CMPA + CMPB = TBPRD? 您能告诉我、您的应用中是否希望保持固定占空比、以及它会是什么样子吗?

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

    尊敬的 Stevan:

    在我的应用中、占空比不是固定的、它在 0%到 100%之间变化、具体取决于调制指数。 我们需要在向上/向下计数器模式下使用 PWM 时基。那么我们可以使用 CMPA 和 CMPB 方法来进行相移吗?

    谢谢。此致、

    Prashant Gugle

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

    Prashant,

    您可以使用不同的 CMPA 和 CMPB、只需确保使用全局加载功能。 您实际上可以使用一次性全局加载、这样可以确保在所有影子寄存器都就绪后就会进行影子到活动寄存器的传输。

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

    尊敬的 Stevan:

    通过使用全局加载特性、我们能否在现有同步方案中将占空比提高一倍?

    谢谢。此致、

    Prashant Gugle   

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

    尊敬的 Stevan:

    我们可以使用 CLB 进行 PWM 相位旋转吗?

    谢谢。此致、

    Prashant Gugle

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

    Prashant,

    由于使用 TBPHS 寄存器进行相移时缺少操作、因此会使占空比加倍。 TBPHS 寄存器没有影子寄存器、因此无法实现影子到有效寄存器传输、因为具有可用影子寄存器的 CMPA/CMPB 寄存器就是这种情况。

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

    尊敬的 Stevan:

    在此示例中、它们一起改变相位和频率。 他们已经讨论了双倍的占空比,是什么与我们听到的相关?

    利用新型 ePWM 功能进行多相控制

    谢谢。此致、

    Prashant Gugle

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

    Prashant,

    您还可以为您的应用参阅此应用手册。 其中显示了针对 SYNC 事件配置全局加载单次触发模式的分步说明以及如何避免极端情况。