版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、专题专题2 2 MSP430MSP430单片机片时钟模块单片机片时钟模块 时钟模块时钟模块 高速晶体振荡器; 低速晶体振荡器; 数字控制振荡器DCO(锁频环FLL以及锁频环增 强版本FLL+)。 系统时钟必须满足以下不同要求: 高频率高频率,用于对系统硬件需求和外部事件 快速反应。 低频率低频率,用于降低电流消耗。 稳定的频率稳定的频率,以满足定时应用,如实时时 钟RTC。 低低Q值振荡器值振荡器,用于保证开始及停止操作最 小时间延迟。 基础时钟模块有基础时钟模块有3个时钟输入源:个时钟输入源: LFXT1CLK 低频时钟源,由32768Hz晶体、标准 晶体或陶瓷谐振器以及外接 450kHz8
2、MHz时钟 源产生。 XT2CLK 高频时钟源,由标准晶体、陶瓷谐振 器或外接450kHz8MHz时钟源产生。 DCOCLK 片内数字控制RC振荡器,经常用作 系统和外设的时钟信号。 提供提供3种时钟信号:种时钟信号: ACLK(辅助时钟) ACLK是LFXT1CLK信号经1、 2、4、8分频后得到的。ACLK可由软件选作各外围 模块的时钟信号,一般用于低速外设。 MCLK(系统主时钟) 可由软件选择来自 LFXT1CLK、XT2CLK、DCOCLK三者之一,然后经 1、2、4、8分频得到。MCLK主要用于CPU和系统。 SMCLK(子系统时钟) 可由软件选择来自 LFXT1CLK 、XT2C
3、LK和DCOCLK三者之一,然后 经1、2、4、8分频得到。SMCLK主要用于高速外围 模块。 MSP430X1XX时钟模块 时钟输入源:时钟输入源: LFXT1CLK LFXT1CLK 低频时钟源低频时钟源 XT2CLK XT2CLK 高频时钟源高频时钟源 DCOCL 数字控制数字控制RC振荡器振荡器 时钟输出信号时钟输出信号 ACLK 辅助时钟辅助时钟 MCLK主系统时钟主系统时钟 SMCLK子系统时钟子系统时钟 系系 快速快速外外 设设 系统频率和系统的工作电压关系:系统频率和系统的工作电压关系: 系统频率和系统的工作电压密切相关。某些应用 中可能需要较高的工作电压,所以也需要系统提 供
4、相应较高的频率。 5.1.1.1 低速晶体振荡器低速晶体振荡器 LFXT1振荡器默认工作模式是32768Hz低频模式,通过XIN和XOUT两个引脚 连接,所有保证工作稳定的元件和移相电容都集成在芯片中。 也可以通过外接450kHz8MHz的高速晶体振荡器或陶瓷谐振器工作在高频 模式,这时两个引脚还需外接电容,电容大小应根据晶体或振荡器特性来选 择。 5.1.1.2 高速晶体振荡器高速晶体振荡器 高速振荡器,即第二振荡器XT2,主要存在于 X13X,X14X,X15X,X16X,X43X,X44X等 器件中,它的工作特性与LFXT1振荡器工作在高 频模式时类似,时钟信号XT2CLK由它产生。 5
5、.1.1.4 DCO振荡器振荡器 DCO振荡器是一个可数字控制的RC振荡器,它的 频率随供电电压、环境温度变化而变化,具有一 定的不稳定性。DCO频率可以通过DCO控制寄存 器中的控制位来增强振荡频率的稳定性。 5.1.1.4 基本时钟模块失效操作基本时钟模块失效操作 基本时钟模块具有振荡器失效检测功能。振 荡器失效检测器是能够监控LFXT1CLK(在HF模 式)和XT2CLK的一个模拟电路。当任意一个时 钟信号在大约50s内不出现时,可以检测出振荡 器失效。当检测到振荡器失效并且在MCLK来源 于LFXT1(在HF模式)或XT2时,DCO振荡器会 自动被选作MCLK的时钟源,因此在振荡器失效
6、 的情况下,代码可以继续执行。 5.1.1.6 基本时钟模块寄存器基本时钟模块寄存器 1. DCOCTL DCO控制寄存器控制寄存器 DCO.0DCO.2:定义8种频率之一,可分段调节 DCOCLK频率,相邻两种频率相差10。而频率由注入 直流发生器的电流定义。 MOD.0MOD.4:定义在32个DCO周期中插入的 fdco+1周期个数,而在余下的DCO周期中为周期,控制 切换DCO和DCO+1选择的两种频率。如果DCO常数为7, 则已选择最高频率,此时不能用MOD.0MOD.4进行调整。 2.BCSCTL1基本时钟系统控制寄基本时钟系统控制寄 存器存器1 XT2OFF: 控制XT2振荡器的开
7、启与关闭。 0 XT2振荡器开启; 1 XT2振荡器关闭(默认XT2关闭)。 XTS: 控制LFXT1工作模式,选择需结合实际晶体 振荡器连接情况。 0 LFXT1工作在低频模式(默认低频模式); 1 LFXT1工作在高频模式(必须连接有相应高频时 钟源)。 DIVA.0 DIVA.1:控制ACLK分频。 0 0 0 不分频(默认不分频); 0 1 1 2分频; 1 0 2 4分频; 1 1 3 8分频。 XT5V: 此位需为。 Rsel.0,Rsel.1,Rsel.2: 三位控制某个内部电阻以决定标称频率。 Rsel.2 Rsel.1 Rsel.0 说明说明 0 0 0 Rsel=0,选择最
8、低的标称频率; 1 1 1 Rsel=7,选择最高的标称频率。 3. BCSCTL2 基本时钟系统控制寄基本时钟系统控制寄 存器存器2 SELM.0, SELM.1: 选择MCLK时钟源。 0 0 MCLK的时钟源为DCOCLK(默认时钟源); 0 1 MCLK的时钟源为DCOCLK; 1 0 对于MSP430F13/14/15/16X等片内有XT2振 荡器的,时钟源为XT2CLK;片内无XT2的,MCLK的时 钟源为LFXT1CLK; 1 1 MCLK的时钟源为LFXT1CLK。 76543210 SELM.1 SELM.0 DIVM.1 DIVM.0 SELS DIVS.1 DIVS.0
9、DCOR 0 0 1分频(默认MCLK=DCOCLK); 0 1 2分频; 1 0 4分频; 1 1 8分频。 0 时钟源为DCOCLK(默认时钟源); 1 片内有XT2的,时钟源为XT2CLK;片内无XT2的,时钟源为 LFXT1CLK。 DIVS.0,DIVS.1: 选择SMCLK分频。 0 0 1分频(默认MCLK=DCOCLK); 0 1 2分频; 1 0 3分频; 1 1 8分频。 DCOR: 选择DCO电阻。 0 内部电阻; 1 外部电阻。 基础时钟模块工作方式和相关寄存器设置 例1设MCLK = XT2, SMCLK = DCOCLK,将MCLK由P5.4输出。(MSP430X1
10、4X中引脚 P5.4和MCLK复用)。实现上述功能的程序如下: #include void main(void) unsigned int i; WDTCTL = WDTPW + WDTHOLD; / 停止看门狗 P5DIR |= 0 x10; / P5.4 输出 P5SEL |= 0 x10; / P5.4 用作MCLK输出 BCSCTL1 / XT2有效 do IFG1 /清除振荡器失效标志 for (i = 0 xFF; i 0; i-); / 稳定时间 while (IFG1 / 如果振荡器失效标志存在 BCSCTL2 |= SELM1; / MCLK = XT2 for (;); 5
11、.1.1.7 MSP430F4XX系列时钟模系列时钟模 块块 MSP430F4XX系列的时钟模块中使用了增强型锁 频环技术FLL+; 时钟模块有DCO,硬件自动调整DCO频率,支持 时钟配置的超低功耗应用,可以在低频振荡器的 驱动下,得到较高的稳定频率; LFXT1振荡器; XT2振荡器(41/42系列没有LFXT2振荡器)。 MSP430F4XX系列时钟模块 MSP430F4XX的时钟模块提供的时钟的时钟模块提供的时钟 信号:信号: ACLK 辅助时钟:辅助时钟:ACLK来自LFXT1CLK信号,ACLK可 由软件选作各外围模块的时钟信号,一般用于低速外设。 ACLK/n: ACLK经1、2
12、、4、8分频后由引脚P1.5输出, 仅供外部电路使用;这保证了MSP430F4XX和 MSP430X1XX系列的时钟系统相兼容。 MCLK 系统主时钟:系统主时钟:MCLK可由软件选择来自 LFXT1CLK、XT2CLK(器件具有XT2CLK)和DCOCLK 三者之一,然后经1、2、4、8分频得到。MCLK主要用于 CPU和系统。 SMCLK 子系统时钟子系统时钟:可由软件选择来自XT2CLK(器件 具有XT2CLK)和DCOCLK,SMCLK主要用于高速外围 模块。 1. FLL+运行模式 当RC振荡器受温度和压力的影响频率发生偏移时,FLL 通过比较ACLK和DCOCLK/(N+1)的大小
13、,由频率积分 器产生一个10位的频率偏差,积分器根据这个偏差控制调 整DCOCLK的频率,形成一个调整反馈环。 DCO频率积分器的输出可以在SCFI0和SCFI1中读出。计 数器在每个ACLK周期进行1或1调整。 频率积分器的10位是由硬件自动调节的,其中5位是DCO 的频率周期选择,5位是调制器控制。在每32个DCOCLK 时钟周期中, 周期累加的变化可以通过调制器混合相邻两 个DCCLK周期来克服。如果寄存器SCFQCTL1中的控制 位M置位,调制器被禁止,临近的DCO周期不被混合。当 状态寄存器(SR)的控制位SCG01时,FLL+停止操作。 2. FLL失效控制失效控制 MSP430的
14、硬件电路能够检测振荡器是否失效。一般当振 荡器丢失在约100个振荡周期时设置振荡器失效标志 OscFault。OscFault标志令振荡器失效中断标志OFIFG置 位,FLL+振荡器失效逻辑如图所示 : FLL+振荡器有以下振荡器有以下4种失效情况:种失效情况: XT2OF: XT2振荡器失效; XT1OF: LFXT1振荡器在高频模式(HF) 下失效; LFOF: LFXT1振荡器在低频模式(LF) 下失效; DCOF: DCO振荡器失效。 振荡失效信号就会使OFIFG标志置位,如果OFIE也置位,振荡失效中断将请 求一个非屏蔽中断,(非)屏蔽中断被响应后,OFIE自动复位。 OFIE的初始
15、状态是复位的,即使有振荡失效情况发生也不会有振荡失效请 求中断。 振荡器失效中断允许位(OFIE)位于中断允许寄存器IE1的1位;振荡器失效 中标志位(OFIFG)位于中断寄存器IFG1的1位。 振荡器只可由单独的允许位OFIE屏蔽,通用中断允许GIE复位也不能禁止。 用户在使用过程中,通常应该在PUC后必须编制一段程序来识别或设置振荡 器状态,以防止因振荡故障信号有效而将OFIFG永久置位。PUC将OFIE复位, 因此,这时不会发生中断请求。当从振荡器故障来的中断请求被接受时,中 断允许位OFIE自动复位以阻止继续到来的中断请求,直到软件做出适当的响 应使振荡器故障信号失效,在到达这一状态后
16、,OFIE可以按模块中断一般规 则重新置位。 当中断请求被接受得到服务时,中断标志OFIFG仍保持置位。这是强制性 的,因为它是与NMI中断一起构成多源中断,并要指示软件处理振荡器故障 事件。首先服务OFIFG的条件使得这一事件的优先级比NMI事件更高。 3. MSP430F4XX时钟模块寄存器时钟模块寄存器 MSP430F4XX时钟模块寄存器如表5-2所示,这 些控制寄存器都是字节形式的,必须以字节指令 来访问。 (1) SCFQCTL系统时钟控制寄存器系统时钟控制寄存器 M: 调制器使能控制位。 0 调制器使能 1 调制器禁止 N: DCOCLK倍数选择位。 若DCOPLUS=0,则FDC
17、OCLK=(N+1)fACLK; 若DCOPLUS=1,则FDCOCLK=D(N+1)fACLK。 76543210 MN (2)SCFI0系统频率积分寄存器0 MODx(LSBx):): 是10位DCOCLK频率调整参数的最后两位,含义 见SCFI1寄存器部分。这10位DCOCLK频率调整参数由FLL+硬件自 动完成。 FLLDx: FFL+环分频系数D,DCOCLK在FLL+反馈环中被分频。 00 不分频 01 2分频 10 4分频 11 8分频 FN_x: DCOCLK频率的调整范围 76543210 FLLDx FN_8 FN_4 FN_3 FN_2MODx (LSBx) 如果根据目标
18、频率需要对FN_X位进行改变,可增 加D或者设置DCO+,下面几个步骤可以确保不会 超出系统所允许的最高频率 (3) SCFI1 系统频率积分寄存器1 DCOx: DCOCLK频率周期控制,这五位控制 DCOCLK频率周期的29种组合(最高4种相同), 每一个组合比前一个高10%。 MODx: 调制器控制位的高3位,低2位在寄存 器SCFI0中,这3位控制32种可能的周期混合方式。 76543210 DCOx MODx(MSB) (4)FLL_CTL0 FLL+控制寄存器 DCOPLUS: DCO用作MCLK或SMCLK前是否需要预 分频选择位。 0 不分频; 1 分频。 XTS_FLL: L
19、FXT1模式选择位。 0 低频模式; 1 高频模式。 76543210 DCOPLUSXTS_FLL OscCap XT2OF XT1OF LFOFDCOF OscCap: 振荡器电容选择位。 00 1pF; 01 6pF; 10 8pF; 11 10pF。 XT2OF: XT2振荡器失效标志位,在MSP430F41/42中没有XT2。 0 没有失效; 1 失效 。 XT1OF: LFXT1振荡器在高频模式(HF)下失效标志位。 0 没有失效; 1 失效。 LFOF: LFXT1振荡器在低频模式(LF)下失效标志位。 0 没有失效; 1 失效。 DCOF: DCO振荡器失效标志位。 0 没有失
20、效; 1 失效。 (5)FLL_CTL1 FLL+控制寄存器1 SMCLKOFF: 时钟信号SMCLK关闭控制位。 0 打开SMCLK; 1 关闭SMCLK XT2OFF: XT2振荡器关闭控制位。如果XT2没有被用 做MCLK(SELM2或CPUOFF1)或SMCLK(SELS 0或者SMCLKOFF1),则关闭XT2。 0 打开XT2; 1 关闭XT2。 76543210 未用SMCLKOFFXT2OFFSELMSELSFLL_DIV SELMx: MCLK时钟源选择位。 00 DCOCLK; 01 DCOCLK; 10 XT2CLK; 11 LFXT1CLK SELS: SMCLK时钟源
21、选择位。 0 DCOCLK; 1 XT2CLK。 FLL_DIV: LFXT1频率的分频因子选择位。 00 不分频; 01 2分频; 10 4分频; 11 8分频。 例1: 设MCLKXT2,SMCLKDCOCLK, 将MCLK由P5.4 口输出 #include msp430 x14x.h void main(void) unsigned int i; WDTCTL = WDTPW + WDTHOLD; /停止WDT P5DIR |= 0 x10; / P5.4 输出 P5SEL = 0 x10; / P5.4 用作MCLK输出 BCSCTL1 /XT2有效 do IFG1 /清除振荡器失效
22、标志 For(i=0 xFF;i0;i=-); /稳定时间 while(IFG1 /如果振荡器失效标志存在 BCSCTL2|=SELM1; /MCLKXT2 for(;) 例2:设ACLKLFXT132768Hz,MCLK (n+1)2ACLK,并将MCLK和ACLK分别输出。 #include msp430 x44x.h void main(void) WDTCTL = WDTPW + WDTHOLD; /停止看门狗 SCFI0 |= FN_4+FLLD_2; SCFQCTL = 121; / (121+1) 32768 2 = 7.99 MHz FLL_CTL0 = DCOPLUS + X
23、CAP18PF; P1DIR = 0 x22; / P1.1 和P1.5 输出 P1SEL = 0 x22; / P1.1 和P1.5 输出 MCLK 和 ACLK while(1); 例3: 设ACLKLFXT132768Hz,MCLK选 SCFQCTL默认值31,SMCLK选择XT2CLK。 #include msp430 x44x.h void main(void) unsigned int i; WDTCTL = WDTPW + WDTHOLD; /停止看门狗 FLL_CTL0 = XCAP18PF; / 设置振荡电容10pF FLL_CTL1 = FLL_CTL1 / XT2打开 d
24、o / FLL_CTL0 = FLL_CTL0 / 高频振荡器标志位清零 for (i = 50000; i; i-); / 延时 while (FLL_CTL0 / 测试高频振荡器失效标志 FLL_CTL1 = SELS; / SMCLK =XT2CLK P1DIR = 0 x32; / 设置P1.1, P1.4 和 P1.5为输出 P1SEL = 0 x32; / P1.1, P1.4 / 5.1.2 低功耗结构低功耗结构 TI公司的MSP430是一个以超低功耗为主要特 点的单片机系列,用户可以根据CPU和外围模块 对时钟的需要,通过软件控制MSP430时钟系统, 合理的利用系统资源,实现
25、整个应用系统的超低 功耗。该系列单片机同时也提供了5种低功耗工作 模式和一种活动模式,而这些工作模式是依靠对 SR中的低功耗控制位和时钟的控制来实现。 5.1.2.1 低功耗控制低功耗控制 SCG1: 当SCG1复位时,使能SMCLK;SCG1置位则禁止SMCLK。(DCO 直流发生器) SCG0: 当SCG0复位时,直流发生器被激活,只有SCG0被置位且 DCOCLK信号没有用作MCLK或SMCLK,直流发生器才能被禁止。(FLL+) 当电流关闭(SCG0=0)时,DCO的启动有些延迟,延迟时间在s范围内 (具体看器件参数)。 OscOff: 当OscOff复位时,LFXT1晶体振荡器被激活,当OscOff被置位 LFXT1晶体振荡器才能被禁止。当使用振荡器关闭选项OscOff时,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论