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.

[参考译文] EK-TM4C1294XL:为什么 PWM 全局同步更新不会在所有3个发生器输出中产生类似的模式。

Guru**** 2350610 points
Other Parts Discussed in Thread: TM4C1294NCPDT, INA240
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/610763/ek-tm4c1294xl-why-is-pwm-global-synchronous-update-not-producing-a-similar-pattern-in-all-3-generators-outputs

器件型号:EK-TM4C1294XL
主题中讨论的其他器件:TM4C1294NCPDTINA240

3个 PWM 发生器1、2、3、但只有 2个调制 80us 周期、其中有源占空比 为50us 导通时间( 高脉冲)、其中240ns 斩波脉冲 存在于 50us 导通时间的前32us 中。 其他发生器1、3永远不 会产生 类似的斩波脉冲、但会在  产生的三相 逆变器波形中改变活动导通时间的上升/下降沿。   通过   对 PWM 发生器做出反应的三相1/2桥栅极驱动器可以明显看到发生器2的斩波脉冲。  否则、在 单个发生器边沿时间内很难想象240ns 斩波脉冲。

可能 是因为它 需要 2个 PWM 发生器协同工作来产生 适当的栅极驱动 模式、从而 生成 DSP 梯形 波形、而不会发生1/2电桥击穿。

所有三个 PWM 发生器   在计数达到  零时通过发生器1的中断进行全局同步更新。 以下命令 指示3个发生器在 新计数加载到 发生器1中断处理程序内的每个发生器后执行全局同步更新。

我 认为   在全局 同步更新之前加载了类似计数的所有3个发生器应该生成 几乎 相同的240ns 斩波脉冲、这是不对的?

