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.

[参考译文] 编译器/UCD3138064EVM-166:UCD3138064EVM-166的调试程序

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/657482/compiler-ucd3138064evm-166-debugging-program-for-ucd3138064evm-166

器件型号:UCD3138064EVM-166
主题中讨论的其他器件:UCD3138

工具/软件:TI C/C++编译器

我想更改引脚 DPWM0A 中的占空比、请帮助我执行此操作。 此外、无法在引脚 DPWM0A 和 DPWM1A 之间实现死区时间。 我在下面介绍了我的程序、请帮助我在 引脚 DPWM0A 中实现40%占空比、现在显示为50%。  

void init_dpwm0 (void)

Dpwm0Regs.DPWMCTRL0.bit.PWM_EN = 0;//针对初始化在本地禁用

Dpwm0Regs.DPWMCTRL0.bit.CLA_EN = 1;//默认为1 -使用 CLA
Dpwm0Regs.DPWMCTRL0.bit.PWM_MODE = 0;//正常模式
Dpwm0Regs.DPWMPRD.All = Period;//Use .all 对于所有值、确保缩放匹配。

Dpwm0Regs.DPWMEV1.all =周期/2;//在周期开始时置位事件1
Dpwm0Regs.DPWMEV2.all =(周期* 3)/4;/1/4周期-除法是可以的、因为它都是常数。
Dpwm0Regs.DPWMEV3.ALL = 0;//1/2个周期
Dpwm0Regs.DPWMEV4.ALL =周期/4;//3/4周期
Dpwm0Regs.DPWMSAMPTRIG1.ALL =周期;//3/4周期

Dpwm0Regs.DPWMCTRL2.bit.sample_trig_1_EN = 1;//启用1个采样触发器
Dpwm0Regs.DPWMCTRL1.bit.EVENT_UP_SEL = 1;//在周期结束时更新

Dpwm0Regs.DPWMCTRL0.bit.PWM_EN = 1;//本地启用
Dpwm0Regs.DPWMCTRL2.bit.reson_d死 区时间_COMP_EN = 1;
//Dpwm0Regs.DPWMPHASETRIG.bit.PHASE_TRIGGER = 2;//8nsec 相位延迟

void init_dpwm1 (void)

Dpwm1Regs.DPWMCTRL0.bit.PWM_EN = 0;//针对初始化在本地禁用

Dpwm1Regs.DPWMCTRL0.bit.CLA_EN = 1;//默认为1 -使用 CLA

Dpwm1Regs.DPWMCTRL0.bit.PWM_MODE = 0;//正常模式
Dpwm1Regs.DPWMPRD.All = Period;//Use .all 对于所有值、请确保缩放匹配。
Dpwm1Regs.DPWMEV1.ALL = 0;//在周期开始时置位事件1
Dpwm1Regs.DPWMEV2.all =周期/4;//1/4周期-除法是可以的、因为它是所有的常数。
Dpwm1Regs.DPWMEV3.all =(周期)/2;/1/2周期
Dpwm1Regs.DPWMEV4.ALL =(周期* 3)/4;//3/4周期
Dpwm1Regs.DPWMSAMPTRIG1.ALL =周期;//3/4周期


Dpwm1Regs.DPWMCTRL2.bit.sample_trig_1_EN = 1;//启用1个采样触发器
Dpwm1Regs.DPWMCTRL1.bit.EVENT_UP_SEL = 1;//在周期结束时更新

Dpwm1Regs.DPWMCTRL0.bit.PWM_EN = 1;//本地启用
Dpwm1Regs.DPWMCTRL2.bit.reson_d死 区时间_COMP_EN = 1;
//Dpwm1Regs.DPWMPHASETRIG.bit.PHASE_TRIGGER = 2;//8nsec 相位延迟

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

    设置死区时间非常复杂、具体取决于 DPWM 所处的模式、具体取决于您尝试实现的电源拓扑。  

    通常、您只能直接在单个 DPWM 模块上的2个引脚之间设置死区时间。  

    设置 DPWM 模块之间的死区时间通常涉及相位触发器、其中一个 DPWM 同步到另一个 DPWM。  或者、您也可以使用内部复用器或电子桥接器位让 DPWM 模块控制其自己的其他引脚。  就像我说的、非常复杂。  

    各种 EVM 都提供了有关如何在不同拓扑中使用这种复杂设置的良好示例。  如果您要使用标准拓扑、最好从这些 EVM 代码开始。  表示芯片设计人员对该特定拓扑的意图。

    如果您想自行操作、我建议您学习 UCD3138技术参考手册、尤其是 DPWM 部分。  它包含不同 DPWM 模式的图、显示了如何计算脉宽和死区时间。  

    对于您的情况、在正常模式下启用 DPWM 并启用 CLA 的情况下、您需要更改滤波器输出以更改脉冲开关。  该滤波器也称为 CLA (控制律加速器)。  如果 CLA 被禁用、脉冲宽度由事件1和事件2之间的差异决定。

    如上所述、没有直接方法在不同 DPWM 模块的引脚之间强制执行死区时间。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    40%的占空比由滤波器(CLA)确定、或者您想在开环模式下运行吗?
    如果您对开环感兴趣、则 Dpwm0Regs.DPWMCTRL0.bit.CLA_EN 应设置为零。

    以下问题也存在:
    Dpwm0Regs.DPWMEV2.all =(周期* 3)/4;/1/4周期-除法是可以的、因为它都是常数。
    Dpwm0Regs.DPWMEV3.ALL = 0;//1/2个周期
    由于 EV3在很大程度上小于 EV2、因此 A 侧和 B 侧之间的死区时间为负。

    您确定对正常模式感兴趣吗? 在正常模式下、当 A 输出占空比(D)、B 输出(1-D)。
    在多模式下、A 输出和 B 可单独设置。

    此外、Dpwm0Regs.DPWMSAMPTRIG1.all 不应设置为 Period、这种情况下它永远不会触发。

    RESON_DEADTIME_COMP_EN 仅在 LLC 谐振运行模式下有用、而不在正常模式下有用。

    此外、要在 DPWM0和 DPWM1之间设置特定的死区时间、最好以主从模式连接两者。

    有关更多详细信息、请参阅《UCD3138技术参考手册》:

    www.ti.com/.../sniu028

    如果您需要我们的帮助、请向我们发送 DPWM0A/B 和 DPWM1A/B 的精确波形图、我将向您发送确切的配置程序。

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

    非常感谢您的建议。 我可以通过使 Dpwm1Regs.DPWMCTRL0.bit.CLA_EN = 0来生成所需的信号。