我使用计时器作为电源的 PWM 源。 我的问题是我使用计数器模式3 (向上/向下)、这为我提供了我想要的相位关系。 然而、它似乎将第二个定时器 D1与定时器 D0同步、 当 D0运行增/减模式时、D1看起来以增模式运行。 结果是、第二个计时器虽然与第一个计时器同步、但其运行频率为频率的1/2。 我无法确定到底发生了什么、因为 D1的控制寄存器没有写入任何内容。 我是否正确地得出了在增/减模式下无法同步计时器的结论。 如果能做到这一点、那么秘密就会发生
Kevin Russell
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.
我使用计时器作为电源的 PWM 源。 我的问题是我使用计数器模式3 (向上/向下)、这为我提供了我想要的相位关系。 然而、它似乎将第二个定时器 D1与定时器 D0同步、 当 D0运行增/减模式时、D1看起来以增模式运行。 结果是、第二个计时器虽然与第一个计时器同步、但其运行频率为频率的1/2。 我无法确定到底发生了什么、因为 D1的控制寄存器没有写入任何内容。 我是否正确地得出了在增/减模式下无法同步计时器的结论。 如果能做到这一点、那么秘密就会发生
Kevin Russell
大家好、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取代
您好、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、
感谢你的帮助。 即使我需要 MC_3模式、您也可以让单元在 MC_1模式下工作、这一点非常棒。 但是、我得出的结论是、它不 会在 MC_3模式下工作。 我将结束这项工作,并说我的问题已经解决,尽管不是我所希望的那样。
我个人认为勘误表中没有正确说明问题、由于 MSP430系列中只有计时器 D 全部出现这一问题、我强烈建议在 SLAU208用户指南中删除 TEC 模块中 MC_3模式的隐含用法。
此致
Kevin