历史上的今天
今天是:2025年02月07日(星期五)
2021年02月07日 | 单片机MSP430入门--理论④--时钟模块-BCSCTL2寄存器
2021-02-07 来源:eefocus
上期大概给大家汇总介绍了,在MSP430环境下的时钟寄存器DOCCTL和BCSCTL1寄存器,每个位代表的意义以及他们的设置方法

本期将重点介绍下,在MSP430环境下的时钟寄存器BCSCTL2,他每个位的意义以及他们的设置方法
1.0 BCSCTL2(Basic Clock System Control2)寄存控制器(用来设置SMCLK子时钟,MCLK主时钟),地址为58H,初始值为00H

SELM0-SELM1: 选择MCLK的时钟源,0和1为DCOCLK,2为XT2CLK,3为LFXT1CLK
DIVM0-DIVM1: 选择MCLK的分频因子,DIVM=0,1,2,3,对应MCLK的分频因子1,2,4,8
SELS: 选择SMCLK的时钟源,0为DCOCLK,1为XT2CLK/LFXTCLK
DIVS0-DIVS1: DIVS = 0,1,2,3,对应SMCLK的分频因子为1,2,4,8
DCOR: 选择电阻,0为内部电阻,1为外部电阻
示例:
设置BCSCTL2,选定MCLK和SMCLK的时钟源XT2,并设置其分频因子
①DCOR一般设置为默认值内部电阻
②选择MCLK的时钟源,BCSCTL2 = SELM_2;
选择SMCLK的时钟源,BCSCTL2 = SELS;
选择MCLK跟SMCLK的时钟源XT2,BCSCTL2 = SELM_2 + SELS;
③设置MCLK的分频因子,
BCSCTL2 = DIBM_0;//不分频
BCSCTL2 = DIBM_1;//2分频
BCSCTL2 = DIBM_2;//4分频
BCSCTL2 = DIBM_3;//8分频
④设置SMCLK的分频因子,
BCSCTL2 = DIVM_0; //不分频
BCSCTL2 = DIVM_1; //2分频
BCSCTL2 = DIVM_2; //4分频
BCSCTL2 = DIVM_3; //8分频
3.0 OFIFG是振荡器标志失效标志位,当用外部晶振时,如果外部晶振正常起震了,那OFIFG就会变成0,默认为1,所以没起震的话要继续循环等待,具体源程序如下:

在PUC信号后,由DCOCLK作MCLK的时钟信号,根据需要可将MCLK的时钟源另外设置为LFXT1或XT2,设置顺序如下:
(1)清OSCOFF/XT2
(2)清OFIFG
(3)延时等待至少50uS
(4)再次检查OFIFG,如果仍置位,则重复(1)-(4)步,直到OFIFG=0为止。
(5)设置BCSCTL2的相应SELM。
具体主要代码如下:
WDTCTL=WDTPW+WDTHOLD;//关闭看门狗
/*------选择系统主时钟为8MHz-------*/
BCSCTL1&=~XT2OFF;//打开XT2高频晶体振荡器
do
{
IFG1&=~OFIFG;//清除晶振失败标志
for(i=0xFF;i》0;i--);//等待8MHz晶体起振
}
while((IFG1&OFIFG));//晶振失效标志仍然存在,只有跳出循环的时候才认为晶振起震了
BCSCTL2|=SELM_2+SELS;//主时钟和从时钟都选择高频晶振
BCSCTL2=SELM_2+SELS;语句必须放在while之后,因为当XT2没有起振之前,XT2处于错误阶段,因此在XT2没有起振之前将它设定为主时钟与子系统时钟后,单片机会自动的将DCO设定为SMCLK MCLK的时钟源

史海拾趣
|
闲来无事,将新买来的2440开发板接上网线体验下上上网的感觉~~~(O(∩_∩)O哈哈~,新学ARM,基本不太会玩) 不知道买来的朋友有没有试过哈 发几张PP上来吧 首先打开电子工程世界主页,这样看来貌似挺正常的嘛,就是屏幕小了些 接着继续打开 ...… 查看全部问答> |
|
今天星期一,来了2趟356路车,又走了,由于人多,没挤上去,也在情理之中。 实在没办法了,323路来了,终于在门口找个容身的地方,也算舒了口气。 & ...… 查看全部问答> |
|
小弟最近遇到一棘手问题:对于无线网卡如何捕获Ap发送的广播帧,从而根据帧能够得到AP的ssID等信息。一直没找到这方面的源码。哪位大虾有发给小弟吧。邮箱号:litaojc@gmail.com… 查看全部问答> |
|
armsys2410 大容量sd卡驱动开发 (再续)-----dma传输线程失败的问题 通过串口打印的信息: 。。。。。 CSDIOControllerBase::Set_SDI_Bus_Width_4Bit CSDIOControllerBase::SetClockRate - Clock rate set to 12687500 Hz 。。。。。。。。。。。。。。。 CSDIOControllerBase::BusRequestHandler BusRequestH ...… 查看全部问答> |
|
我用的单片机是PIC18F2682 他自带AD采集模块 可以采用内部基准电压和外部基准电压,内部基准电压采用的VCC的电压 如果我采用内部基准电压 还需要在VCC引脚上加 稳压电路吗? 它内部有没有 稳压电路& ...… 查看全部问答> |
|
各位高手: 请教个问题,我用str715,4MHz时钟,iar编译器,c语言开发。发现个问题,我用示波器测,从复位完成到应用程序执行要70ms,看资料,这个时间应该是2千多个时钟周期,按我现在的配置,最多是1毫秒就够了,不 ...… 查看全部问答> |
|
昨天买了一个周立功的EasyFPGA060的板子 actel的,有点儿偏门 不过让人心烦的是没光盘,麻烦死了 坛子里有人呢用周立功的EasyFPGA060的板子的吗?… 查看全部问答> |
|
这个就是我们用的USB仿真器的官版的文档,在设计PCB的时候,如果想使用 JTAG供电可以参考这个文档,当然里面还有仿真器的HEX源码… 查看全部问答> |




