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.

[参考译文] TMS320F28377D:使用 CPU1和 CPU2控制2个单独的转换器?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/599327/tms320f28377d-using-cpu1-and-cpu2-to-control-2x-separate-converters

器件型号:TMS320F28377D

你(们)好。

我使用 TMS320F28377D 来控制/驱动定制的直流/直流转换器。 现在我必须尝试控制2个转换器、我想问您是否可以从 CPU1单独控制一个转换器、从 CPU2单独控制第二个转换器。

这是因为我的转换器开关频率为200kHz、而且我的控制/PWM 更新等以200kHz 的频率运行(我使用一个 ADC 中断、每5us 发生一次、即200kHz)、 我认为、如果我尝试以这个频率从同一 CPU 驱动/控制两个转换器、中断代码的执行时间将远远超过5us (200kHz)、因此、如果可能、我希望从 CPU1驱动一个转换器、从 CPU2驱动另一个转换器。  

如果您对此有任何意见/建议、那将会很好、

非常感谢您、

Leo

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

    您好、Leonardo、

    在此器 件上、CPU1和 CPU2具有相同的功能、只是某些器件初始化和 GPIO 设置控制仅包含 CPU1 (这是初始化部分)。 因此、您应该能够在 CPU1和 CPU2之间共享负载。 实际上、每个 CPU 子系统都有自己的 CLA、也可用于共享负载。

    此致、

    Vivek Singh

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

    当 ADC 异步运行时、我们降低了规格(请参阅数据表中的性能规格)。 ZWT 封装的这种性能下降的影响要小得多。

    如果您的两个转换器将异步触发 ADC /而不是锁步触发、则可能需要使用 ZWT 封装(如果可能)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Devin、

    感谢您的回复。 我不确定 ZWT 封装... 我的配置如下:我有2个直流/直流转换器、我希望在 CPU1和 CPU2上单独驱动和控制它们。

    每个转换器有4个 ADC 信号。 转换器#1使用通道 A2、B4、C2、D0、而转换器#2将用于 A3、B5、C3、D1等。 我尚未连接转换器#2、目前我仅使用转换器#1。 当它保持 ADC 转换 A2、B4、C2、D0并行发生、并且它们由一个 EPWM6 CTR = 0脉冲启动;当 ADC 转换完成时、一个 ADC 中断被触发。 在中断内部执行控制和 PWM CMP 更新。

    现在、如果我从 CPU1中的 EPWM6驱动转换器#1、并从 CPU 2中的 EPWM7驱动转换器#2 (EPWM6和7相同)、我想做以下几点:

    1)使 EPWM6 CTR = 0事件在 A2、B4、C2、D0上启动 ADC 转换
    2) 2)具有相同的 EPWM6=0事件、以触发 A3、B5、C3、D1上的 ADC 转换
    3) 3)当 ADC 转换(A2、B4、C2、D0)完成后,会触发一个到 CPU1的 ADC 中断,并在转换器1上运行控制器和 PWM 更新
    4) 4) ADC 转换(A3、B5、C3、D1)完成后、在 CPU2上触发一个中断、并在转换器2上运行控制器和 PWM 更新

    5) 5)确保在发生下一个 EPWM6 CTR = 0事件时、上述点1至4将以相同的顺序重复、即从 ADC A2、B4、C2、D0开始、然后移至 A3、B5、C3、D1

    这是可能的吗? 如何设置 ADC 转换以始终按上面第1)和第2)点中的顺序执行转换?

    希望我的问题有道理...

    非常感谢您的帮助。

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

    是的、您一定可以这么做。 只需将 ePWM6 CTR = 0作为全部8个 SOC 的触发器。 所有4个 CPU1通道应使用 SOC0、所有4个 CPU2通道应使用 SOC1。 将 CPU1设置为在 SOC0、ADCA 上具有转换结束后的 ISR。 将 CPU2设置为在 SOC1上具有转换结束后的 ISR。 CPU1 ISR 从所有4个 ADC 读取转换结果0、而 CPU2 ISR 从所有4个 ADC 读取转换结果1。

    如果您想将一个(或两个)控制计算转移到 CLA、您还可以尝试使用 CLA 任务触发器而不是 CPU ISR 来执行此操作。

    注意:所有4个同步 CPU1样本应使用相同的 ACQPS 设置/ S+H 持续时间(对于4个同步 CPU2 ACQPS 设置、则相同)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢 Devin、我会给它一个尝试。

    谢谢

    Leo