您的位置 首页 编程

MSP430时钟剖析

最近开始学习MSP430,在所有单片机学习中,时钟的设置无疑是最基本的一项工作!尤其对于现在的单片机,外部有低速,高速两种晶振,内部还…

最近开端学习MSP430,在所有单片机学习中,时钟的设置无疑是最基本的一项作业! 特别关于现在的单片机,外部有低速,高速两种晶振,内部还有PLL的内部时钟源,设置好体系作业的时钟则是作业完美开端的体现。
我总共用了两种系列的430单片机,MSP430F149和MSP430F437,系列的不同,时钟的设置也略有不同,下面从149的时钟一步一步来说吧!
在f149中,根底时钟是被叫做basic clock module,
其总共有三个时钟源:
一个LFXT1CLK,为低速/高速晶振源,一般接32.768khz,也能够接(400khz~8Mhz)
一个为XT2CLK,外接规范高速晶振,一般是接8Mhz,也能够接(400khz~8Mhz)
还有一个叫DCOCLK,为内部晶振,有RC震动回路构成。
在430内部总共有三个时钟体系
一个为ACLK,一般由LFXT1CLK作为时钟源,能够经过软件操控改时钟的分频系树。
一个为MCLK,即Main CLK,一听就知道是主时钟单元,为体系内核供给时钟,它能够经过软件从三个时钟源挑选,
一个为SMCLK,称作辅佐主时钟,也是能够由软件挑选时钟源。
Basic Clock Module Registers(根底时钟寄存器)
DCO control register DCOCTL
Basic clock system control 1 BCSCTL1
Basic clock system control 2 BCSCTL2
SFR interrupt enable register 1 IE1
SFR interrupt flag register 1 IFG1
DCOCTL寄存器是用来装备DCOCLK的,这儿暂时不提
BCSCTL1 与BCSCTL2 寄存器则显得比较重要,这两个寄存器操控了你整个体系中430的作业时钟体系。
BCSCTL1寄存器:
7 6 54 3 210
XT2OFF XTS DIVAx XT5V RSELx
XT20FF: 用来操控XT2晶振的敞开和封闭,置1时封闭,置0时,敞开
XTS: 用来挑选低速晶体的作业形式(可疏忽)
DIVAx: 用来挑选ACLK的分频系数
XT5V: 无用
RSELx: 挑选电阻(没用过,一般置0)
BCSCTL2
7 6 5 4 3 2 1 0
SELMx DIVMx SELS DIVSx DOCR
SELMx:挑选MCLK的时钟源,
00 DCOCLK
01 DCOCLK
10 XT2CLK
11 LFX1CLK
DIVMx: MCLK的分频
00 1分频
01 2分频
10 4分频
11 8分频
SELS:SMCLK的时钟源,0时为内置DCO,1时为外置高速XT2
DIVSx:SMCLK的分频,同MCLK分频
DCOR:操控频率的电阻是内部仍是外部(没用过)
实例初始化程序
void Init_CLK(void)
{
unsigned int i;
BCSCTL1=0x00;//XT2敞开,LFXTCLK为低频形式,ACLK分频为0
do
{
IFG1&=~OFIFG;
for(i=0x20;i>0;i–);
}
while((IFG1&OFIFG)==OFIFG); //当OSCFault=1 即晶振不起振则等候
BCSCTL2=0X00;
BCSCTL2|=SELM1; //MCLK 时钟为XT2,
BCSCTL2|=SELS; //SMCLK时钟为XT2
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/273216.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部