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.

[参考译文] CCS/UCD3138A:DPWM 模块与外部信号同步

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/611222/ccs-ucd3138a-dpwm-module-synchronize-to-external-signal

器件型号:UCD3138A
主题中讨论的其他器件: TMS320F28027

工具/软件:Code Composer Studio

我将 DPWM0配置为与外部信号同步。 但我发现、如果没有外部同步。 DPWM 模块将没有输出。 我需要首先在 SYNC 引脚上提供至少一个脉冲、然后我可以获取 DPWM 信号。 我的配置是否有任何问题? 还是 UCD3138A 设计为以这种方式工作?
2.在 SYNCCTRL 寄存器中、我可以通过配置 SYNC_IN 来选择 SYNC 引脚上的低电平或高电平呈现。 这意味着同步。 电平触发信号? 同步的最小宽度是否有任何要求? 脉冲?
在我的工作台测试中、外部同步之间的延迟时间。 信号变为高电平、DPWM0A 设置为50ns。 延迟时间是否可以更短? 下面是我的初始化代码。
Dpwm0Regs.DPWMCTRL0.bit.PWM_EN = 0;  //在初始化期间本地禁用 DPWM0
Dpwm0Regs.DPWMCTRL0.bit.CLA_EN = 0;//默认值为1 (即默认值是使用滤波器输出来控制 DPWM)
Dpwm0Regs.DPWMPRD.All =周期;     //对所有值使用.all,以便缩放匹配
Dpwm0Regs.DPWMEV1.ALL = EVENT1;     //将事件1设置为周期的0%(开始)
Dpwm0Regs.DPWMEV2.ALL = EVENT2;
Dpwm0Regs.DPWMCTRL1.bit.EXT_SYNC_EN = 1; //还需要配置 SYNCCTLR 和 IOMUX
Dpwm0Regs.DPWMCTRL0.bit.PWM_EN = 1;  //本地启用 DPWM0
LoopMuxRegs.GLBEN.bit.DPWM0_EN = 1;  //全局启用 DPWM0
LoopMuxRegs.SYNCCTRL.bit.SYNC_DIR = 1;//输入引脚
LoopMuxRegs.SYNCCTRL.bit.SYNC_IN = 1; //逻辑电平高电平
我之前使用过 TMS320F28027、并且有输入鉴定配置。 如果我选择输入信号为异步输入、则内部延迟时间将更短。 UCD3138A 中是否有类似的寄存器?
提前感谢您
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    同步信号是边沿触发的、但也会进行采样。 它以250MHz 的频率进行采样。 因此、从理论上讲、大约12ns 应该足够了、但我建议使用更长的时间、因为边沿可能不够快。 设计已经了解了逻辑、他们期望的值更像是20ns。 我们仍在研究它。

    在 UCD 上没有使其异步的选项。

    SYNC 始终在上升沿触发。 如果您看一下 SYNC_IN、它是一个只读位、为您提供 SYNC 引脚上的当前电平。 从 SYNC 的上升沿到 DPWM 的上升沿的时序是多少?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Ian:

    感谢您的快速回复!

    我使用示波器测量同步上升沿和 DPWM 输出上升沿之间的时间差。
    SYNC 信号来自波形发生器。