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.

[参考译文] EP:计时器时钟问题

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1385690/msp430fr5989-ep-timer-clock-problem

器件型号:MSP430FR5989-MSP430FR5989-MSP430FR5989 EP
Thread 中讨论的其他器件:MSP430FR5989

工具与软件:

您好!

我正在使用 msp430fr5989 MCU、我们想使用 Timer_B 创建计时器信号 我有32678Hz 的外部振荡器、我想创建一个频率相同的时钟信号。 遗憾的是、频率大约为8192Hz、我们没找到原因。 我将共享它的配置的代码片段。  

CSCTL0_H = CSKEY_H;
CSCTL1 = DCOFSEL_0;
CSCTL2 = SELA_LFXTCLK | SELS_DCOCLK | SELM__DCOCLK;
CSCTL3 = DIVA__1 | DIVS__1 | DIVM__1;
CSCTL4 &= ~LFXTOFF;
CSCTL0_H = 0;

TB0CCR0 = 1;
TB0CCTL0 = CCIE;
TB0CTL = TBSSEL__ACLK | MC__UP ;

任何帮助都将受到赞赏。  

此致。

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

    1)您不会成功使用 ACLK (32kHz)从计时器生成32kHz。 核心问题是、计时器必须基于单个输入时钟边沿(上升)生成2个输出边沿(上升/下降)。  

    2) 2)您可能会通过根据计时器中断切换 GPIO 而成功(使用足够快的 MCLK)生成输出时钟、但当您的代码尝试其他任何操作时会发生抖动。 最好使用其中一个 OUTMOD-s

    3) 3)您可以在 P5.2或 PJ.2上直接输出 ACLK [参考数据表(SLASEC9)第5.11.24.9节和第5.11.24.20节]。

    [编辑:细微澄清。]

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

    您好!

    感谢您的答复。 我的问题是、为什么它是 ACLK 频率的四分之一。 它应该是 ACLK 频率的一半吗?

    此致。

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

    参考用户指南(SLAU367P)图26-3:TB0R 在=0时消耗1个(输入)时钟、然后在=1时消耗1个时钟、然后循环回=0。 这是2分频。 (通常情况下、将 CCR0=(PERIODE-1)设置为。)

    您没有显示 ISR、但我想它会切换输出引脚、每次调用都会产生半个输出周期。 这是另一个2分频。

    如果计时器周期非常短、ISR 在下一次中断之前可能没有时间完成、因此输出将受到 ISR 速度的限制。 我认为现在情况不是这样、因为您有2*31=62个 MCLK 可供使用、但使用 CCR0=0 (31个 MCLK)、您将非常接近。