SP430 系列单片机基础时钟主要是由低频晶体振荡器,高频晶体振荡器,数字控振荡器(DCO),锁频环(FLL)及 FLL+等模块构成。由于 430 系列单片机中的型号不同而时钟模块也将有所不同。虽然不同型号的单片机的时基模块有所不同,但这些模块生出来的结果是相同的。在MSP430F13、 14中是有TX2振荡器的, 而MSP430F11X,F11中是用LFXT1CLK来代替XT2CLK时钟信号的。在时钟模块中有3个(对于F13,F14)时信号源(或 2个时钟信号源,对于F11X、F11X1):
1-LFXT1CLK: 低频/高频时钟源。由外接晶体振荡器,而无需外接两个振荡电容器常使用的晶体振荡器是32768HZ。
2-XT2CLK: 高频时钟源。由外接晶体振荡器。需要外接两个振荡电容器,较常的晶体振荡器是 8MHZ。
3-DCOCLK: 数字可控制的 RC 振荡器。
在这三个时钟源的独立工作或是在三个时钟源相互协调配合(是可以通过软件配置的)下为2553系统提供了系统时钟ACLK、MCLK和SMCLK。ALCK、MCLK、SMCLK是和CPU或者外设连接起来的,而LFXT1CLK、XT2CLK、DCOCLK、VLOCLK这四个又是和ALCK、MCLK、SMCLK连接起来的,也就是说LFXT1CLK、XT2CLK、DCOCLK、VLOCLK是通过ALCK、MCLK、SMCLK和外设连接起来的。
上电后,系统默认使用的主系统时钟MCLK和子系统时钟SMCLK是同为DCOCLK产生的1MHz时钟,而辅助时钟ACLK则为内部VLOCLK产生的12KHz时钟。G2553上电后时钟的初始状态我们可以用Grace来查看:
可以看出MCLK和SMCLK都是DCOCLK产生的1MHz的时钟,ACLK则是VLOCLK产生的12KHz的时钟。
DCO时钟:DCO时钟源产生的频率可以通过DCOCTL寄存器来设置寄存器来设定,通过设定DCOCTL中的高三位(其名字为DCOx),BCSCTL1基本时钟控制寄存器低四位(其名字为RSELx)就可以控制DCO振荡器产生100K~20M不等的时钟频率。设定时应尽量居中,以保持稳定
1.DCOCTL,DCOControlRegister
DCOxDCO频率选择寄存器,通过该位设置DCO的频率。
MODx模式选择位。
2.BCSCTL1,BasicClockSystemControlRegister1XT2OFFG2553该位无效,详细请参阅官方技术文档。
XTS LFXT1,模式选择位
0低频模式。
1高频模式。
DIVAx
分频寄存器,分频后给ACLK提供时钟00/1。01/2。10/4。11/8。
RSELx DCO频率选择寄存器,通过该位设置DCO频率。
3.BCSCTL2,BasicClockSystemControlRegister2
SELMx
MCLK时钟源选择
00DCOCLK。
01DCOCLK,与00效果一样。
10G系列单片机该位无效。
11低频外部时钟。
DIVMx
时钟源分频寄存器,选择时钟源后经过该位分频后提供给MCLK
00/1。01/2。10/4。11/8。
SELS
SMCLK时钟源选择寄存器
0DCOCLK。
1外部晶振。
DIVSx
时钟源分频寄存器,选择时钟源后经过该位分频后提供给SMCLK
00/1。01/2。10/4。11/8。
DCOR 该位保留。
4.BCSCTL3,BasicClockSystemControlRegister3XT2SxG系列单片机该位无效
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,InterruptEnableRegister1中断使能寄存器OFIE
晶体振荡器故障使能寄存器
0禁止中断
1使能中断
MSP430G22x0不支持该位。
6.IFG1,InterruptFlagRegister1
OFIFG
晶体振荡器故障标志寄存器
0没有发生中断。
1有中断事件发生。
MSP430G22x0不支持该位。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)