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.

[参考译文] MSP430F5171:32kHz 晶体

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/566906/msp430f5171-32khz-crystal

器件型号:MSP430F5171

我的电路凭借32kHz 的内部 REFO 忠实工作、我从中获得24.576Mhz 的时钟。

我已经看到、内部32K 基准的精度为1.5%、对于特定应用来说太大了。

使用频率更高的晶体作为外部基准(例如、 24.576MHz)不适合其功耗、因此我计划这样做

使用32KHz 晶振。 我认为我只需要将输入更改为 FLL:

 UCSCTL3 = SELREF_2;      XT1CLK       

设置 XCAP 并保持其原样。

是这样吗?   

  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    启动晶体比启动晶体更加复杂(您必须检查并清除环路中的振荡器故障标志);有关详细信息、请参阅示例程序。

    您到底需要精确的时钟是什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请您对我的错误解释进行解释;实际上、我现在正在这样做:
    SetVcoreUp (0x01);
    SetVcoreUp (0x02);
    SetVcoreUp (0x03);

    //配置时钟
    UCSCTL3 = SELREF_2; //设置 DCO FLL 基准= REFO
    UCSCTL4 |= SE拉美 经济体系2; //设置 ACLK = REFO 误差+/- 1.5%

    _bis_SR_register (SCG0); //禁用 FLL 控制环路
    UCSCTL0 = 0x0000; //设置可能的最低 DCOx、MODx
    UCSCTL1 = DCORSEL_7; //选择 DCO 范围50MHz 操作
    UCSCTL2 = FLLD_1 + 749; //将 DCO 乘法器设置为24.576MHz
    //(N + 1)* FLLRef = Fdco
    //(749 + 1)* 32768 = 24.576MHzMHz
    //设置 FLL Div = fDCOCLK/2
    _BIC_SR_register (SCG0); //重新启用 FLL 控制环路

    // DCO 范围位已经存在时、DCO 的最坏情况稳定时间
    //已更改 n x 32 x 32 x f_MCLK / f_FLL_reference。 请参阅5xx 中的 UCS 一章
    // UG 进行优化。
    // 32 x 32 x 24 MHz/32、768 Hz = 750000 = MCLK 周期、DCO 才能稳定
    _DELAY_CYCLES (782000);

    //for (i=0;i<100000;i++);

    //循环直到 XT1故障标志被清除
    操作

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

    以获得24.576MHz 频率