DSP 多个 PWM 同步总出问题?28377S 同步链路和主从配置一次讲清!

📌 以 TMS320F28377S 为例

在使用 DSP28377S 进行多路 ePWM 同步控制时,很多人容易踩坑。这里总结几个关键点,尤其适用于多模块同步、移相控制等场景。


✅ 一、必须先开启 PWM 外设时钟

在系统初始化阶段,一定要确认 ePWM 模块时钟已经开启。

对应函数路径:

InitSysCtrl(); └── InitPeripheralClocks();

在 InitPeripheralClocks() 中:

  • 赋值为 1 → 对应 PWM 模块时钟开启

  • 赋值为 0 → 对应 PWM 模块时钟关闭

⚠️ 如果忘记开启时钟,后续所有 PWM 配置都会"无效",但程序不会报错,非常容易误判。


✅ 二、ePWM 同步链路结构必须搞清楚

在 TMS320F28377S 中,同步信号并不是所有 PWM 共用一条总线,而是分组的。

📌 同步分组关系:

  • EPWM7 / EPWM8 / EPWM9 → 共用一个同步链

  • EPWM10 / EPWM11 / EPWM12 → 共用一个同步链

⚠️ 特别注意:

虽然 EPWM7 的同步信号可以传递到 EPWM10 ,

但 不能直接传递到 EPWM11!

👉 EPWM11 的同步源仍然来自 EPWM10

👉 EPWM12 的同步源来自 EPWM11

也就是说:

如果你要使用 EPWM11 的相位寄存器(TBPHS),

必须先使能 EPWM10 的同步输出。

否则 EPWM11 根本接收不到同步信号。


✅ 三、EPWM10 & EPWM11 正确同步配置示例

假设我们希望:

  • EPWM10 作为主模块

  • EPWM11 作为从模块(移相)


🔹 EPWM10(主模块)配置

EPwm10Regs.TBCTL.bit.PHSEN = TB_DISABLE; // 禁止相位加载 → 主模块 EPwm10Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO; // 计数到0时发出同步信号

说明:

  • PHSEN = DISABLE → 表示本模块作为同步源

  • SYNCOSEL = ZERO → 在计数器清零时产生同步脉冲


🔹 EPWM11(从模块)配置

EPwm11Regs.TBCTL.bit.PHSEN = TB_ENABLE; // 允许相位加载 → 从模块 EPwm11Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN; // 接收同步信号

说明:

  • PHSEN = ENABLE → 允许加载 TBPHS,相位生效

  • SYNCOSEL = IN → 同步信号来自 EPWM10


🔥 四、常见踩坑总结

✔ 没开 PWM 时钟

✔ 主模块没有打开同步输出

✔ 从模块 PHSEN 没使能

✔ 同步链路理解错误(以为所有 PWM 都是同一条同步链)

✔ 相位寄存器写了但没生效(本质是没收到同步信号)


🎯 小结

在 DSP28377S 多 PWM 同步配置中:

先确认时钟 → 再确认同步链路 → 再确认主从关系 → 最后确认 PHSEN

同步链路搞错,是最常见也是最隐蔽的问题。

相关推荐
Tronlong创龙3 小时前
SBC‑TLT153 嵌入式 Linux 应用开发,交叉编译与 GDB 调试实践(上)
嵌入式硬件·嵌入式开发·硬件开发·工业控制·工业开发板
巴渝小禹3 小时前
单片机死循环delay_us()计算方法
单片机·嵌入式硬件
Yiran_G3 小时前
LoRa串口模组和SoC模组怎么选?从MCU架构看无线通信方案设计
嵌入式硬件·物联网
HQB20264 小时前
CN6150|简芯维尔 6V/500mA 高速低噪声 CMOS‑LDO 线性稳压器
嵌入式硬件·硬件工程
科芯创展5 小时前
XZ3445 高集成升压/升降压DC-DC电源芯片技术解析
单片机·嵌入式硬件
艾芯微科技5 小时前
高充放电流锂电充放 SoC:ETA9885E10,便携储能、小移动电源 BOM 选型笔记
网络·单片机·嵌入式硬件·集成测试·51单片机
艾芯微科技6 小时前
钰泰 ETA6973PQ3Y|QFN3×3 2A 同步降压 Buck,I2C 可配置多档输出,动态调压 PMIC
网络·单片机·嵌入式硬件·fpga开发·集成测试·51单片机
Brilliantwxx6 小时前
【STM32】 通用定时器:输入捕获与输出比较详解 测脉宽、测频率
stm32·单片机·嵌入式硬件·mcu
意法半导体STM327 小时前
【官方原创】LAT1703 STM32C5 LL Cordic例程
stm32·单片机·嵌入式硬件·stm32c5·ll cordic