EPWM模块影子寄存器的原理
在TI(Texas Instruments)的DSP28335中,EPWM(Enhanced Pulse Width Modulator)模块提供了高精度、高灵活性的PWM信号生成功能。为了能在不影响当前PWM波形输出的情况下预装载新的PWM参数(如周期、占空比等),EPWM模块引入了影子寄存器的概念。
影子寄存器的工作原理
1.双缓冲机制:影子寄存器实际上是一种双缓冲机制。每个可以更新的EPWM寄存器(如周期寄存器TBPRD、比较匹配寄存器CMPA等)都有一个对应的影子寄存器。
2.预装载新值:当用户想要改变PWM的参数时,不是直接写入正在使用的寄存器,而是先将新值写入对应的影子寄存器。
3.同步更新:在特定的时间点(通常是由时间基准计数器触发的某个事件,如计数器的顶部或底部),影子寄存器中的值会被自动复制到活动寄存器中,从而实现参数的平滑更新,避免在PWM波形中产生不希望的跳变。
代码实例
以下是一个简单的示例,展示了如何在DSP28335上使用EPWM模块的影子寄存器来更新PWM的周期和占空比。
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
#include