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.

[参考译文] AM6442:一次性比较模式下的计时器未按预期工作

Guru**** 2487425 points
Other Parts Discussed in Thread: AM6442

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1436711/am6442-timer-in-one-shot-compare-mode-not-working-as-expected

器件型号:AM6442

工具与软件:

您好!

我正在尝试让计时器在单次触发模式和比较模式下工作。 以下是 Timer6的寄存器配置:

我预期会发生的情况是计时器输出引脚在比较值时变为高电平、在溢出时再次设置为低电平(或保持高电平)、然后计时器应该停止。
实际情况是在恰好两个时钟周期内输出设为高电平、然后再恢复为低电平、然后计时器停止(ST 位为0)。
如果我将 PT 位设置为0、我会在恰好一个时钟周期内在输出端获得高电平。

为什么比较模式无法正常工作?
为什么单次触发模式(AR 位为0)下的输出在两个时钟周期内保持高电平、而基本上与任何寄存器无关。

如果我设置了 RELOAD 寄存器并启用了辅助重新加载(AR = 1)、那么 PWM 生成会按预期工作。

在单次触发模式下、我有什么操作错误?

谢谢!
大家好
Stefan

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

    您好、Stefan、

    这个演示位于 Linux 还是 RTOS 中?

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

    无 RTOS、R5F 上采用裸机。
    我意识到、比较在自动重新加载模式下也不会第一次触发、而是第二次触发。

    谢谢!
    大家好

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

    我会将您的问题发送给我们的计时器专家进行评论。

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

    Stefen、您好!

    [报价 userid="434691" url="~/support/processors-group/processors/f/processors-forum/1436711/am6442-timer-in-one-shot-compare-mode-not-working-as-expected "]我预计将会发生的情况是计时器输出引脚将在比较值处设为高电平、并在溢出(或保持高电平)时再次设为低电平、然后计时器应停止。

    基于以上评论、您需要下面重点介绍的解决方案。

    然后、您需要 使用 SCPWM 位= 1为比较和溢出启用 TRG 模式。

    请查看下面的常见问题解答、该解答有助于通过计时器模块驱动 PWM。

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1377521/faq-processor-sdk-am64x-how-to-create-a-pwm-using-a-timer

    此致、

    Anil。

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

    您好!

    感谢您的答复! 您所介绍的一切都能按预期运行。

    但这不是问题。 问题在于、当计时器从零开始或低于匹配值时、不会第一次触发匹配脉冲。 仅当之前发生溢出时、才会触发匹配脉冲。 这也意味着匹配脉冲在单次触发模式下永远不会触发。 这是预期行为吗?

    在您在上面提供的图片中、匹配脉冲之前总是有一个溢出脉冲。

    谢谢!
    您好!
    Stefan

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

    Stefen、您好!

      当计数器的值与匹配的寄存器值相匹配时会  触发匹配脉冲、在所有其他情况下、不会触发匹配脉冲。

    匹配脉冲也将在单次触发模式下触发。

    计数器首先从0开始直到最大计数值。 在这种情况下、根据匹配寄存器值、先匹配脉冲触发、然后再触发溢出脉冲。 在单次触发模式下、至少应该会得到一个匹配脉 冲和一个溢出脉冲。

    此致、

    Anil。

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

    您好!

    再次感谢您的答复!

    您现在所说的正是我所期望的。 我可以重新创建数据表中描述的所有内容、并获取其中显示的所有波形、这样我想我到目前为止已经相当好地了解了如何配置计时器。 但我尝试了所有可以想象到的寄存器设置组合、但我无法获得匹配脉冲来第一次触发而之前没有溢出。

    您是否尝试在 AM6442上获得第一个没有溢出(或处于单次触发模式)的匹配脉冲、并且是否可以100%确认它是否正常工作?

    谢谢!

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

    Stefen、您好!

    请查看上述常见问题解答、在该示例中、我已经使用了相同的方法。

    我正在使用匹配和溢出 寄存器控制占空比和频率。

    例如、TLDR 寄存器加载0x00、因此、TCRR 从0x00开始。

    接下来,当 TCRR 寄存器与 TMAR 寄存器匹配时,它会触发一个匹配脉冲,最后计数器会以32位值溢出。

    这些值主要取决于将哪些值馈送到 TMAR 寄存器和 TLDR 寄存器。

    请查看上面的常见问题解答。 您得到了一个想法、在示例中、我启用了 AR 模式。 在这里、您可以更改为单次触发模式。

    此致、

    Anil。