嵌入式学习小组
直播中

golabs

8年用户 900经验值
擅长:可编程逻辑 电源/新能源 MEMS/传感技术 测量仪表
私信 关注

M263A怎么产生一对互补带死区的EPWM?

在sample code里边没有找到互补pwm的实现方法

回帖(1)

江根磊

2024-1-18 15:29:52
M263A可以使用其内置的EPWM模块产生一对互补带死区的PWM信号。在EPWM模块的寄存器中设置不同的参数,即可生成互补带死区的PWM信号。

以下是一个简单的产生互补带死区PWM信号的示例:

```c
#include "M263A.h"

void main(void)
{
    SYS_Init();   // 系统初始化,配置CPU时钟、GPIO、UART等

    // 配置EPWM通道0
    EPWM_ConfigOutputChannel(EPWM, 0, 1000, 50);   // 设置频率为1000Hz,占空比为50%
    EPWM_EnableDeadZone(EPWM, 0, 1000);            // 设置死区为1000个计数周期

    // 配置EPWM通道1,与通道0配对,生成互补带死区的PWM信号
    EPWM_ConfigOutputChannel(EPWM, 1, 1000, 50);   // 设置频率为1000Hz,占空比为50%
    EPWM_EnableDeadZone(EPWM, 1, 1000);            // 设置死区为1000个计数周期
    EPWM_SetPairOutputMode(EPWM, 0, EPWM_PairModeComplementary);  // 设置通道0和通道1配对为互补模式

    EPWM_Start(EPWM, EPWM_CH_0_MASK | EPWM_CH_1_MASK);  // 启动EPWM通道0和通道1

    while(1);
}
```

这段代码中,首先配置EPWM通道0和通道1,分别设置频率、占空比和死区,并将通道1设置为与通道0互补。最后启动EPWM通道0和通道1输出PWM信号。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分