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.

[参考译文] TMS320F28379D:如果 EPWM1分配给 CPU2、CLB1不能#39;t 功能。

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034198/tms320f28379d-clb1-doesn-t-function-if-epwm1-is-assigned-to-cpu2

器件型号:TMS320F28379D

我在 CLB1模块上实现了一些逻辑。 但是、只有当我将 EPWM1分配给 CPU2时、它才会工作。 我不在 CLB 中使用来自 EPWM1 (或任何 EPWM 模块)的任何信号。 我在勘误文档中和 TRM 中都没有看到任何相关内容。  

我已经编写了一个小演示来重现此问题。 我似乎无法将.syscfg 文件附加到此帖子、因此下面的 main.c 文件就足够了。 该演示对 GPIO35上的正边沿事件进行计数。 计数器初始化为1000、当计数器超过20000时、计数器将重置为该值。 禁用 sysctl_selectCPUForPeripheral()调用后,CLB 模块将按所述工作。 启用调用后、CLB 模块不会有任何状态变化(无论什么、计数器值读取为0)。  

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "driverlib.h"
#include "device.h"
#include "clb_config.h"
#include "clb.h"
#include "pin_map.h"
void initCLB1(void);
void main(void)
{
Device_init();
Device_initGPIO();
Interrupt_initModule();
Interrupt_initVectorTable();
GPIO_setPadConfig(35, GPIO_PIN_TYPE_STD);
GPIO_setPinConfig(GPIO_35_GPIO35);
GPIO_setDirectionMode(35, GPIO_DIR_MODE_IN);
SysCtl_enablePeripheral((SysCtl_PeripheralPCLOCKCR)0x0011);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    EPWM1时钟为 CLB 时钟。

    这就是为什么在所有 CLB 示例中、我们启用 ePWM PCLK 的原因。 对于该器件、如果要使用 HRPWM、还需要将 EPWM1分配给 CPU1。 通常、将 EPWM1分配给该器件系列中的 CPU1。  

    NIMA