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.

[参考译文] TMS320F2.8335万:是否可以控制8/12独立PWM通道?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/631440/tms320f28335-possible-to-control-8-12-independent-pwm-channels

部件号:TMS320F2.8335万

您好,

在我们的应用中,我们需要控制8个步进电机和4个风扇(使用PWM输入)。 为了避免浪费CPU时间,我们尝试使用PWM控制这些输出。 我知道F2.8335万有12个PWM输出,在我们的主板I的第二版上,所有此类信号都连接到GPIOs 0-11,这些GPIO是与PWM通道关联的I/O。 进一步阅读数据表后,似乎只有6个PWM通道,每个通道上的两个输出都"绑定在一起"。 也就是说,不能以不同的频率驱动GPIO 0/1,因为它们都连接到PWM通道1。  

我是否忽略了任何可以让我们在不占用CPU时间的情况下驱动这些电机的问题? 风扇不像步进器那么重要,因此我们的最低要求是8个独立PWM通道。  

感谢您的任何建议!

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

    你是对的。 只有6个PWM通道,并且两个输出A/B通道都被绑定到特定频率,具体取决于TBPRD的配置和PWM时钟频率。

    F2.8335万具有6个ECAP模块,如果您有备用ECAP模块,则在APWM模式下配置时可以获得PWM信号。 请参阅TMS320x2833x,2823x增强捕获[ECAP]模块参考指南(修订版 a)了解更多详情。

    此致,
    Manoj
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是否意味着使用PWM + ECAP,我可以获得12个独立的PWM通道?

    更具体地说,我们需要调节的不是步进电机的脉冲宽度,而是频率。

    我们有4个风扇输出,它们是固定频率,脉宽调制的,还有8个电机,它们是固定脉宽,频率调制的。

    我们可以通过混合使用eCAP和ePWM模块来实现这一点吗? 能否同时使用eCAP + ePWM? 例如:GPIO0是EPWM1输出A,但GPIO1可以是EPWM1输出B *或* eCAP6。

    这是否意味着我可以在GPIO0上使用ePWM模块,同时在GPIO1上使用ECAP模块? 他们是完全独立还是以某种方式绑在一起? 即,我是否需要关注以任何特定方式对输出进行"分组",或者它们是否可以互换?

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

    ePWM和ECAP模块相互独立。 您唯一的限制可能是检查您是否有足够的pin mux选项。

    例如,GPIO1可配置为EPWM1B,ECAP6,MFSRB (或) GPIO1。 如果您将GPIO1配置为EPWM1B。 您必须在GPIO49上使用ECAP6。 现在,如果没有用于ECAP6的备用GPIO mux选项,则必须在ECAP6 (或) EPWM1B之间进行选择。

    对于PWM,EPWMxA和EPWMxB共享相同的TBPRB (确定频率)。 因此,EPWMxA和EPWMxB在给定点始终具有相同的频率。 它们不能相互独立于频率。

    对于ECAP,每个ECAP模块可配置为不同的频率。

    此致,
    Manoj
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我明白了。 那么我就可以做这样的事情了...

    GPIO0 = EPWM1A
    GPIO1 = ECAP6
    GPIO2 = EPWM2A
    GPIO3 = ECAP5
    GPIO4 = EPWM3A
    GPIO5 = ECAP1
    GPIO6 = EPWM4A
    GPIO7 = ECAP2
    GPIO8 = EPWM5A
    GPIO9 = ECAP3
    GPIO10 = EPWM6A
    GPIO11 = ECAP4

    ...是否以独立于其他引脚的频率驱动每个引脚? 换言之,我仍然可以将GPIO1用于ECAP6,即使我使用GPIO0用于EPWM1A。 是这样吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的,您可以这样做。

    此致,
    Manoj