ROM_PWMSyncUpdate (PWM0_BASE、
(PWM_GEN_1_BIT|PWM_GEN_2_BIT|PWM_GEN_3_BIT); 

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

    示波器捕获上述辅助信号;CH1 = PWM 发生器 1和3、CH2 = 2和3分别代表三相 逆变器1/2电桥的两相、中心= CH1。 喜欢80us 周期内50us 内的任何240ns 上升沿斩波脉冲、但不明白为什么或什么使得它们普遍用于 逆变器的中心相。

    CH2反射(绿色椭圆形)似乎跟随幅度 CH1斩波脉冲、表示两个不同的栅极驱动器。 BTW:240ns 斩波脉冲   大约为14.4个周期宽@60MHz PWMCLK、 每个 PWM 发生器可以产生4800个周期/秒  

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

     您好 BP101:

    [引用 user="BP101"] PWMCLK 运行 速度@60MHz[/quot]

     那么、您要使用 SYSCTL_PWMDIV_2设置 PWMCLK、对吧?

     您可能会遇到以下勘误表。

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

    您好、Charles、

    [引用 USER="Charles Tsaa"]因此您要使用 SYSCTL_PWMDIV_2设置 PWMCLK,对吗?

    更正0x2 并在该 论坛上发帖、看到 CCS 调试计数器寄存器未保持同步计数 、但所有3个同步位 均已设置。 Amit 曾经认为 JTAG 的计时很慢、但  240ns 脉冲发生器2只能 起作用、肯定会上升一个眼图。

       我们是否合理地使用时钟分频0x0来设置 PWMSYNC 时基、 然后   更改 PWMCLK 分频值0x2 并保持发生器同步?

    感谢您的快速回复:)

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

    BTW 这些 EK 均为 RA2芯片、芯片修订版3 MCU。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 BP101:
    由于勘误表指出没有权变措施、我不知道您的建议是否有效。 此外、由于 CPU 不能同时写入全部 PWM 发生器、因此您需要在三个不同的时间将分频值更改为三个不同的 PWM 发生器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    [引用 user="Charles Tsaa"]三个不同的 PWM 发生器,因为 CPU 无法同时写入所有 PWM 发生器。

    您可能是指 发生器同步、我 的第一篇文章显示 了 Tivaware 或的所有发生器。

     此帖子中的 Launch Pad 具有未 列出的 RA2芯片修订版3芯片、以使您 提到的 PWM #02已知勘误表或是否已列出?

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 BP101:
    很抱歉、根据勘误表、PWM#2不应影响 RA2/RA3。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    您能否确认确实是真实的、或者通过回顾来查看勘误分析 QC 的执行者?

    我对     PWM 斩波脉冲分布在发生器之间的表现如何相似的想法与 生成波形的发生器之间的移位位置不同。  这就是斩波模式重复 右、 中、 左、例如 发生器1 =右、2 =中心、 3=左侧。  它从不会 仅改变所有斩波脉冲 在 低于 特定占空比 更新速率时消失 、 并且与  相对于转子 速度上升的电流需求一致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 BP101:
    我将向 Amit 核实勘误表是否适用于您的器件版本。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    最好将此处发生的情况与 勘误#02 质量检查所用的实际测试程序进行比较。

    怀疑这可能是 时基必须如何同步相对 PWM 时钟分频 的方法、以避免在后续芯片修订版本中使用非同步发生器。 很难知道所有3 个发电机之间是否保持中心对齐。  已注意到、根据 通道 触发源 A、发电机输出 A 可能与  合作伙伴 发电机输出 B 相对左对齐、居中对齐、甚至右对齐 、反之亦然。

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 BP101:
    当我等待 Amit 的应答时、您是否可以尝试将 SYSCLK 降低到60MHz 并使 PWMCLK 除以1?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Charles、

    也许对于 CCS 调试寄存器视图、验证3个 PWM 发生器计数是否同步更新。 发生器计数现在不能通过 JTAG 一起更新。 如果发现任何明显的差异、将会报告。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 BP101:
    Amit 提到适用于您的器件的 PWM#05可能也需要注意。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    [引用用户="Charles Tsaaa"] Amit 提到 PWM#05 [/引用]

    PWM #05未出现在勘误数据中 SPMZ850D–2013年10月–2015年3月修订版 将 检查 更新的工作表。

    昨天发布了一份关于 设置 PWM 时钟 120MHz (无分频)的报告、没有任何影响也没有60MHz SYSCLK、 寄存器视图 CCS 调试 3发生器计数仍然不均匀。  无法测试 梯形 @60MHz SYSCLK (无 PWM 分频值) 、因为 FOC 和其他计时器 极慢(周期)且120MHz PWMCLK 会像 我所说的那样快速过热逆变器 FET。  

    感谢 您的更新!

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

    您好、Charles、

    [引用用户="Charles Tsaaa"] Amit 提到适用于您的芯片的 PWM#05可能也需要注意[/引用]

    PWM#05;勘误表显示、递减计数受到影响并且 发生器被配置 为递增/递减计数模式。

    请注意、WISTAL 是在   加载 新计数和预制 全局同步更新 全部3个发生器之前、SW 双清零 PWM 中断。

    在我看来、无论 PWM 时钟速率是多少、发生器都不会同步更新。

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

    [引用 user="BP101"]在我看来,无论 PWM 时钟速率是多少,生成器都不会同步更新

    在最终情况下的 CCS 调试中、 我怀疑 3个发生器时基 可能 确实非常同步。

    问题 仍然是        、在全局同步更新(GBSUD)中、是否所有3个计数器都同时更新和在下一个零计数后同时更新? 我怀疑 发生器计数  不相等、无论时基如何、 并且比较器 A 和 B 触发 RCL 或 LCR 模式(右、中、左)的原因也不同。  

    因此、我们必须 重置 PWM 模块 、以便将 所有4个发生器计数器归零。  但是   、它们的发生器似乎不归零、正如数据表所建议 的那样。

     以下是 SW 如何复位 PWM 模块以使计数器归零:    

    //禁用 PWM 模块*/
    ROM_SysCtlPeripheralDisable (SYSCTL_Periph_PWM0);
    
    //将 PWM 模块重置为零计数器*/
    ROM_SysCtlPeripheralReset (SYSCTL_Periph_PWM0);
    
    //在零计数时启用 PWM 模块计数器*/
    ROM_SysCtlPeripheralEnable (SYSCTL_PWM0);//在零计数器
    
    /*暂停此处直到 PWM0模块就绪*/
    while (!(ROM_SysCtlPeripheralReady (SYSCTL_Periph_PWM0))
    ){
    //
    
    *将120MHz SYSCLK 分频为60MHz PWMCLK */
    HWREG (PWM0_BASE + PWM_O_CC)= PWM_SYSCLK_DIV_2; 



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

    您好 BP101:

     很抱歉,是否可以尝试使用 PWMSyncTimeBase()来查看是否可以重置所有发生器?

    原型:
    void
    PWMSyncTimeBase (uint32_t ui32Base、
    uint32_t ui32GenBits)
    参数:
    ui32Base 是 PWM 模块的基址。
    ui32GenBits 是要同步的 PWM 发生器模块。 此参数必须是
    PWM_GEN_0_BIT、PWM_GEN_1_BIT、PWM_GEN_2_BIT 或
    PWM_GEN_3_BIT 中任何一个的逻辑或。
    说明:
    对于所选的 PWM 模块、此函数通过
    使指定的发生器计数器复位为零来同步发生器模块的时基。
    返回:
    无。 

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

    您好、Charles、

    实际上,HWREG 和 PWMSyncTimeBase() 是同一个减去调用栈推送/弹出和断言的函数之一。 如果 我们无法信任  HWREG 宏来配置外设 、我们将遇到很大的问题。  因为这样做会给 Tivaware 一个机会、而 PWM 发生器时基确实是同步的、但计数器寄存 器不会同时归零。

    /*同步 PWM 发生器时基。 //
    HWREG (PWM0_BASE + PWM_O_SYNC)=(PWM_GEN_0_BIT | PWM_GEN_1_BIT | PWM_GEN_2_BIT | PWM_GEN_3_BIT); 

    Tivaware:

    //
    void
    PWMSyncTimeBase (uint32_t ui32Base、uint32_t ui32GenBits)
    {
    //
    //检查参数。
    //
    assert (((ui32Base == PWM0_BASE)||(ui32Base == PWM1_base));
    Assert (!(ui32GenBits &~(PWM_GEN_0_BIT | PWM_GEN_1_BIT | PWM_GEN_2_BIT |
    PWM_GEN_3_BIT))));
    
    //
    //通过写入来同步指定发生器中的计数器
    //模块的同步寄存器。
    //
    HWREG (ui32Base + PWM_O_SYNC)= ui32GenBits;
    } 

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

    大家好、社区

    PWM 斩波脉冲可能是与 CCC (复杂电流控制器)类似的结果 PI 速度调节软件。  Delfino 200MHz 双核(TM2320-F28037xD)利用 FCL (快速电流环路)库函数和内联 ADC 管理的 PWM 周期(FOC 低于500ns)、建议  SAR ADC 进行1us 电流环路调节。

    也许 TM4C1294NCPDT 会打破障碍@240ns FCL。 例如 、ADC @2MSPS 双倍过采样。  三个外部 INA240相电流监控器(类似器) 利用 GPTM 一次性(1.5us 消隐)周期在 FOC 控制的 PWM 周期内同步 ADC 样本。

    斩波脉冲在 PI 速度调节( 软件)期间发生、尽管它不是复杂的电流控制器(CCC)- 或者它是????? Delfino 文本状态 CCC 仅使用索引脉冲与采样的 EMF 边沿、使得 QEC 编码器的速度变得更加神奇。 怀疑 CCC 实际上是 FCL 控制库的一部分、而不是人们可能认为内置在 Delfino 硬件中的内部硬件。

    有什么想法吗?

    https://e2e.ti.com/blogs_/b/motordrivecontrol/archive/2017/06/27/unprecedented-current-loop-performance-from-an-off-the-shelf-mcu?HQS=epd-mcu-c2x-drives-nsl-blog-fclblog-wwe&DCMP=mytinwsltr_07_30_2017&userInfo=yQICQdC4GMbp7P+mWSkI1NnT+qjIbDUujZbAp2dn6rM=&article_name=epd_mcu_c2x_nsl_fclblog&newsletter=23-JUL-17&eloquaCampaignId=522&utm_campaign=myTI%20newsletter%202017-07-30&utm_medium=email&utm_source=Eloqua