历史上的今天
今天是:2024年12月06日(星期五)
2020年12月06日 | 单片机的三种时钟信号源的特点及应用介绍
2020-12-06 来源:elecfans
与51、AVR等单片机不同msp430的时钟信号源有LFXT1,XT2,DCO三种。
1、LFXT1:可接高速和低速晶振,在低速模式下,它可以外接32k的晶振而不需要负载电容,这种方式较为常见主要用来为ACLK提供低速的时钟信号,以供低速外设使用。
2、XT2:高速振荡器,它可以接一个0.4~16M的晶振,它相当于高速模式下的LFXT1。通常将它配置成一个高速的振荡源,为MCLK何SMCLK提供高速时钟信号。
3、DCO:内部数字控制振荡器,它的频率可以通过DCOCLK进行配置。在系统PUC之后,DCOx=7,MODx=3,表示选择了最高的频率。

前面介绍了MSP430中有三个个时钟信号源,MSP430的时钟信号也有三种主时钟MCLK,子系统时钟SMCLK,辅助时钟ACLK。
其中MCLK是用给系统使用的,SMCLK用给高速外设使用的,而ACLK主要用给低速外设使用。
在系统PUC之后,默认SMCLK与MCLK都以DCO作为时钟源,震荡频率在1.1M左右,ACLK以LFXT1作为时钟源,工作在LF模式下内部6pF的负载电容。
一般情况下选择XT2作为主时钟,时钟模块初始化程序如下:
WDTCTL=WDTPW+WDTHOLD;//关闭看门狗
/*------选择系统主时钟为8MHz-------*/
BCSCTL1&=~XT2OFF;//打开XT2高频晶体振荡器
do
{
IFG1&=~OFIFG;//清除晶振失败标志
for(i=0xFF;i》0;i--);//等待8MHz晶体起振
}
while((IFG1&OFIFG));//晶振失效标志仍然存在?
BCSCTL2|=SELM_2+SELS;//主时钟和从时钟都选择高频晶振
……………………………………………………。
注意:
a.最好将IFG1&=~OFIFG;放入do –while循环中,我调了好一阵程序,发现IFG1似乎置位之
后不能自动复位。
b.在XT2出现错误的情况下将XT2设定为MCLK SMCLK的时钟源,单片机会自动的把时钟源更换为DCO振荡器。当时钟信号丢失50us时,振荡器失效。如果MCLK信号来自LFXT1或者XT2,
那么MSP430自动把MCLK的信号切换为DCO,这样可以保证程序继续运行。MSP430不对低频
模式的LFXT1进行监测。
b.BCSCTL2=SELM_2+SELS;语句必须放在while之后,因为当XT2没有起振之前,XT2处于错误
阶段,因此在XT2没有起振之前将它设定为主时钟与子系统时钟后,单片机会自动的将DCO
设定为SMCLK MCLK的时钟源。
史海拾趣
|
我现在想做个程序,在一段时间没有对系统进行任何操作时,就自动播放一段视频!avi格式和mpeg格式均可,请问谁又相关资料!可否共享一下,小弟不甚感激!~~… 查看全部问答> |
|
我现在做.net开发,如果从事单片机或嵌入式开发,学哪个有比较好点?需要多长时间可以上手!用什么平台最好! 各位朋友,本人计算机应届生.我现在做.net开发, 不过我想问下如果从事单片机,需要多长时间可以上手?… 查看全部问答> |
|
研发兼销售工程师:李泳生 13760155692 075581580452 QQ:252859106(技术交流) Mk7A22,兼容s3f9454,性价比优,同比优惠15%,比同类产品优惠15%。广泛应用于锂电池,镍氢电池充电控制,家电控制,温度检测等。 ...… 查看全部问答> |
|
ADC共使用4通道,每次2通道通过DMA读取;怎么实现2组切换? 现在我的程序里面需要用到ADC的4个通道, 1.ADC1_0,ADC2_1为一组,负责320组数据,每次16个数据的采集工作; 2.ADC1_10,ADC2_11为一组,负责对另外输入ADC信号进行处理; 两组不会同时工作,请问程序中怎么样设置和实现?… 查看全部问答> |
|
【团购】ALIENTEK 战舰STM32F103ZET6开发板+2.8液晶 团购价格:前10名购买者418元。 第11至20名购买者428元。 第21之后购买者448元。 注:本款开发板的淘 ...… 查看全部问答> |
|
这个帖子仅仅是一个idea,不代表逻辑分析仪最终的实现思路。希望大家提出宝贵建议。 既然要做逻辑分析仪,就会涉及到硬件设计,在坛子里大多数坛友都是都是抱着学习,分享的心态的。 做一个假设,我们逻辑分析仪直接设计成一块板子。 大家在上面 ...… 查看全部问答> |




