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.

[参考译文] TMDSDOCK2.8069万:创建精确的输出开关信号,并具有动态控制的延迟

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1103410/tmdsdock28069-creating-precise-output-switching-signals-with-dynamically-controlled-delays

部件号:TMDSDOCK2.8069万
主题中讨论的其他部件:C2000WARE
我需要一个系统,通过一个开关命令,我可以提供多个开关信号。 例如,如果我有一个切换命令,我需要三个切换输出,其中输出2从输出1延迟,带有D2延迟,输出3从输出1延迟,带有D3延迟。 延迟最好在纳秒范围内(越精确越好)。 此外,延迟量(以时间或时钟最高精度的倍数表示)应从C代码/Matlab中获取,并用于即将进行的切换操作,这些延迟必须是可在线更改的变量。 中的初始切换命令不是由PWM生成的,  也没有正弦参考。 它只是由特定代码或外部命令生成的0或1信号。 因此问题是:
1.最好的方法是什么?
2. Wat是我能得到的最好的精确度吗?
3.是否有这样或类似的例子?
巴西,
Mohsen  
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Mohsen,您好!

    1. 执行此操作的最佳方式是什么?[/QUOT]

    请参阅下面您提到的各个部分的回答

    例如,如果我有一个切换命令,我需要三个切换输出,其中输出2延迟,输出为D3/1]

    您可以通过相位移来实现这一点。 您可以将相移值应用于EPWM2,将另一个相移应用于EPWM3,以便它们从EPWM1获得相移。 您可以设置同步方案,以便同步信号从EPWM1到EPWM2再到EPWM3

    2. Wat是我能拥有的最好的精确度?[/QUOT]

    相位寄存器(TBPHS)为16位(您必须为此写入一个整数值)。 您受时基时钟频率的限制(取决于ePWM时钟和时钟分隔器- CLKDIV和HSPCLKDIV以及计数方向)。 《技术参考手册》(TRM)中有一些很好的示例显示了当将相位应用到ePWM输出时会发生什么情况。  

    中 的初始切换命令不是由PWM生成的,也 没有 正弦参考。 它只是由特定代码或外部命令
    [/quote]
    [/quote][/quote]
    生成的0或1信号

    您可以在程序中的任何点更改阶段寄存器的值。 您需要了解生成这些延迟值的Matlab/c代码如何更新此阶段寄存器。  

    3. 是否有执行此操作或类似操作的示例?[/QUOT]

    没有执行您所描述内容的示例,但我们确实有ePWM示例,可作为 C2000Ware中的起点

    C:\ti\c2000Ware_version\device_support\f2806x\examples\c28</s>2806

    此致,

    Marlyn

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

    您好,Marlyn:

    顾名思义,ePWM创建脉宽调制信号。 即,它使用载波形来调制参考信号。 这不是我想要的。 在我的系统中,我需要定义主切换信号的提供时间(例如,考虑模型预测控制算法)。 因此它不能来自PWM载波。  当给出该切换即时时, 必须  生成3个切换信号(从0到1),这些信号会随着时间的推移而变化(使用预定义的移动)。 3个信号应保持高位,直到我自己生成下降命令(而不是PWM)。 ePWM基于载波(如TM图3-22至图3-25所示),不允许这种可控性。 我应该如何实施我所描述的内容?

    巴西,

    Mohsen   

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

    通过外部命令,您是指通过SCI/SPI/CAN或其它模块?

    是否要在输入新命令时更改ePWM模块的相移?

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

    主切换命令可在内部生成(从主代码)。 但输出端口上生成的三个交换实例必须准确地相互延迟。  

    新计算的延迟必须应用于下一个切换实例。 在切换实例之间的任何时间都可以更新延迟。

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

    Mohsen,您好!

    使用跳闸区域子模块,您可以执行软件强制操作,将ePWM输出置于特定的状态(例如,进入高状态)。 无论何时选择,您都可以删除ePWM上的软件强制,以便它们恢复正常操作。

    \n新409.0592万新计算的延迟必须应用于下一个切换实例。 在切换实例之间,可以随时更新延迟。[/QUOT]

    您可以选择EPWM1的同步输出事件以馈送到其余ePWM模块,例如当EPWM1=ZRO的TBCTR时。 因此,每次EPWM1的TBCTR =0时,TBPHS寄存器中写入的相位值都将以尊重的方式加载到EPWM2和EPWM3的时基计数器中。

    使用跳闸区域子模块完成的任何配置都将覆盖时基子模块,因此您在跳闸区域子模块中设置的软件强制将优先。  

    此致,

    Marlyn