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.

[参考译文] XT1晶振时钟(32KHz)不能正常工作。

Guru**** 2585275 points
Other Parts Discussed in Thread: MSP430F5659

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/610064/xt1-crystal-clock-32-khz-is-not-working-properly

主题中讨论的其他器件:MSP430F5659

您好,

我已经使用外部晶振12MHz (XT2)配置了 MCLK、SMCLK 的8MHz 和我配置了 XT1 (32KHz、RTC 时钟),但它不工作,它也在时钟故障状态下失败。 由于此 RTC 也无法正常工作,所以我使用此时钟作为 RTC 的时钟。 请在下面检查时钟配置。

空设置时钟(空)

P7SEL |= BIT2 + BIT3;//XT2IN、XT2OUT

UCSCTL3 |= SELREF_5 | FLLREFDIV_4;//设置 DCO FLL 基准= XT2并除以4

UCSCTL4 |= SELA_0 | SELESS_DCOCLK | SELM_DCOCLK;//设置 ACLK = XT1

_bis_SR_register (SCG0);//禁用 FLL 控制循环

UCSCTL0 = 0x0000;//设置可能的最低 DCOx、MODx
UCSCTL1 = DCORSEL_5;//为 DCO 范围16MHz 运行选择5
UCSCTL2 = FLLD_1 + 7;//将 DCO 乘法器设置为8MHz


//(N + 1)* FLLRef = Fdco
//(7 + 1)* 1M = 8MHz
//设置 FLL Div = fDCOCLK/2
// UCSCTL5 |= DIVS_1;

_BIC_SR_register (SCG0);//启用 FLL 控制环路

UCSCTL6 &=~(XT2OFF |XT1OFF);

UCSCTL6 |= XT2DRIVE_2 | XCAP_3 | XT1DRIVE_3;
UCSCTL6 &=~(XTS);

//32 x 32 x 8 MHz/1MHz = 8192 = DCO 稳定的 MCLK 周期

_delay_cycles (8192);

//循环直到 XT1、XT2和 DCO 故障标志被清除
操作

UCSCTL7 &=~(XT2OFFG + XT1LFOFFG);
//清除 XT2、XT1、DCO 故障标志
SFRIFG1 &=~OFIFG;//清除故障标志
} while (UCSCTL7 & OFIFG);//测试振荡器故障标志

注意:故障标志不会被清除,因此它会进入循环内部。 尽快检查我

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

    你(们)好  

    MSP430F5659……

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    示例程序 msp430f665x_UCS_07.c 显示了如何初始化两个晶振。

    必须清除 LOCKBAK 和 DCOFFG。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在该位置,我需要清除这两个位。 如果我清除了 LOCKBAK… 调试打印出一些垃圾... 这是因为时钟配置不正确,为什么我们需要清除 LOCKBAK…… 您能解释一下这两者之间的关系吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当正常电源不在时、备用电源系统接管 XT1和 RTC。

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

    我已连接超级电容进行 RTC 备份。 我已启用备用电池为超级电容器充电,但它未充电,Vbat 仅显示为零。 在这里是我的配置
    空 BatteryBackupConfig()

    BAKCTL |= BAKADC;
    BAKCHCTL |= CHPWD|CHV0|CHC0|CHEN;


    如果我已清除 XT2OFFIG、则意味着我的调试 UART 会显示一些垃圾(SMCLK 用于调试 UART)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我提到备用电源系统只是为了解释为什么必须清除 LOCKBAK。

    从示例程序中的代码开始、并根据需要进行修改。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ladisch、

    您能否给出示例程序链接。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请参阅 MSP430F5659页面上的"工具与软件"选项卡。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,

    我已经厌倦了电池备份示例代码... 它仍然不工作我的 XT1不稳定,它在10kHz 至64KHz 的范围内振荡,以及如何为我的超级电容器充电.. 我已在内部启用电池反向充电引脚,但它没有充电....
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,

    有关此问题的任何更新...