最近开始学习 MSP430,看过不少视频,读过许多文章,逛过各大论坛之后,以为自
己懂得差不多了,等板子回来后便摩拳擦掌跃跃欲试。先来个 LED 闪灯程序小试以下,
OK 没问题。(我用的芯片是 MSP430F5438A)然后开始调试先前写好的大程序,结果不
尽如人意,没能通过,不过这很正常。于是回头开始单步调试,仔细研究。程序中好多是
直接借用的 TI 官网的例程。
其中程序开始前的一句注释就让我困惑了很久,这句注释如下:
ACLK = n/a, MCLK = SMCLK = BRCLK = default DCO = ~1.045MHz
都 知 道 MSP430 在 时 钟 方 面 是 灵 活 多 变 的 , 它 的 UCS 模 块 有 三 个 时 钟 信 号
( MCLK 、 SMCLK 和 ACLK ) 和 五 个 时 钟 源
(XT1CLK、VLOCLK、REFOCLK、DCOCLK 和 XT2CLK)。
PUC(上电清零)之后,UCS 模块的默认配置如下:
● XT1 为 LF 模式,作为 XT1CLK 时钟源。XT1CLK 作为 ACLK。
● DCOCLKDIV 作为 MCLK
● DCOCLKDIV 作为 SMCLK
● FLL 模块使能。XT1CLK 作为 FLL 基准时钟 FLLREFCLK。
● XIN 和 XOUT 管脚为普通 IO 口,XT1 仍然不能用直到 I/O 口配置为 XT1 模式。
● XT2IN 和 XT2OUT 脚作为普通 IO 口,XT2 禁止。
让我困惑的是后半句,MCLK = SMCLK = BRCLK = default DCO = ~1.045MHz。首先
我不太清楚 1.045MHz 是怎么来的,后来依旧是在 MSP430x5xx Family User's Guide 中找到
了相关解释。在第 56 页有如下英文介绍:
As shown above, FLL operation with XT1 is enabled by default. On MSP430x5xx devices, the
crystalpins(XIN, XOUT) are shared with general-purpose I/O. To enable XT1, the PSEL bits
associated with the crystal pins must be set. When a 32,768Hz crystal is used for XT1CLK, the
fault controllogic will immediately cause ACLK to be sourced by the REFOCLK since XT1 will
not be stable immediately. See Section 3.2.12 for further details. Once the crystal startup is
obtained and settled, the FLL stabilizes MCLK and SMCLK to 1.048576MHz and f
DCO=2.097152MHz.
这段英文的前半部分正好解释了 FLL 和 XT1 上电后的默认状态。关键是最后一句,说
一旦晶振启动并稳定,ACLK 将取自外部的 32768Hz 晶振,FLL 将使 MCLK 和 SMCLK 稳
定为 1.047586MHz 和 Fdco=2.097152MHz。我想刚才的 1.045MHz 应该就是取自这个地方吧。
评论7