1赞

3回答

5收藏

[资料] 学习笔记之MSP430时钟设置

TI TI 10452 人阅读 | 3 人回复 | 2014-02-11

仅仅是个人学习心得,肯定会有一些错误,大家理解下,看到了就指出来吧!!!

上边是430时钟模块的框图,从上面可以看出
三个时钟输出:
   辅助时钟ACLKAuxillary Clock):由软件选择来自VLOCKLFXT1CLK之一经过1,2,4,8分频之后得到,为外围模块提供时钟源。
   主系统时钟MCLKMain System Clock):由软件选择来自VLOCKLFXT1CLKDCOCLK之一经过1,2,4,8分频之后得到,为CPU和系统提供时钟。
   子系统时钟SMCLKSub System Clock):和MCLK一样由软件选择来自VLOCKLFXT1CLKDCOCLK之一经过1,2,4,8分频之后得到,为外围各个模块提供时                                                                                                            钟。
四个时钟源:
   VLOCLK:片内超低功耗12KHz的内部振荡器。
   XT2CLKG2553是没有XT2CLK这个模块的。
   DCOCLK:片内可数字控制的振荡器DCOCLK,在软件的调节下该时钟的输出范围为0.6MHz26MHz
   LFXT1CLK:由外部时钟源提供的LFXT1CLK时钟源,也即LanuchPad开发板上未焊接的时钟电路,在这里我们可以焊接一个32.768KHz的低频时钟晶体由G2553的  XIN引脚输入。
他们几个的关系可以由下图表示:

在这三个时钟源的独立工作或是在三个时钟源相互协调配合(是可以通过软件配置的)下为2553系统提供了系统时钟ACLKMCLKSMCLKALCKMCLKSMCLK是和CPU或者外设连接起来的,而LFXT1CLKXT2CLKDCOCLKVLOCLK这四个又是和ALCKMCLKSMCLK连接起来的,也就是说LFXT1CLKXT2CLKDCOCLKVLOCLK是通过ALCKMCLKSMCLK和外设连接起来的。



上电后,系统默认使用的主系统时钟MCLK和子系统时钟SMCLK是同为DCOCLK产生的1MHz时钟,而辅助时钟ACLK则为内部VLOCLK产生的12KHz时钟。
G2553上电后时钟的初始状态我们可以用Grace来查看:



可以看出MCLKSMCLK都是DCOCLK产生的1MHz的时钟,ACLK则是VLOCLK产生的12KHz的时钟。
DCO时钟:
DCO时钟源产生的频率可以通过DCOCTL寄存器来设置寄存器来设定,通过设定DCOCTL中的高三位(其名字为DCOx),BCSCTL1基本时钟控制寄存器低四位(其名字为RSELx)就可以控制DCO振荡器产生100K~20M不等的时钟频率。设定时应尽量居中,以保持稳定。



1. DCOCTL, DCO Control Register



DCOx DCO频率选择寄存器,通过该位设置DCO的频率。
MODx 模式选择位。
2. BCSCTL1, Basic Clock System Control Register 1


XT2OFF         G2553该位无效,详细请参阅官方技术文档。
XTS                 LFXT1,模式选择位
0 低频模式。
1 高频模式。
DIVAx                 分频寄存器,分频后给ACLK提供时钟
00 /1
01 /2
10 /4
11 /8
RSELx                 DCO频率选择寄存器,通过该位设置DCO频率。
3. BCSCTL2, Basic Clock System Control Register 2



SELMx                 MCLK时钟源选择
00 DCOCLK。
01 DCOCLK,与00效果一样。
10 G系列单片机该位无效。
11 低频外部时钟。
DIVMx                 时钟源分频寄存器,选择时钟源后经过该位分频后提供给MCLK
00         /1。
01         /2。
10         /4。
11         /8。
SELS                 SMCLK时钟源选择寄存器
0 DCOCLK。
1 外部晶振。
DIVSx                 时钟源分频寄存器,选择时钟源后经过该位分频后提供给SMCLK
00 /1。
01         /2。
10         /4。
11         /8。
DCOR                 该位保留。
4. BCSCTL3, Basic Clock System Control Register 3


XT2Sx                 G系列单片机该位无效
LFXT1Sx         G系列单片机,当BCSCTL1寄存器中XTS = 0时,该位的设置才有效
00 外部接的是32768HZ的晶振。
01 保留位。
10 选择超低频外部时钟(VLOCLK
11 数字外部时钟源。
XCAPx                 振荡器电容选择寄存器,当XTS=0时该位有效,假如XTS = 1 或者LFXT1Sx =11,                        XCAPx应该设置为00
00 ~1pF
01 ~6pF
10 ~10pF
11 ~12.5pF
XT2OF                 G系列单片机该位无效
LFXT1OF         LGXT1晶体振荡器故障状态寄存器
0 没有故障。
1 有故障。
5. IE1, Interrupt Enable Register 1中断使能寄存器



OFIE                 晶体振荡器故障使能寄存器
0 禁止中断
1 使能中断
MSP430G22x0不支持该位。
6. IFG1, Interrupt Flag Register 1



OFIFG                 晶体振荡器故障标志寄存器
0 没有发生中断。
1 有中断事件发生。
MSP430G22x0不支持该位。
有一些模块的时钟是有自己特有的时钟源的,如Timer_A



Timer_A的时钟选择有四种:TACLKACLKSMCLKINCLKTimer_A是不能选择MCLK作为时钟源的。而INCLKTACLKTimer_A特有的时钟源。
Ps : 此文仅为个人学习心得,难免有错漏之处,敬请谅解。  



分享到:
回复

使用道具 举报

回答|共 3 个

倒序浏览

沙发

郎爱上羊

发表于 2014-2-11 16:27:07 | 只看该作者

楼主的心得,我坐沙发顶一下。
板凳

huixianfxt

发表于 2014-2-18 21:26:39 | 只看该作者

学习了.........温故而知新呢....
地板

追梦者11号

发表于 2014-9-5 09:30:14 | 只看该作者

写得很详细很不错!
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条