TMS320F28P650SK: CLB相关

Part Number: TMS320F28P650SK

请教一下,用F28P650SK6的芯片,想通过CLB模块实现一些功能。碰到如下问题。

一开始我用EPWM1模块产生互补的两路PWM驱动,想通过CLB模块,在有外部触发信号时,让EPWM1A和EPWM1B产生不同的逻辑行为。

正常在触发信号未产生时,EPWM1A与EPWM1B是不受影响的,应该是维持原来的状态,是一对互补的驱动。但当配置完CLB模块后,生成代码后,烧录后,本该正常互补的驱动已是完全拉低状态。

因此先做了一个简单的测试,没再管本来的设计功能,大体配置如下:

1:在CLB1中,利用CLB1 Overriding Outputs功能,用Output0和Output2去覆盖EPWM1A和EPWM1B的信号;

image.png

 

2:在CLB的 TILE design中,将Output Look-up Table 0和Output Look-up Table 2的Output Logic Equation 都配置为1,即输出都是1,用于覆盖EPWM1A与EPWM1B的输出;

f8864f6f-6cf5-42c7-8d97-cab97efdf444.jpeg

用此配置后,编译代码烧录,EPWM1A与EPWM1B已无正常驱动;按照Output look up Table 0和Output look up Table 2的输出设置,输出是不是该被拉高?

由于是第一次接触CLB,还不是很明白,请帮忙解答一下。

另外,如果CLB同步的是SYSCLK的时钟,是200MHz,但是CLB的时钟超过100MHz时,需要使能PIPELINE mode,使能后,会有一定的延时;因此是否可以独立配置CLB的时钟呢?

还有一个:通过如下CLB Input 选择配置图来看,如果我通过INPUTXBAR配置触发源,再通过CLBXBAR映射到AUXSIG上,是不是就不需要配置CLB INPUT XBAR 了?

image.png

另外,已经将生成的代码中Board_init()放到了main函数中,也重新使能了CLB,    CLB_enableCLB(myCLB0_BASE);

如上。