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.

[参考译文] MSP430F5172:定时器 D0和定时器 D1的 SYNC

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/805451/msp430f5172-sync-of-timer-d0-and-timer-d1

器件型号:MSP430F5172

我使用计时器作为电源的 PWM 源。 我的问题是我使用计数器模式3 (向上/向下)、这为我提供了我想要的相位关系。 然而、它似乎将第二个定时器 D1与定时器 D0同步、 当 D0运行增/减模式时、D1看起来以增模式运行。 结果是、第二个计时器虽然与第一个计时器同步、但其运行频率为频率的1/2。 我无法确定到底发生了什么、因为 D1的控制寄存器没有写入任何内容。  我是否正确地得出了在增/减模式下无法同步计时器的结论。 如果能做到这一点、那么秘密就会发生

Kevin Russell  

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

    很抱歉、您的问题不是很清楚。 那么、您要将 D1设置为向上计数模式、将 D0设置为向上/向下计数模式、对吧? 您希望 D1和 D0具有相同的频率、但 D0是您设置的频率的1/2?
    使用相同的时钟源为计时器 D0和 D1剂量?
    您能否捕获 PWM 波形以更清楚地说明问题?

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

    我对这种混乱感到抱歉。 我希望两个计时器在向上/向下计数模式下的行为相同。 从机似乎只在向上计数模式下运行。

    感谢您的快速响应。

    Kevin  

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

    大家好、Kevin

    我已经在我的一侧测试了 msp430f5172、我发现它运行良好。 TD1.2输出的一个东西与图片一样延迟了一点。

    这是 Saleae 捕获文件

    e2e.ti.com/.../25-MHz_2C00_-125-M-Samples-_5B00_8_5D00_.logicdata

    这是我的测试代码  

    e2e.ti.com/.../MSP430F51x2_5F00_td0_5F00_19.c

    我不知道原因、但如果您不希望该延迟、只需使用 TD0和去补偿 CCR 通道、这些通道将生成两个以上的 PWM 输出、而不会产生延迟。

     此致

    Gary

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

    您好、Gary、

    感谢您的回答。 但这不是我遇到的问题。 我再次对不清楚表示歉意,我希望下面的内容能更清楚地说明我的问题。

    我需要4个同步相位、因为这是一个具有同步整流器的动态控制推挽式电源。 我使用计时器 D 是因为它具有更高的分辨率、因此具有更精细的控制。  您知道、该器件中的计时器 D 在2个计时器中只有3个模块。  在这个应用模块0中、大多数情况下和肯定的是、作为一个输出的值很小。 我的设计依赖于 MSP430x5xx 和 MSP430x6xx 用户指南(slauq.pdf)中的以下信息。  

    第531页的"定时器 D 操作"

    19.2.10 Timer_D 实例之间的同步
    对于某些包含多个 Timer_D 实例的器件、内部信号辅助
    不同计时器之间的同步。 这些信号包括计时器时钟、TDAUXCLK、
    TDAUXCLROUT 以及一些连接 Timer_D 模块和计时器事件控制的其他信号
    模块。 有关详细信息、请参阅 TEC 一章

     

    第552页的 TEC 运算

    20.2.5 Timer_D 实例之间的同步机制
    两个或多个 Timer_D 模块可以相互同步。 一个实例可以是的主器件
    其他 Timer_D 实例(从器件)。 主器件是为其他实例提供时钟的实例。 如果
    两个计时器实例相互同步、则有一个特定于器件的顺序;例如、
    Timer0_D 是 Timer1_D 的主器件 受控器件使用 TDHEN 位、CNTLx 位、和的设置
    主器件的 MCx 位。 主器件和从器件的 CCR0寄存器必须编程为
    相同的值。 图20-5显示了 Timer_D 主控和 Timer_D 受控的组合以及
    通过从器件的 TEC 模块路由的控制信号。 Timer_D 从器件的时钟发生器是
    通过选择 TDCLKMx 来接受来自 Timer_D 主器件的时钟输入来断电。 。
    受控定时器的 TECEXCLR 信号不会传播到主器件、而是主器件的清零事件
    计时器通过信号发送给从计时器。 有关之间的详细信号路由、请参阅图20-5
    主器件和从器件。 从机定时器的分频器和时钟选择器设置被忽略。 高电平
    从机定时器的分辨率发生器被禁用。
    示例20-1显示了如何对主定时器和从定时器进行编程以使它们同步。

    当我读出这个数据时、它清楚地表明 MC 位从主器件传递到从器件。 给出的代码示例使用 MC_1、这是向上计数模式。 我已经运行它了。 问题是我需要仅可由向上/向下模式 MC_3生成的相位关系。 当我在 MC_3模式下使用完全相同的代码时、从机定时器似乎保持在 MC_1模式。 当定时器被置于同步模式时、从器件的 TDxCTL0寄存器不会被组装。 这对我来说意味着有一种不同的机制来创建此同步。 证明从   机保持增模式的证据是、当 TDIFG 位置位时、如果我停止定时器、我可以看到从机定时器上的计数从0开始、而主定时器从中载入的值开始递减计数 CCR0寄存器。 从机定时器的输出在 输出与主机定时器同步时也显得奇怪、但脉冲宽度更宽、只有1/2的时间出现、使得频率看起来是主机的1/2。

    问题是、由于在向上/向下计数模式下使用计时器或文档错误、我必须解决其他问题。 我的代码与 TEC 操作示例20-1中的代码相同。 唯一的区别是 TDxCCRx 值、而 MC_1被 MC_3取代

     

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

    您是说20-1的示例代码与 MC_1一起工作正常吗? (我在这里发现的是、如果我配置了 TD0和 TD1的占空比相同、那么 TD1输出的上升时间比 TD0早、您看到了吗?)
    当您使用不同的计数器模式时、即使您具有相同的输出模式、PWM 输出也是不同的。 有关更多详细信息、请参阅用户指南19.2.9.1 www.ti.com/.../slau208q.pdf

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

    您好、Gary、

    感谢您努力解决问题。 我只是认为您对问题的理解不是很清楚。 您编写的代码未将2个计时器同步在一起。 将2个计时器同步在一起、这样就不会出现延迟。我在 MC_1模式下完成了、如 TEC 模块指南中的示例代码所示。 隐含的含义是 MC_3模式也可以一起使用和同步、但看起来不会同步。

    首先,您是否可以了解计时器是否按照 TEC 模块中的说明同步在一起时,它们可能会在 MC_3模式下正常运行。

    我无法 使用您的方法、因为当我更改 PWM 脉冲宽度和频率时、2个计时器保持同步至关重要、这无法在您的示例中完成。

    您需要做的是复制 TEC 模块中的代码以同步2个计时器、然后在示例中将 MC_1更改为 MC_3、您将看到问题。  如果该模块在 MC_3模式下不能工作,那么它也是如此,但文档应反映出我已突出显示的内容(请参阅我之前的答复)。

    Kevin

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

    大家好、Kevin

    最后、我修复 了20-1的示例代码与 MC_1不能正常运行的错误。 我所做的就是在计时器开始后延迟一段时间以提供清零信号。 我已经尝试了四通道 PWM 输出、这很好。 这是我的测试代码和捕捉

    e2e.ti.com/.../2045.MSP430F51x2_5F00_td0_5F00_19.c

    此致

    Gary

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

    您好、Gary、

    有趣的是、TEC 操作示例20-1中的代码不能很好地为您工作、根据我的经验、仅在 MC_1模式下工作、在 MC_3模式下不工作。 显然、用户指南的整个第20.2.5节是错误的。 我感谢在这一问题上所做的努力,我将提交一份文件变更请求。 很遗憾、我将不得不根据这些信息重新设计电源。

    谢谢  

    Kevin

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

    我已经尝试了 MC_1和 MC_3、它们都运行良好。 用户指南的第20.2.5节不正确。 仅示例代码20 - 1的一行代码不正确、如下所示
    将代码"TD0CTL0 |= MC_1 + TDCLR;"更改为
    "
    TD0CTL0 |= MC_1;
    TD0CTL0 |= TDCLR;
    "
    将使其正常工作。

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

    您好、Gary、

    我再次感到不清楚。 我 已经说过、20.2.5中的示例在 MC_1模式下工作正常、现在已经证明、我想在  MC_3模式下运行。  在20.2.5中重新编写代码、将 MC_1替换为 MC_3、然后在4个信号上放置一个示波器、您将发现 TD0_1和 TD0_2的频率将是 TD1_1和 TD1_2的2倍。 我不知道怎么放置它。

    此致  

    Kevin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    来自边沿的未经请求的注释:勘误表 TD2显示"Timer_D 加/减模式在高分辨率模式下不起作用。" [参考 F5172勘误表(SLAZ251X)]这也出现在我2014年的勘误表(修订版 J)中、因此它非常旧。

    这种情况可能缺乏的是由其广度所弥补的。 我想知道必然结果是否是:"它被打破了、因此我们无法使用 TEC 来尝试它。"

    我很好奇:如果你(也)在 TD1CTL0中设置 MC=3、会发生什么情况?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Bruce、

    非常感谢您指出勘误表中的问题。 令人好奇的是、实际上我让定时器 TD0在高频模式下以增/减模式运行。 勘误表中的含义是计数不正确。 虽然勘误表中没有说明、但我发现、当2个定时器 TD0和 TD1通过 TEC 模块同步时、结果是 TD0正确计数、并且 TD1复位为0、而不是 TD0开始递减计数。 根据您对在控制寄存器中明确设置 MC_3的想法、我已经这样做了、同步时、寄存器似乎没有效果、尽管是错误的、但仅由 TD0定时器控制。 我可以提供代码和数据来支持我的调查结果、但最终正如您所指出的、它不能按原来的预期工作、也不能修复、也不能进行明显的工作。

    此致

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

    这里还有一个注释:让器件自由运行、而不是在调试模式下运行。

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

    您好、Gary、

    感谢你的帮助。 即使我需要 MC_3模式、您也可以让单元在 MC_1模式下工作、这一点非常棒。 但是、我得出的结论是、它不 会在 MC_3模式下工作。 我将结束这项工作,并说我的问题已经解决,尽管不是我所希望的那样。

    我个人认为勘误表中没有正确说明问题、由于 MSP430系列中只有计时器 D 全部出现这一问题、我强烈建议在 SLAU208用户指南中删除 TEC 模块中 MC_3模式的隐含用法。  

    此致  

    Kevin