DSP28377,EPWM同步问题

DSP28377,EPWM同步问题
先看芯片手册这一页,介绍了所有epwm的同步信号的框架
在这里插入图片描述
我这里要做的事情就是使得epwm7和epwm4同步,能达到epwm4,5,6,7四路同步的效果
步骤:
1.EPwm4Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO; //设置epwm4不同步
2.
EPwm5Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;//设置epwm5.6.7同步
EPwm6Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;
EPwm7Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;
3.SyncSocRegs.SYNCSELECT.bit.EPWM7SYNCIN = 0x01; //epwm7同步源选择epw4作为同步源(注:这个寄存器要使用EALLOW;开启寄存器写入才能赋值)
同步源如何选择可以查看SYNCSELECT寄存器。
在这里插入图片描述
这样就设置好了四路时钟同步了

### 关于DSPEPWM同步输出 在涉及DSP28335的EPWM模块应用时,实现多个EPWM通道之间的同步输出是一项常见需求。为了确保不同EPWM通道能够精确同步工作,通常采用共享公共事件触发的方式来进行初始化和更新操作。 #### 配置同步机制的关键要素 - **全局定时器同步**:利用DSP内部的一个高精度计数器作为所有EPWM模块的时间基准源[^1]。 这种方式下,所有的EPWM模块都基于同一个时间轴运行,从而减少了由于各自独立计数所带来的相位差问题。 - **影子寄存器的应用**:通过设置合适的影子寄存器参数,可以在特定时刻(比如下一个周期开始前)自动加载新的比较值或周期值至实际使用的寄存器中。 影子寄存器的作用在于允许程序提前准备好下一阶段的工作状态而不会影响当前正在执行的任务流,这对于保持多路信号间的严格同步至关重要。 - **中断服务例程(ISR)**:编写高效的ISR处理逻辑以响应由外部条件引起的同步请求,并在此过程中完成必要的数据交换和服务调用[^4]。 中断驱动的方法可以有效减少CPU占用率并提高系统的实时性能表现。 ```c // 假设我们要使能EPWM1A 和 EPWM2A 的同步功能 EALLOW; SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1; // Enable TBCLK sync globally. EPwm1Regs.TBCTL.bit.SYNCOSEL = 3; // Select SOCA as the source of SYNCOUT signal for EPWM1 EPwm2Regs.TBCTL.bit.HSPOLAR = 1; // Set high on counter reset (sync event). EPwm2Regs.TBCTL.bit.CTRMODE = 7; // Up-down count mode with external synchronization input from EPWM1. EDIS; // 初始化完成后, 可以进一步调整其他具体参数... ``` 上述代码片段展示了如何配置两个EPWM通道之间建立同步关系的基础步骤。这里选择了`EPWM1`产生的同步脉冲(`SOCA`)去控制另一个EPWM单元(`EPWM2`)的行为模式;同时设置了后者处于上下计数模式并且接受来自前者提供的同步输入信号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值