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.

[参考译文] UCD3138A:UCD3138单帧模式和脉冲长度

Guru**** 2484615 points


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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/700021/ucd3138a-ucd3138-single-frame-mode-and-pulse-length

器件型号:UCD3138A

尊敬的 TI:

我尝试使用"单脉冲模式"来生成单脉冲、但它不起作用-我得到的脉冲具有奇怪的长度和无效极性。 请告诉我如何在此模式中配置脉冲长度。

我假设 DPWM 在任何其他模式下的"常规"操作完全相同、但脉冲需要由软件触发。 我已经了解到、触发是通过切换 PWM_EN 位来完成的。

在我的示例中、线路空闲、因此脉冲在其持续时间内将其拉低(PWM_x_INV = 1)。

在"连续模式"中(尤其是多输出模式、PWM_MODE = 2)、脉冲生成正确、例如:

此处 Fsw = 20kHz、占空比= 25%。 这些脉冲为配置和预期的"负"脉冲。

我希望直接从该连续工作模式过渡到"单帧模式"可能如下所示:
PWM_EN = 0
SFRAME_EN = 1

我还将计数器(仅全局变量)设置为所需的脉冲数。 然后、我的固件的主循环会检查该计数器、如果它是非零、则会执行以下操作:
PWM_EN = 0
递减计数器
PWM_EN = 1

但在本例中、我完全看不到生成的脉冲。

我还尝试通过在 SFRAME_EN 之后添加以下内容来独立于之前运行的连续模式来定义脉冲长度:
PRD =(1 << 14)- 1.
EV1 = 0
EV2 =(PULSE_LENGTH_IN_us * 250)<< 4
EV3 = EV4 = PRD

然后生成脉冲、但其宽度和极性不正确。 例如、对于脉冲长度= 4us、内存调试器显示:

但下面是生成的内容:

该脉冲具有 ca。 62us (整个 PRD 小于65.5us)、为"高电平有效"、同时应将其反相并"低电平有效"。

如果我写入、该脉冲的时间甚至会更长一点
EV2 = PULSE_LENGTH_IN_us * 250
(无位移"<< 4")。

请告诉我错误的地方。

此致、
Adam

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

    一位专家正在研究这一问题并将作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经看了一个芯片、我认为反相输出不适用于单个帧。 你得到的高电平是事件2到周期结束之间的时间。 如果您在启动单个帧时切换 I/O 线路、您可能会看到 START 和高电平脉冲之间的时间是适合您的低电平有效的脉冲宽度。 问题是 PWM_EN 为0时、PWM_A_INV 位也会被禁用。 因此、当您执行 PWM_EN 操作时、您会同时打开 DPWM 并启用 PWM_A_INV。 因此信号从0变为0、因此不会发生任何情况。 PWM_A_INV 无论如何都是一个问题、因为在您打开它之前、DPWM 输出在复位后保持低电平。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Ian:
    感谢您的解释。 务必要知道 PWM_A_INV 仅对 PWM_EN=1有效、因为它也会影响 GPIO 模式下的引脚! 我认为、文档没有明确(足够)说明这一点。 现在、我可以看到我的代码中有一些器件执行的操作超出了我的预期、我不知道这一点。
    此致、
    Adam