This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28379D:使用 ePWM X bar 稳压器配置跳闸区域

Guru**** 2348500 points
Other Parts Discussed in Thread: CONTROLSUITE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1169190/tms320f28379d-configuring-the-trip-zone-with-epwm-x-bar-regs

器件型号:TMS320F28379D
Thread 中讨论的其他器件:controlSUITE

您好!

请为我提供一个使用 ePWM X bar 寄存器配置跳闸区域的示例。 我从控制套件的开发套件示例中获取了一段代码。 请参阅以下示例文件夹 C:\ti\controlSUITE\development_kits\HV_1PH_DCAC\v1_04_00_00\f2837x\connectedinfltr

下面我附上了参考代码   

计划:

EALLOW;

Cmpss3Regs.COMPCTL.bit.COMPDACE=1;
//NEG 信号来自低电平比较器的 DAC
Cmpss3Regs.COMPCTL.bit.COMPLSOURCE=0;
//NEG 信号来自高比较器的 DAC
Cmpss3Regs.COMPCTL.bit.COMPHSOURCE=0;
//使用 VDDA 作为比较器 DAC 的基准
Cmpss3Regs.COMPDACCTL.bit.SELREF= 0;
//将 DAC 设置为 H~75%和 L ~25%值
Cmpss3Regs.DACHVALS.bit.DACVAL=3000;
cmps3Regs.DACLVALS bit.DACVAL = 1000;
//比较器输出"不"反相、以实现高比较事件
Cmpss3Regs.COMPCTL.bit.COMPHINV=0;
//比较器输出针对低比较事件被反转
Cmpss3Regs.COMPCTL.bit.COMPLINV=1;
//配置数字过滤器
//最大 CLKPRESCALE 值可在两次采样之间提供最多的时间
Cmpss3Regs.CTRIPHFILCLKCTL.bit.CLKPRESCALE = 0x1;
//最大 SAMPWIN 值可提供最大数量的样本
Cmpss3Regs.CTRIPHFILCTL.bit.SAMPWIN = 0x1F;
//最大阈值要求整个窗口的静态值
// THRESH 应该大于 SAMPWIN 的一半
Cmpss3Regs.CTRIPHFILCTL.bit.THRESH = 0x1F;
//复位滤波器逻辑&开始滤波
cmps3Regs.CTRIPHFILCTL.bit.FILINIT = 1;
//配置 CTRIPOUT 路径
//数字滤波器输出馈送 CTRIPH 和 CTRIPOUTH
Cmpss3Regs.COMPCTL.bit.CTRIPHSEL = 0x2;
Cmpss3Regs.COMPCTL.bit.CTRIPOUTHSEL = 0x2;
//确保异步路径比较高事件和低事件
//不会进入带有锁存数字滤波器输出的或门
Cmpss3Regs.COMPCTL.bit.ASYNCHEN=0;
Cmpss3Regs.COMPCTL.bit.ASYNCLEN=0;
//比较器迟滞控制,设置为2个典型值
Cmpss3Regs.COMPHYSCTL.bit.COMPHYS=2;
// DAC 值在 sysclock 上更新
Cmpss3Regs.COMPDACCTL.bit.SWLOADSEL=0;
//斜坡被绕过
Cmpss3Regs.COMPDACCTL.bit.DACSOURCE=0;
//清除锁存的比较器事件
Cmpss3Regs.COMPSTSCLR.bit.HLATCHCLR=1;
Cmpss3Regs.COMPSTSCLR.bit.LLATCHCLR=1;
EDIS;

EALLOW;
OutputXbarRegs.OUTPUT3MUX0TO15CFG.bit.MUX5 = 0;//配置 OUTPUTXBAR3 MUX5 = CTRIPOUTL spruhm8i.pdf 选项卡。 第1195页
OutputXbarRegs.OUTPUT4MUX0TO15CFG.bit.MUX4 = 0;//配置 OUTPUTXBAR4 MUX4 CTRIPOUTH spruhm8i.pdf 选项卡。 第1195页

OutputXbarRegs.OUTPUT4MUXENABLE.BIT.MUX4 = 1;//为输出启用 OUTPUTXBAR3多路复用器
OutputXbarRegs.OUTPUT3MUXENABLE.BIT.MUX5 = 1;//为输出启用 OUTPUTXBAR3多路复用器
EDIS;

