epwm-dc模块学习

📅 2026/8/6 22:26:35
epwm-dc模块学习
前言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.2CMPSSXCMPSSX就是比较器它有高和低两个比较器然后我们可以通过它内置的DAC设置它比较器的上下限它的正相输入是固定了的都是ADC的引脚。就是说可以通过软件设置上下限然后输入的采样信号超过这个限制后就触发信号先来看一下外设内部结构。CMPINXP就是它的正相输入CMPSSX的正相输入是固定的看数据手册的IO定义就可以看到CMPINXN是负相输入它有两个来源一是我们常用的DAC生成的模拟信号二是外部输入。这样它就可以根据两个比较输出两个信号然后这两个信号可以由EPWM X-BAR的复用器选择是选CTRIPH还是CTRIPL或是两个做或逻辑。1.3ADC-PBBADC中的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给到TZDCAH的输入可以通过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的。