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.

关于MSP430F5529上电默认时钟的问题

Other Parts Discussed in Thread: MSP430F5529

MSP430F5529时钟树如图所示

XIN、XOUT;XT2IN、XT2OUT 引脚与GPIO复用,上电默认为GPIO,因此XT1CLK、XT2CLK均无效;

如GPIO例程、Timer 例程等初始化时并没有对时钟进行配置,关于上电系统默认时钟,有以下疑问

疑问1.DCOCLK、DCOCLKDIV是由FLL单元产生的吗?如手册中描述,FLLREFCLK默认源为XT1CLK,如果XT1CLK无效,上电无配置,FLL单元的FLLREFCLK源自何处呢?

疑问2.FLL单元中的integrator作用是什么呢?

疑问3.User Guide 102页有如下描述

“When crystal start-up is obtained and settled, the FLL stabilizes MCLK and SMCLK to 1.048576 MHz and fDCO = 2.097152 MHz.”

上电后,MCLK、SMCLK默认源为DCOCLKDIV,默认的分频系数是2,因此fDCO是MCLK、SMCLK的2倍,但是fDCO的2.097152MHz是如何产生的呢?

  • user78960159 说:
    疑问1.DCOCLK、DCOCLKDIV是由FLL单元产生的吗?如手册中描述,FLLREFCLK默认源为XT1CLK,如果XT1CLK无效,上电无配置,FLL单元的FLLREFCLK源自何处呢?

    DCO的话,您可以参考用户指南 5.2.6 Digitally Controlled Oscillator (DCO)

    The DCO frequency can be optionally stabilized by the FLL to a multiple frequency of FLLREFCLK/n. The FLL can accept different reference sources selectable by the SELREF bits. Reference sources include XT1CLK, REFOCLK, or XT2CLK (if available) .

    若是外部晶振不可用的话,可以使用内部的REFOCLK

    默认情况下,XT1CLK作为FLL参考时钟,即FLLREFCLK。但是MSP430的UCS中有fail-safe机制,即当外部晶体出错或者不使用的时候,那么自动切换到内部的振荡器,比如REFOCLK。在上电后,会有一个XT1LFOFFG,所以FLLREFCLK就自动切换到REFOCLK来驱动。

    默认情况下,n=1,N=31,FLLREFCLK=REFOCLK=32.768KHz,DCOCLKDIV 所以能够计算出大概是1048576Hz

    user78960159 说:
    疑问2.FLL单元中的integrator作用是什么呢?

    请参考 5.2.7 Frequency Locked Loop (FLL)

    The FLL continuously counts up or down a frequency integrator. The output of the frequency integrator that drives the DCO can be read in UCSCTL0, UCSCTL1 (bits MOD and DCO).

    FLL:以DCO频率做参考,利用反馈调整频率到更精确的频率(类似PLL)

    user78960159 说:

    疑问3.User Guide 102页有如下描述

    “When crystal start-up is obtained and settled, the FLL stabilizes MCLK and SMCLK to 1.048576 MHz and fDCO = 2.097152 MHz.”

    上电后,MCLK、SMCLK默认源为DCOCLKDIV,默认的分频系数是2,因此fDCO是MCLK、SMCLK的2倍,但是fDCO的2.097152MHz是如何产生的呢?

    fDCOCLK = D × (N + 1) × (fFLLREFCLK ÷ n)

    fDCOCLKDIV = (N + 1) × (fFLLREFCLK ÷ n)

      其中的D由UCSCTL2中的FLLD位决定,N由FLLN位决定,n由UCSCTL3中的FLLREFDIV决定。默认情况下,D取2,N取31,n取1。

      当PUC之后,XT1不能作为FLLREFCLK时钟源,FLLREFCLK会选择REFO作为其时钟源。

    D = 2、N = 31、FLLREFCLK = 32768、n = 1

    2 x (31 + 1) x 32768 = 2097152 Hz  = 2.097152 MHz 

  • 您好 感谢您的帮助
  • 很高兴能帮到您