EALLOW;
EPwmXbarRegs.TRIP4MUX0TO15CFG.bit.MUX4=0;//配置 EPWMXBarRegs MUX4 = CTRIPH spruhm8i.pdf 选项卡。 9-2页1191.
EPwmXbarRegs.TRIP4MUX0TO15CFG.bit.MUX5=0;//配置 EPWMXBarRegs MUX5 = CTRIPL spruhm8i.pdf 选项卡。 9-2页1191.
// EPwmXbarRegs.TRIP4MUXENABLE.ALL=0x0000;

EPwmXbarRegs.TRIP4MUXENABLE.bit.MUX4=1;
EPwmXbarRegs.TRIP4MUXENABLE.bit.MUX5=1;
EDIS;


EALLOW;
EPwm1Regs.DCTRIPSEL.bit.DCAHCOMPSEL=3;//TRIP 4是 DCAHCOMPSEL 的输入
EPwm1Regs.TZDCSEL.bit.DCAEVT1=TZ_DCAH_HI;
EPwm1Regs.DCACTL.bit.EVT1SRCSEL=DC_EVT1;
EPwm1Regs.DCACTL.bit.EVT1FRCSYNCSEL=DC_EVT_SYNC;
EPwm1Regs.TZSEL.bit.DCAEVT1=1;

EPwm2Regs.DCTRIPSEL.bit.DCAHCOMPSEL=3;//TRIP 4是 DCAHCOMPSEL 的输入
EPwm2Regs.TZDCSEL.bit.DCAEVT1=TZ_DCAH_HI;
EPwm2Regs.DCACTL.bit.EVT1SRCSEL=DC_EVT1;
EPwm2Regs.DCACTL.bit.EVT1FRCSYNCSEL=DC_EVT_SYNC;
EPwm2Regs.TZSEL.bit.DCAEVT1=1;

//我们希望 OST/CBC 事件做什么?
// TZA 事件会强制 EPWMxA
// ZB 事件会强制 EPWMxB

EPwm1Regs.TZCTL.bit.TZA = TZ_FORCE_LO;// EPWMxA 将变为低电平
EPwm1Regs.TZCTL.bit.TSB = TZ_FORCE_LO;// EPWMxB 将变为低电平

EPwm2Regs.TZCTL.bit.TZA = TZ_FORCE_LO;// EPWMxA 将变为低电平
EPwm2Regs.TZCTL.bit.TSB = TZ_FORCE_LO;// EPWMxB 将变为低电平
EDIS;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Prasad、您好!

    我不知道使用 ePWM-XBAR 的任何示例、但是 ePWM_ex1_TRIP_zone 使用输入 XBar 来触发 TZ1、TZ1使用类似的配置来配置 ePWM-XBAR。

    这个 ePWM 章节中的图表显示了哪些 XBAR 连接到哪个跳闸信号。

    如果您需要进一步的帮助、请告诉我。

    -Luke

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Luke、

    感谢您的回答。 我已经参考了基于输入 X 条的示例、但在我的项目中、我想继续执行 PWM X 条寄存器。 在控制套件的开发套件文件夹中、一些与 F2837x 电路板相关的示例已配置 PWM X 条寄存器、以将比较器信号与 PWM 跳闸区域相连。 因此、我已经获取了一部分代码并在项目中实现了它。   

    获得的结果与此类似、PWM 输出 始终为低电平、而无论比较器输入如何、我都要配置跳闸区域。 因此、我希望在使用数字比较模块和 PWM X 条形稳压器配置跳闸区域时寻求帮助。  请仔细阅读 上述代码并提及相应的更改。    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Prasad、您好!

    跳闸区域和数字比较模块的配置在代码中看起来是正确的。 您的项目中所有用于配置 ePWM 和 CMPSS 的代码都是这样吗? 如果不是、您能否发送其余的 EPWM/CMPSS 配置、以便我可以在我的一侧进行测试?

    -Luke

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、luke、

    我要附加 PWM 和 CMPSS 的完整配置文件。 请浏览文件并建议我进行更改

    e2e.ti.com/.../peripheral_5F00_setup_5F00_fail_5F00_Protect.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Luke、

    感谢您的建议、问题得到了解决。 我还有一个问题、即逐周期跳变和单次跳变之间的区别是什么

    谢谢、此致

    Prasad Rao

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Prasad。

    很高兴您的问题得到解决。 逐周期跳闸意味着在每个周期结束时检查跳闸条件、而单次跳闸意味着跳闸条件只需要发生一次、从而使 PWM 无限期地保持跳闸状态。

    谢谢、

    Luke