epwm-dc模块学习
2026/8/6 22:26:27 网站建设 项目流程

前言:epwm-dc(digital compare)模块学习会关联到很多模块,它的输入可以从cmpss模块ADC-PBB模块,外部IO模块来,输出就是给到TZ模块的DCAEVT1/DCAEVT2/DCBEVT1/DCBEVT2的四个事件了,所以打算一起简要介绍一下关联到的所有模块

1.输入

可以看到,DC模块的输入是TZ1-TZ3的TRIPIN1-3以及EPWM X-BAR的TRIPIN4-12,TRIPIN14、15我就不介绍了,没学,hhh。

TZ1-TZ3直接略过,就是用input X-BAR配一下IO就,那就只介绍EPWM X-BAR了。

1.1EPWM X-BAR的输入信号很多,如下图所示

这里我也只介绍CMPSSX和ADCX-PBB,此外,EPWM X-BAR里面有很多个复用器G0-G31,每个TRIPOUT都可以从G0-G31来,比如TRIPOUT1可以选G0、G16的输出。而G0-G31每个复用器的输入是四选一,具体就去看用户手册EPWM X-BAR那节吧,这个不是我们介绍的重点。

1.2CMPSSX

CMPSSX就是比较器,它有高和低两个比较器,然后我们可以通过它内置的DAC设置它比较器的上下限,它的正相输入是固定了的,都是ADC的引脚。就是说可以通过软件设置上下限,然后输入的采样信号超过这个限制后就触发信号,先来看一下外设内部结构。

CMPINXP就是它的正相输入,CMPSSX的正相输入是固定的,看数据手册的IO定义就可以看到

CMPINXN是负相输入,它有两个来源,一是我们常用的DAC生成的模拟信号,二是外部输入。

这样,它就可以根据两个比较输出两个信号,然后这两个信号可以由EPWM X-BAR的复用器选择,是选CTRIPH还是CTRIPL或是两个做或逻辑。

1.3ADC-PBB

ADC中的PBB后处理模块和CMPSS作用差不多,不过据网上所查资料,ADC-PBB因为有采样延时,所以响应相对CMPSS是比较慢的。

先来看一下PBB的内部结构

它的比较器输入是ADC结果寄存器,这个是可以设置的,可以灵活选择哪个采样通道,然后上下限则是配置的时候与采样结果0-4096做对比,然后触发事件,假设我们设置的是高低范围,则超出这个范围后,PBB输出的就是低电平,正常状态下是高电平。但是,它只能选择其中一个比较器的输出。所以每个ADC有4个PBB模块,输出ADCXEVT1-ADCXEVT4四个事件,同样,四个事件可以通过EPWM X-BAR的复用器选择,然后输出到EPWM-DC模块。

2.输出

EPWM-DC输出四个事件DCAEVT1/DCAEVT2/DCBEVT1/DCBEVT2给到TZ,DCAH的输入可以通过DCAHCOMPSEL和DCAHTRIPSEL两个寄存器设置,选择DCAH响应哪几个TRIPIN,同样,DCAL/DCBH/DCBL都是可设置的。DCAEVT1/DCAEVT2事件可以通过TZDCSEL设置DCAH和DCAL状态来产生,DCBEVT1/DCBEVT2事件可以通过TZDCSEL设置DCBH和DCBL状态来产生。

输出到TZ后,TZSEL可以选择DCAEVT1/DCBEVT1作为ONE-SHOT事件,也可以DCAEVT2/DCBEVT2作为CBC事件,TZCTL可以选择触发事件后的EPWMA/B输出状态,DCAEVT是控制EPWMA的DCBEVT是控制EPWMB的。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询