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 模块是否已将所有计数器实际复位为零?

Guru**** 2439710 points
Other Parts Discussed in Thread: SEGGER

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/614050/ek-tm4c1294xl-how-to-verify-if-pwm-module-has-actually-reset-all-counters-to-zero

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

上一个帖子:
https://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/t/610763

似乎有可能、PWM 模块不能  通过 Tivaware 语法将所有计数器复位为零、或者 此类过程的顺序是高度相关的。  然而    、在外设复位后、通过软件使发生器时基同步、 然而 CCS 调试中的3个发生器计数 器无法 同时相互滚动计数值。

 使用 ROM 调用将计数器归零是否会出现问题?     是否需要特定的语法顺序或延迟周期来确保所有发生器 都重置为零计数? 如果  计数寄存 器因计数值的不同而发生变化、我们如何使用 CCS 调试来确保所有发生器计数都重置为零。  尤其是  在 ICDI 更新的情况下、 1MHz 被视为慢速、甚至 在 外设复位后证明发生了相等的发生器计数。

也许我们需要 Black Hawk XDS200或 Segger 高速调试仿真速度来证明是不是很好?   

http://newscenter.ti.com/2013-08-08-TI-introduces-XDS200-JTAG-emulator-providing-software-designers-a-mid-range-option-for-embedded-designs?keyMatch=xds200仿真器&tisearch=Search-EN-Everything

//禁用 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/

*



/启用不同的 PWM 发生器函数/PWM0计数器/ PWM*/ PWM0_DIV/ PWM*计数器。 ROM_PWMGenEnable
(PWM0_BASE、PWM_GEN_0);
ROM_PWMGenEnable (PWM0_BASE、PWM_GEN_1);
ROM_PWMGenEnable (PWM0_BASE、PWM_GEN_1);ROM_PWMGenEnable (PWM0_BASE、 PWM_GEN_2);
ROM_PWMGenEnable (PWM0_BASE、PWM_GEN_3);

//同步 PWM 发生器时基。 //
HWREG (PWM0_BASE + PWM_O_SYNC)=(PWM_GEN_0_BIT | PWM_GEN_1_BIT | PWM_GEN_2_BIT | PWM_GEN_3_BIT); 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    一些工程师可能会推导 XDS100 (1MHz)数据速率较慢、以显示 CCS 调试3发生 器具有相同的计数值。

    好的、XDS200 (480Mbps)数据速率是否显示 PWM 发生器计数滚动到相等的寄存器值、如果不是、原因是什么?

    当所有发生器之间的时基同步时、是否有任何 CCS 调试 SWO/SWD 仪器能够指示 PWM 外设保持相等的计数值?

    或者、TI 能否进行快速测试、以确认在外设复位后、当时基同步时、所有 PWM 发生器确实保持相同的计数值、这应该是零的所有计数器? 较快的 XDS200是否提供 CCS 实时 SD/SWO 调试信息、显示 XDS100无法实现的相同 PWM 外设滚动计数?

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

    [引用 user="BP101]\n 但    在外设复位后、通过软件使发生器时基同步、 但 CCS 调试中的3个发生器计数器 无法 同时滚动计数值。您是否使用 LSA 或示波器测量 PWM 输出、并发现 PWM 发生器不是 同步?

    或者、CCS 调试器采样的当前计数值是否看起来不同步?

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

    切斯特、您好!

    [引用 USER="Chester Gillon"]您是否使用 LSA 或示波器测量了 PWM 输出并发现 PWM 发生器未同步?

     上面发布的论坛链接中有一个示波器捕获 描述了三相逆变器输出中的斩波脉冲向左、中、右(相对)移动。  

    [引用 user="Chester Gillon"]或者 CCS 调试器采样的当前计数值是否看起来不同步?

     在  PWMSYNC 寄存器中、置位的同步位改变1/0似乎一起切换。 在调试中、如果 所有代码一起滚动或相隔几毫秒、则很难在视觉上看到。 然而、3个发生器的计数 在相当大的范围内变化。 Amit 一次将偏移计数  归咎于 TMC123G ICDI (1MHz) 、因为它会导致 CCS 调试寄存器视图更新缓慢。 我之所以要问 TI 工程师  、 是因为使用速度更快的 XDS200仿真器时、计数错误会自行校正。   

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

    PWM 发生器计数寄存器倾斜、但 PWM_CTRL 全局更新同步位同时触发。 想知道更快的 XDS200 (480Mbps)是否仍具有相同的偏斜计数条件?