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.
工具/软件:Code Composer Studio
你好
我有一个与 ePWM 输出相关的问题。
两个控制板同步以控制电路。
从电路板的相移为90度。
如图所示、当 SYNC 信号进入时、载波跳转且未输出占空比。
我想、这种现象是由振荡器的误差引起的。
它不会在每个开关周期中发生、而是随机发生。 但是、它是恒定的、它仅在相对于90度的0.5个占空比附近发生。
已确认可通过调整从机模块的 TBPRD 来避免这种情况。(主 TBPRD -1)
没有(TBPRD-1)、是否有办法解决问题?
或者是否有任何电路或寄存器可以补偿28377S 模块中的振荡器时钟误差?
感谢您阅读我的问题。
东宽
您能否将同步点从 PWM 边沿移开? 这也应避免这一问题。
你的 TBPRD-1技巧也是一个很好的技巧。
最后、您可以尝试为两个 F2837x 器件提供一个振荡器、这将有所帮助、但不能保证工作、因为器件之间可能存在一些 PLL 不匹配。 从理论上讲、避免出现此问题的一种方法是特意将从器件修整得比使用 PLL 的另一种稍慢一些。
此致、
Cody
您好、Cody、
此问题由我的客户发布。 让我补充一些意见。
由于 PWM 占空比从零变为满负荷、因此很难移动同步点。 换言之、AQ 模块中没有使用 CMP 窗口。
我不确定从器件中的 TBPRD-1是否能够完全解决此问题。 我认为、由于一个主板和两个从板之间 PWM 频率不匹配、这也会产生另一个副作用。
此外、您提到的单个振荡器解决方案无法用于此应用、因为两个 MCU 不在同一电路板上、将引入额外的传播延迟以发送振荡器时钟信号。
我认为 CLB 可以通过比较同步时的 TBCTR 和 TBPHS 来缓解这种 PWM 跳跃。 你怎么看? 您是否有适用于此类应用的 CLB 解决方案?
谢谢、
Steve
Steve、
感谢您提供更多信息。
[引用 USER="Steve LIM]我不确定从器件中的 TBPRD-1是否能够完美地解决此问题。 我认为、这也会因一个主板和两个从板之间 PWM 频率不匹配而产生另一个副作用。
这样做的方法是确保当 SYNC 脉冲进入时从器件始终略超前于主器件、这确保从器件必须同步到一个较低的 TBCTR 值。 由于计数器值的跳转始终小于计数器所在的位置、因此只要 CMPx 值不变、我们就可以确保没有错过任何 CMPx 值。
现在、什么使主器件和从器件保持同步? 嗯、对于这种方法、您需要使用逐周期同步方案。 主器件在每个 PWM 周期中将从器件移回一个计数以使其周期更长、从而使它们保持完美对齐。 但是、它会在每个 PWM 周期中偏斜占空比1计数。 这通常不会导致任何问题、但可以在软件中通过将从器件的 CMPx 值调整为 CMPx-1来解决。
至于在这里使用 CLB、我不确定、让我考虑一下它、然后返回给您。
此致、
Cody
Steve、
我仍然建议使用 TBPRD-1权变措施、但 CLB 可以帮助解决此问题。
或者、CLB 可被用于在 CMPx 值上实现一个"大于或等于"(>=)的比较。 同样、您可以将 CLB 配置为不断比较 CMPx 和 TBCTR、并使用 AQ 软件强制力确保即使发生计数器不连续性、也不会错过事件。
此致、
Cody
Cody、
感谢您的回答。
让我和客户谈谈您推荐的方法、如果我们需要您的进一步帮助、我们将会与您联系。
谢谢、
Steve
您好、Cody、
感谢您的回答。
我还有一个关于原因的问题。
实际上、我执行了 TBPRD-2。
因为当我检查主板的 EPWM 1A 和从板的 EPWM 1A 时、从板的 EPWM 基于主板具有-10ns ~+10ns 的抖动。
因此 、我对2个时钟进行了补偿。 因为最大误差为20ns (2 X ePWM 时钟)。
我认为产生这种抖动的原因是系统时钟未同步。
即使没有外部振荡器错误、 如果系统时钟未同步、我认为5ns 是识别和处理从机模块中同步信号的最大延迟。
如果 SYNC 信号被意外识别为系统时钟、则没有延迟。
因此、我认为、即使连接了数十到数百个 DSP、只要补偿2个计数(-ePWM 时钟计数~+ePWM 时钟计数)、上述情况也可以得到充分防止。
我所理解的是正确的吗? 或者 我的理解是否有问题? 在上述情况下、外部振荡器的误差率是否很重要?
非常感谢
东宽
您的理解非常接近、但问题与您在将从设备同步到主设备时看到的振动量无关、这是另一种情况。
这是由主时钟源和从时钟源之间的偏差造成的。 如果主器件的时钟源速度更快、则可能会出现此问题。 因此、您需要查看时钟输入的规格、如果精确到+/- 0.1%、则需要确保从器件周期始终比主器件短0.2%。
当今的时钟非常精确、并且以 PPM 为单位进行测量、因此在典型的 PWM 周期中、一个时钟周期应该足够。 但是、如果您使用的时钟源更不准确、那么 TBPRD-2可能是一个好主意。
此致、
Cody
Cody、
感谢您的回答。
我有更多问题。
拥有快速主时钟意味着什么?
您是说频率很高吗?
您是否会进一步解释从器件无法触发 ePWM 的原因?
我仍然认为未触发从器件的 ePWM 是问题所在。
因为我测试了6块控制板。 但所有从板都有相同的问题。
可能、我测试的所有控制板的时钟速度都不可能慢于主板。
(我使用的振荡器误差为10ppm。 (TSX-3225、20MHz))
非常感谢。
[引用 user="dongkwan Yoe"]拥有快速主时钟意味着什么?
[引用 user="dongkwan Yoe"]您是否会更多地解释不能触发从器件 ePWM 的原因?
主时钟速度更快是导致主 PWM 频率比其他 PWM 更快的原因之一。 如果速度更快、则意味着主器件在从 PWM 完成其 PWM 周期之前创建一个同步脉冲。 这将在从 PWM 中重新加载 TBPHS、在某些情况下会导致错过 PWM 事件。
[引用 user="dongkwan Yoing"]
可能、我测试的所有控制板的时钟速度都不可能慢于主板。
(我使用的振荡器误差为10ppm。 (TSX-3225、20MHz))
[/报价]
您是否测量过该振荡器误差? 由于 PCB 布局和电容器选择较差、10ppm 晶振的精度可能比数据表规格高得多。
尽管如此、您不会错过每个周期的计数器事件这一事实表明时钟输入已关闭。 它们可能具有短期漂移、如果主时钟漂移更快、而从时钟漂移更慢、则可能会发生这种情况。 我希望您在大多数时钟源接近但不完全相同的电路板上看到这个问题、如果从器件的时钟比主器件的时钟慢得多、那么您可能会更频繁地看到这个问题、可能每个周期都要取决于您的 PWM 设置。
此致、
Cody
Cody、
感谢您的回答。
我可以通过您的答案了解更多详细信息。
是的、我将振荡器尽可能靠近 DSP 放置。
我检查了振荡器误差。 通过示波器检查似乎没有什么误差。
如果从机模块的频率比主模块慢、这将是一个问题、但我认为即使从模块比主模块快、也可能是一个问题。
我认为原因在下面的图中表示。
(我认为这是原因、因为 DSP 根据系统时钟处理信号。 如果 DSP 不是基于系统时钟发出信号、那么我认为原因是错误的。)
附图显示了两种情况。
情况1、当主器件和从器件的系统时钟同步时。 在这种情况下、只有当从机的时钟慢于主机的时钟时、才会出现问题。
在第2种情况下、主器件和从器件的系统时钟不同步。
即使从机模块识别到 SYNC 信号、它也不会立即处理该信号、因此这里存在轻微延迟。
如果主模块和从模块的频率完全匹配、问题似乎不会发生、因为每个周期都会保持轻微的延迟。
但是、如果主模块和从模块的频率甚至稍有不同、当这些误差累积并大于10ns 时、似乎会出现问题。(2 X 系统时钟、1 X PWM 时钟)、这似乎是间歇性发生的原因、 而不是我进行测试时的每个周期。
非常感谢
我相信您的理解是正确的!
为了避免这个问题、我认为将从器件周期设置为 TBPRD-1或 TBPRD-2应该能够避免这个问题、只要时钟每 PWM 周期偏离一个系统时钟。
执行此操作时、您是否仍然看到此问题?
此致、
Cody
Cody、
感谢您的回答。
至少到目前为止、这似乎不是问题。
但是、由于我不知道确切的原因、我不确定在生产其他产品时是否可以采用相同的方法。
我无法测试生产的所有产品、因此我想知道确切的原因。
如果我认为原因是正确的(如上所述)、如果只有电容器和振荡器的误差管理和这些器件的温度有效、则可以将当前应用的方法视为解决 PWM 消失问题的方法。
非常感谢。
Cody、
感谢您的回答。
我还有其他问题、所以我写一篇文章。
我已经测试了其他控制板、但最终会发生相同的情况。
我认为这可能是"TBPRD-2"缺陷。
DSP 结构似乎根本无法解决。
因此、我们将继续采用上述避让方法。
在这里、我有一个问题。
如果在以下条件下、您能否在开关频率为20kHz 时计算所需的 TBPRD-X 值?
(系统时钟:200 MHz,PWM 时钟:100 MHz)
1、没有因电容和模式而产生的振荡器频率误差。
振荡器频率误差范围为20MHz-200Hz ~ 20MHz+200Hz。
3. 从主板到从板的同步信号延迟40ns。
非常感谢。
东宽
您能用另一种方式解释以下内容吗? 我不明白。
[引述 USER="dongkwan Yoe"]我认为这可能是"TBPRD-2"缺陷。[/引述]
好的、所以我将一个快速计算组合在一起、显示主器件和从器件是否能够耐受+/- x Hz 的时钟摆幅。 虽然我可能犯了一个错误、但下面是我看到的结果。
一些有用的信息:
现在、我展示了 TBPRD-2可以容忍的最坏情况时钟摆幅(+/-4000)。 在此示例中、您可以看到 TBPRD-1已经为负、不起作用。
假设我的计算是正确的、并且您的时钟抖动不超过+/-200Hz、那么我不认为这个问题是由这两个器件的同步引起的、而是另一个问题或实施错误。
您可以尝试通过在发生故障的电路板上更改为 TBPRD-3来增加更多裕度、看看这是否解决了问题、如果是这样的话、您的时钟可能不如我们想象的那么稳定。
此致、
Cody