TI E2E™ 设计支持论坛将于 5 月 30 日至 6 月 1 日进行维护。如果您在此期间需要技术支持,请联系 TI 的客户支持中心寻求帮助。

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.8379万D:CLB时钟和ePWM

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1093256/tms320f28379d-clb-clock-and-epwm

部件号:TMS320F2.8379万D
在Thread:C2000WAREsysconfig中讨论的其它部件

大家好,

我知道此处理器的CLB时钟来自ePWM时钟。 因此,在设置任何CLB寄存器之前,我启用了ePWM时钟,如下所示。

EALLOW;

//启用对应于CLB磁贴1的ePWM时钟
CpuSysRegs.PCLKCR2.bit.EPWM1 = 1;
Clb1LogicCtrlRegs.CLB_load_EN.bit.global_EN =1;/*启用CLB tile 1 */

.....

但是,未设置的寄存器始终为0。 检查时发现,必须通过设置DevCfgRegs.CPUSEL0.Bit.EPWM1位为ePWM1选择CPU,然后才设置CLB寄存器。

这是预料之中的吗?

所以我的问题是:CLB和相应的ePWM (它从中派生时钟)是否存在限制,它们应该位于同一个CPU上?  

是否可以在CPU1中配置CLB tile 1,在CPU2中配置ePWM1?

此致,

Irene

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

    在本设备中,特别是EPWM1和CLB。 不仅在需要HRPWM时,还需要将EPWM1分配给CPU1。 因此,对于此设备,您通常需要在CPU1上保留EPWM1和CLB。

    这样说,结果是正确的。 但是,默认情况下,启动时EPWM1被分配给CPU1,您是否更改了它? 仅当您已将EPWM1所有者明确更改为CPU2时,您才需要代码行将所有者设置为CPU1。

    我还看到在初始化CLB之前设置了CLB全局启用位,可以在tile init完成后设置。 这样,HLC和计数器就不会在设置时开始运行。

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

    您好,Nima:

    为了正确理解,我们是否可以在F2837xD中的CPU2中使用CLB,即使我们不需要HRPWM?

    我将ePWM所有者更改为CPU2,您说的没错,因此需要将其设置回CPU1。  

    我在初始化CLB之前启用全局功能的原因也是因为它是C2000Ware中第一个CLB示例中遵循的顺序。 在几乎所有示例中,CLB全局启用都是在调用init_tile函数之前设置的。

    因此,理想的设置方法是:

    1.设置CLB逻辑配置

    2.从clb_config.h调用CLB Init_tile()函数

    3.设置 CLB全局启用

    此致,

    Irene

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

    Irene,

    因此,从技术上讲,只要您可以将EPWM1分配给CPU2,就应该能够在CPU2上使用CLB。

    举例来说,你是对的,我只是看了一下,他们确实按照这个顺序,这在大多数情况下都是很好的。 但建议的模式是我发送给您的模式和sysconfig遵循的模式。 所有示例都很好,因为示例实际上不需要同时启动计数器/HLC。

    NIMA