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.

[参考译文] MSP430I2040:使用 Timer1停止/重新启动 PWM 输出

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1071585/msp430i2040-stop-restart-pwm-output-using-timer1

部件号:MSP430I2040

您好,

我的客户正在使用 MSP430I2040TPW。
P2.2被指定为 TA1.2并用作 PWM 输出。

以下是 TimerA 配置:
时钟= SMCLK (4.096MHz)
分禾器= 1
计时器模式=向上(MC=01B)
输出模式=设置/重置(OUTMODx=011b)
TA1CCR0 = 260d
TA1CCR1 = 227d

预期行为:
a1) P2.2输出在计数器值=227时切换为“L 到 H”。
a2) 在计数器值=260时,P2.2被切换为“H 到 L”,计数器值返回零。
A3)返回到1)。

客户希望停止 P2.2,输出=L  P2.2可以使用 TimerA 计数异步停止。
客户尝试的步骤如下:
B1)更改 TA1CCR1 = 260d。
B2)更改计时器模式=停止。
但 P2.2的输出有时用 H 停止,有时用 L 停止
如果执行上述步骤 B1和 B2) ,而 TimerA 计数器在228d 和259D 之间,则 P2.2输出将保持为 H

为了使 P2.2输出始终与 L 一起停止,客户在 B2之后应用了附加步骤)。
B3)将 P2.2切换到 GPIO 输出 L

当 PWM 重新启动时,将执行以下顺序。
C1) P2.2切换到 TA2.1。  
C2)更改  TA1CCR1 = 227d。
C3)更改计时器模式=向上。

[问题]
客户采取的顺序是否正常?
您是否有任何停止/重新启动 PWM 输出的推荐顺序?

谢谢,此致,
柯一朗·塔希罗

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

    当计时器停止(MC:=0)时,计时器将冻结,输出引脚保持不变。 如果您想:

    1)立即停止(低),设置 OUTMOD=0,输出=0。 此后,您可以随时设置 MC=0。

    2)在当前脉冲结束时停止(低),设置 OUTMOD=5 (重置)。 然后,您可以在下一个 CCR0 (EQU0)事件之后的任何时间设置 MC=0。

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

    大家好,布鲁斯,

    感谢您的快速回复!
    客户将选择选项1)。

    请允许我确认一点。
    假设 PWM 已停止并带有选项1),应通过以下步骤重新启动 PWM,对吗?
    - OUTMOD=011b (设置/重置)
    - MC=01B (向上)
    ——无需指出

    谢谢,此致,
    柯一朗·塔希罗

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

    没有必要指出,因为只有当 OUTMOD=0时,它才是重要的。

    设置 MC=0也会冻结 TA1R,因此您可能需要使用 TCLR 将其放在周期中的已知位置。