TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F28379D: 关于clb_ex5_event_window例程的疑问

Part Number:TMS320F28379D

以上中断函数中,gpreg1的初始值为4,即bit2位为1,该bit位为counter使能位;或0x2,使bie1位先置高后置低,产生中断完成脉冲。

问题1.“中断完成脉冲”作为输入CLB单元IN1的输入,滤波方式是否应该配置为上升沿检测?

问题2.计数器的match1匹配起到什么作用呢?spruir8a例程说明文档中,对于这个例程的描述部分没有提到过counter0.match1

问题3.spruir8a例程说明文档中没有对first_trip_n的说明,而且通过调试我发现这段代码是有问题的。

以下为ePWM1单元 AQ部分配置:

按照例程中的PWM配置,上电以后就会有一个PWM1A的上升沿,由于IN0配置为“CLB_FILTER_RISING_EDGE”,这个上升沿会改变FSM的状态从而启动CLB单元Counter0,这也就会导致在正常检测超时事件前额外多触发一次CLB ISR。因此,CLB ISR中不得不先将first_trip_n配置为false,检测到这个多余的超时事件之后,再将first_trip_n设置为true,而后才能执行例程说明中描述的超时事件检测功能。

其实改变PWM波的生成方式,可以避免产生这个多余的CLB ISR。

修改AQ配置如下:

修改配置后的PWM波形如下:

此时,需要并将IN0的滤波方式有之前的CLB_FILTER_RISING_EDGE修改为CLB_FILTER_FALLING_EDGE

以上请TI工程师确认一下。

问题4.spruir8a文档中的下图是有问题的

超时事件发生后,即counter0.match2发生后,counter不会立即被清0,而是要等payload执行完成后,在epwm1ISR中执行GPREG bit1的置高及置低操作后,才会被FSM.OUT复位。

以上请TI工程师确认一下。

问题5.

利用launchpad 28379D 2.0调试,payload的迭代执行周期不是12个cycle,而是5到7个cycle,我是通过每次执行迭代后TBCTR寄存器数值变化观测到的。

以上请TI工程师确认一下。

Yale Li:

好的,我看一下

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28379D: 关于clb_ex5_event_window例程的疑问
分享到: 更多 (0)