关于(单片机)msp430的时钟资料_第1页
关于(单片机)msp430的时钟资料_第2页
关于(单片机)msp430的时钟资料_第3页
关于(单片机)msp430的时钟资料_第4页
关于(单片机)msp430的时钟资料_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.msp430f5419/38学习笔记之时钟系统(2011-11-30 10:41:30) 标签: msp430f541xmsp430f543xucs分类: msp430 时钟系统 注:msp5419/38中,如果你使用SMCLK做TIMER_A的时钟,那么进入低功耗3或低功耗4是不会把SMCLK关 掉的,这点5系列和其他系列的不一样。 UCS模块是一个低成本超低功耗系统,通过选择使用3个内部时钟信号,用户可以得到性能和功耗的最佳平衡点。UCS可以由软件配置其工作模式,如配置成:不需要任何外部器件、使用 1或 2个外部晶振等。 一、时钟系统 UCS模块具有5个时钟源:XT1CLK:低频/高频振

2、荡器,既可以与低频 32768HZ钟振、标准晶振、外部振荡器,又可以与外部4M-32MHZ时钟源一起使用,XT1CLK可以作为FLL模块内部的参考时钟。有些芯片XT1CLK只允许使用外部的低频晶振,具体可参考数据手册; XT2CLK:可选高频振荡器,可与标准晶振,振荡器或者 4MHZ32MHZ外部时钟源一起使用; VLOCLK:内部低功耗、低频振荡器,频率典型值为10KHZ; REFOCLK:内部低频振荡器,典型值为 32768HZ,可作为 FLL基准时钟源; DCOCLK:可以通过 FLL来稳定的内部数字控制振荡器(DCO);DCOCLK经过 FLL分频后可得DCOCLKDIV。 UCS模块

3、可以提供3种时钟信号:ACLK:辅时钟; MCLK: 系统主时钟; SMCLK:子系统主时钟。 二、UCS操作 PUC之后,UCS的默认配置模式如下:XT1CLK 选择LF模式下的XT1作为时钟源,ACLK 选择 XT1CLK 作为时钟源; MCLK 选择DCOCLKDIV作为时钟源; SMCLK 选择DCOCLKDIV作为时钟源; FLL操作使能,FLL基准时钟(FLLREFCLK)选择XT1CLK; XIN 和 XOUT作普通IO 口使用,禁止了 XT1 功能,直到 I/O 口重新配置为 XT1 模式; 如果有 XT2IN 和XT2OUT,则一并配置为普通 IO 口,禁止 XT2 功能。

4、如上所述: 默认状态下:XIN/XOUT(P7.0/1)、XT2IN/XT2OUT(P5.2/3) 为普通 IO口,振荡功能禁止;FLL基准源、ACLK时钟源是 XT1CLK,晶振失效逻辑控制位作用下均切换到 REFOCLK,ACLK = 32768Hz;默认下FLL倍频为:31(FLLN值),DCOCLKDIV=(32+1)*32768 =1.047856MHz;默认下分频值 D=2(FLLD值),DCOCLK = 2*DCOCLKDIV = 2.097152MHz。 默认选择了使用 XT1的 FLL操作,为了启用 XT1功能,必须将与 XT1引脚对应的 PSEL置位。当 XT1CLK 使用

5、 32768Hz 晶振时,由于XT1不会立即稳定,失效逻辑控制位会立即选择 REFOCLK 作为 ACLK 时钟源。一旦晶体振荡稳定后,由于 FLL的作用,MCLK 和SMCLK 都将稳定在 1.047586MHz,Fdco稳定在 2.097152MHz。 状态寄存器(SCG0,SCG1,OSCOFF和CPUOFF)用于配置 MSP430的工作模式,使能和禁止 UCS模块中的部分功能(参考系统复位、中断和操作模式)。UCS 模块可以在程序运行中的任何时候进行配置和修改配置,配置使用寄存器 UCSCTL0UCSCTL8。 2.1 UCS模块在超低功耗方面的特性 为了保持长时间工作或降低功耗而采用

6、低时钟频率; 快速响应时间和快速数据处理能力需要高时钟频率; 适应各种工作温度和供电电压的稳定时钟; 低成本应用中使用准确度要求较少器件的时钟。 2.2 VLO 内部低功耗低频振荡器 内部 VLO能够在不需要任何外接晶振的情况下,提供 10KHz的时钟,在对时钟精度不敏感而对成本又非常敏感的场合,使用 VLO是一个非常好的选择。当 VLO 作为 ACLK、MCLK、SMCLK(SELA=1、SELM=1、SELS=1)中的任何一个时钟源时,开始启动振荡。 2.3 REFO 内部低频参考时钟 在对成本非常敏感时,通常不需要使用外部晶振,此时可以使用内部低频参考时钟。该时钟的典型频率值为32768

7、Hz,并可以作为用于稳定时钟模块 FLL所需要的参考时钟源 FLLREFCLK。REFO 和 FLL在不需要外接晶振的情况下,给了系统时钟设置一定的灵活性。REFO不使用时,不存在电流消耗。 REFO 在下面任何一种情况下,是处于工作允许状态的:在活动模式到 LPM3模式下,REFO 作为ACLK 的时钟源(SELA=2 OSCOFF=0);在活动模式下,REFO 作为 MCLK的时钟源(SELM=2 CPUOFF=0);在活动模式到 LPM1模式下时,REFO作为 SMCLK 的时钟源(SELS=2 SMCLKOFF=0);活动模式到LPM3模式下,REFO作为FLLREFCLK(SELRE

8、F=2)时钟源,DCO作为ACLK的时钟源(SE LA=3,4 OSCOFF=0)在活动模式下,REFO作为FLLREFCLK(SELREF=2)时钟源,DCO 作为 MCLK的时钟源(SELA=3,4 CPUOFF=0);活动模式到LPM1模式,REFO作为FLLREFCLK(SELREF=2)时钟源,DCO作为SMCLK时钟源(SELA=3,4 SMCLKOFF=0) 对于ACLK、MCLK、SMCLK的时钟源的选择由 UCSCTL4 控制寄存器决定: SELA Bits10-8 选择ACLK 的时钟源 000 XT1CLK 001 VLOCLK 010 REFOCLK 011 DCOCL

9、K 100 DCOCLKDIV 101 XT2CLK(可用),否则是DCOCLKDIV 110保留,XT2CLK(可用),否则是DCOCLKDIV 111 保留,XT2CLK(可用),否则是DCOCLKDIV SELS Bits6-4选择SMCLK 的时钟源 000 XT1CLK 001 VLOCLK 010 REFOCLK 011 DCOCLK 100 DCOCLKDIV 101 XT2CLK(可用),否则是DCOCLKDIV 110 保留。XT2CLK(可用),否则是DCOCLKDIV 111 保留。XT2CLK(可用),否则是DCOCLKDIV SELM Bits2-0 选择MCLK 的

10、时钟源 000 XT1CLK 001 VLOCLK010 REFOCLK 011 DCOCLK 100 DCOCLKDIV 101 XT2CLK(可用),否则是DCOCLKDIV 110 保留,XT2CLK(可用),否则是DCOCLKDIV 111 保留,XT2CLK(可用),否则是DCOCLKDIV ACLK、MCLK、SMCLK 时钟的输出(对应 P11.0/1/2)UCSCTL5 控制寄存器决定: DIVPA Bits14-12 外部引脚上可用的 ACLK 时钟源分频。对 ACLK 进行分频,外部引脚(P11.0)上输出。 000 fACLK/1 001 fACLK/2 010 fACL

11、K/4 011 fACLK/8 100 fACLK/16 101 fACLK/32 110 保留。默认是 fACLK/32 111 保留。默认是 fACLK/32 DIVA Bits 10-8 ACLK 时钟源分频。对 ACLK 时钟源进行分频。 000 fACLK/1 001 fACLK/2010 fACLK/4 011 fACLK/8 100 fACLK/16 101 fACLK/32 110 保留。默认是 fACLK/32 111 保留。默认是 fACLK/32 DIVS Bits 6-4 SMCLK 时钟源分频 000 fSMCLK/1 001 fSMCLK/2 010 fSMCLK/

12、4 011 fSMCLK/8 100 fSMCLK/16 101 fSMCLK/32 110 保留。fSMCLK/32 111 保留。fSMCLK/32 DIVM Bits2-0 MCLK 时钟源分频 000 fMCLK/1 001 fMCLK/2 010 fMCLK/4 011 fMCLK/8 100 fMCLK/16 101 fMCLK/32 110 保留。默认是 fMCLK/32111 保留。默认是 fMCLK/32 2.4 XT1 振荡器 XT1 为了支持低功耗模式,而支持在低频模式下(XTS=0)使用 32768Hz 时钟。晶振连接到 XIN 和XOUT,此时不需要任何其他外围器件,

13、软件可以通过 XCAP 位来设置 LF模式下 XT1 晶振的内部负载电容,负载电容可以由软件选择为2pF,6pF,9pF,12pF(典型值),也可以根据需要增加外接电容。 一些芯片在HF模式时 (XTS=1) 也支持高速晶振或者振荡器,高频晶振或振荡器连接到XIN 和 XOUT引脚时,两端口都需要接外部电容,电容的大小需要根据晶振或者振荡器的规格来选择。 LF 模式下,可以通过 XT1DRIVE位来提高 XT1 驱动能力。在上电时,为快速可靠启动可以设置 XT1DRIVE 位来快速启动。如果用户为了降低功耗,可以在需要时降低其驱动能力。在 HF模式时,可以通过选择适当的XT1DRIVE 值来满

14、足不同范围的晶振或振荡器。 无论是在LF还是HF模式下,都可以通过配置 XT1BYPASS 位,XT1 可以使用加载在 XIN脚上的外部时钟信号。当使用外部时钟信号时,外部信号的频率和选择的工作模式必须与数据手册上的参数相符合,当在BYPASS模式时,将关闭XT1 的振荡器电源。 上电时,默认操作是XT1,LF模式,但是XT1 将保持禁止状态,直到与 XT1复用的端口设置成 XT1 模式。复用 IO 口的配置由 XIN 和 XT1BYPASS 相关的 PSEL 决定。PSEL 置位,X1IN 和 X1OUT 端口将配置成 XT1 模式。如果 XT1BYPASS 也置位,XT1 将配置成 BYP

15、ASS 模式,XT1 相对应的振荡器将断电。在 BYPASS 模式下,XIN 可以接收外部时钟信号的输入,XOUT 配置成普通 IO口模式,这时与X1OUT相对应的PxSEL位可以不用关心。如果与XT1IN 对应的PSEL位清零,XT1IN 和 XT1OUT均被配置为普通 IO 口模式,XT1 将禁止。2.5XT2 振荡器 某些芯片有第二个晶振XT2, XT2CLK源自 XT2, 且在高频模式下, XT2的特性和XT1相同, XT2DRIVE位用来选择XT2的频率范围。通过配置 XT1BYPASS 位,可以使 XT2 可以使用加载在 XIN 脚的外部时钟信号,当使用外部时钟信号时,外部信号的频

16、率必须和选择的工作模式在数据手册上的参数相符合。 XT2管脚和普通I/O 口复用。上电后,默认为 XT2 模式,但是 XT2会一直保持禁止状态,直到与 XT2复用的端口通过PSEL设置成XT2模式。 复用IO口的配置由 XIN和 XT2BYPASS相关的PSEL决定,PSEL置位,X2IN 和X2OUT端口将配置成XT2模式、如果 XT2BYPASS也置位,XT2 将配置成 BYPASS模式,XT2 相对应的振荡电路将停止工作,在 BYPASS 模式下,XIN 可以接收外部时钟信号输入,X2OUT 配置成普通IO 口模式,这时与XOUT相对应的 PSEL位可以不用关心。 如果与 XT2IN 对

17、应的 PSEL 位清零,XT2IN 和 XT2OUT 均被配置为普通 IO 口模式。 关于 XT1、XT2 振荡器的配置由 UCSCTL6 控制寄存器决定: XT2DRIVE Bits15-14 XT2 的振荡电流可以调到需要的值。最初为了快速稳定起振,以最大电流开始。 需要时,用户软件可减小驱动。 00 最低电流消耗。 XT2的晶振频率范围在4MHz到8MHz。 01 驱动力稍增大。 XT2的晶振频率范围在8MHz到6MHz。 10 驱动力增大。 XT2的晶振频率范围在16MHz到24MHz。 11驱动力和电流消耗均达到最大。XT2 的晶振频率范围在24MHz 到 32MHz。XT2BYPA

18、SS Bit12 XT2 旁路模式选择0 XT2 由内部晶振提供。 1 XT2 由外部引脚输入。 XT2OFF Bit8 关闭XT2晶振。 0 如果XT2 通过端口选择,并且非旁路模式,那么 XT2被打开。 1 如果XT2 没有被用作 ACLK、 MCLK、以及SMCLK 的时钟源或者没有用作 FLL的基 准源,XT2 关闭。XT1DRIVE Bits7-6 XT1的振荡电流可以调到需要的值。最初为了快速稳定起振,以最大电流开始。需 要时,用户软件可减小驱动。 00 XT1 低频模式下,最低电流消耗 XT1 在高频模式下晶振频率范围在4MHz-8MHz 01 XT1 低频模式下,驱动力稍增大

19、XT1在高频模式下的晶振频率范围在8MHz-16MHz 10XT1 低频模式下,驱动力增大 XT1 在高频模式下晶振频率范围在 16-24MHz 11 驱动力和电流消耗均达到最大。XT1在高频模式下晶振频率范围在 24MHz-32MHz XTS Bit5 XT1 模式选择 0 低频模式。XCAP定义 XIN 和XOUT两个引脚的电容。 1 高频模式。该位没有使用。 XT1BYPASS Bit4 XT1 旁路模式 0 XT1 有内部晶振提供。 1 XT1 由外部引脚输入。XCAP Bit3-2 振荡电容选择,这些位选择LF模式下用于 LF振荡器的电容。等效电容 Ceff= (Cxin+2pF)/

20、2。前提是假定 Cxin=Cout,并且由于封装以及布板的原因产生 2pF左 右的寄生电容。关于典型内部及有效电容的细节,参见数据手册的相关章节。SMCLKOFF Bit1 SMCLK 关闭。该位用来关闭 SMCLK。 0SMCLK 开启 1SMCLK 关闭 XT1OFF Bit0 关闭XT1晶振 0如果XT1 已经通过端口选择,并且非旁路模式,那么XT1 被打开。 1如果XT1没有用作ACLK、MCLK以及SMCLK的时钟源或没有用作FLL的校准源,XT1关闭2.6 DCO 数字控制振荡器 DCO 是内部集成的数字频率振荡器。DCO 频率可以通过软件配置 DCORSEL、DCO 和 MOD

21、位来调整,DCO 频率可以经过 FLL 得到稳定的多种频率(FLLREFCLK/n),这点是可以通过软件选择的。FLL可以通过SELREF位来选择的不同参考时钟源。参考时钟源包含XT1、REFOCLK 或者XT2CLK(如果可用)。n 的值由 FLLREFDIV(n=1,2,4,8,12,16)定义,默认 n=1。在不需要 FLL 的场合,也就不需要FLLREFCLK 了,这时可以通过设置SELREF=7来实现。 FLLD 可将FLL分频器的值 D配置为1、2、4、8、16、32,默认情况下 D=2; FLLN 位决定分频因子 (N+1),默认下 N = 31。分频因子(N+1)和分频值D 定

22、义了 N0 时的DCOCLK 和 DCOCLKDIV,N值必须大于 0,对FLLN写0将使N 置1。 f DCOCLK = D (N + 1) (f FLLREFCLK n) f DCOCLKDIV = (N + 1) (f FLLREFCLK n) 2.6.1 DCO频率调整 默认情况下,FLL功能是允许的,可以通过置位SCG0或 SCG1 来禁止 FLL。一旦 FLL被禁止,DCO将在寄存器UCSCTL0和UCSCTL1定义的当前设置下继续工作;DCO频率也可以在需要的时候手动调整,否则,DCO的频率将由FLL来稳定。PUC后,DCORSELx = 2、DCOx = 0。DCOCLKDIV

23、为 MCLK 和 SMCLK 提供时钟源。由于 CPU 执行代码的时钟来自MCLK,而MCLK 由DCO提供,所以从上电复位到执行代码的时间小于 5us。 DCOCLK 的频率由以下方式设置:1)DCORSEL位为3时,从8个频率范围中选择 1 个频率。具体可查看数据手册。 2)DCORSEL选择5,将DCO 分成 32个频率级别,相邻两个级大约相差 8%。 3)MOD 为5, 将在 DCO选择的频率和DCO+1设置的下一更高频率中转换。如果 DCO=31,MOD位不起作用,因为DCO 频率已经是由DCORSEL选择的频率范围的最大值。 2.6.2 DCO调制器 调制器混合两个 DCO 的频率

24、:fDCO和 fDCO+1,来产生一个有效的中间频率,提高时钟驱动,减少电磁干扰。调制器通过配置 MOD 位,在32 个DCOLK 时钟周期中混合 fDCO和 fDCO+1。当 MOD=0时调制器关闭。 调制器混频公式如下: T=(32-MOD) tDCO+MODtDCO+1 调制器操作如图所示: 当 FLL 模块允许时下,DCO 调制器是由 FLL 硬件控制。如果不希望 FLL 工作,DCO 调制器设置需由软件来配置。2.7 FLL 锁频环 锁频环可以对频率积分器进行连续加或减。用于驱动 DCO 的频率积分器的值可以从寄存器UCSCTL0, UCSCTL1 (MODx和DCOx位)中读出。

25、计数器的值可以用 fFLLREFCLK/n (n = 1, 2, 4, 8, 12, or 16)加一调整或者用 fDCOCLK/(D*(N+1)减一调整。 积分器中的5位(UCSCTL0812位)用于设置 DCO 频率,DCO 设置了32 节拍,每一频率大约比前面的高出约8%,调制器混合两个相邻的DCO 频率产生 1个小数节拍。对于给定DCO 偏差范围设定,为了使DCO 正常操作,要给 DCO 一段时间来稳定,一般需要 (n32)fFLLREFCLK个周期,在最坏情况下需要(n3232) fFLLREFCLK周期。其中的 n值由 FLLREFDIVX(1、2、4、8、12、16)来定义。 D

26、CO Bits12-8 DCOtap选择,这些位可以选择DCOtap,在FLL操作中,可自动修改。 MOD Bits7-3 调制位计数器,这些位选择调制模式所有的MOD位在FLL操作中,自动修改。 调制位计数器从 31 到0 时,DCO 寄存器值增加。调制位计数器从 0减至最大计数时, DCO同样减小。 DCORSEL Bits6-4 DCO 频率范围选择,这些位选择操作的 DCO频率范围。 DISMOD Bits0 调整器,该位使能/禁止调制器。 0 调整器使能 1 调整器禁止FLLD Bits14-12 锁频环分频器,在 FLL反馈环中这些位除 fDCOCLK,这使乘数位产生另外的乘数。

27、000 fDCOCLK/1 001 fDCOCLK/2 010 fDCOCLK/4 011 fDCOCLK/8 100 fDCOCLK/16 101 fDCOCLK/32 110 保留,默认 fDCOCLK/32 111 保留,默认 fDCOCLK/32 FLLN Bits9-0 乘数位,这些位设置DCO 的乘数值,N 必须大于 0。对FLLN写0,将使N 置 1。 SELREF Bits6-4 FLL基准源选择。这些位选择 FLL基准时钟源。 000 XT1CLK 001 保留备用,默认是 XT1CLK 010 REFOCLK 011 保留备用,默认是 REFOCLK 100 保留备用,默认

28、是 REFOCLK 101 XT2CLK(如果可用),否则 REFOCLK 110 保留备用 XT2CLK(如果可用),否则 REFOCLK 111 无选项,只针对F543X以及F541x非A版本,XT2CLK(如果可用),否则 REFOCLKFLLREFDIV Bits2-0 FLL 基准源分频,定义fFLLREFCLK分频因子,分频后的频率就被用作FLL基准频率 000 fFLLREFCLK/1 001 fFLLREFCLK/2010 fFLLREFCLK/4 011 fFLLREFCLK/8 100 fFLLREFCLK/12 101 fFLLREFCLK/16 110 保留,默认 fF

29、LLREFCLK/16 111 保留,默认 fFLLREFCLK/16eg.#include msp430x54x.hvoid main(void) WDTCTL = WDTPW+WDTHOLD; / Stop WDT P2DIR |=BIT2; / P1.0 outputP11DIR |= 0x07; / ACLK, MCLK, SMCLK set out to pins P11SEL |= 0x07; / P11.0,1,2 for debugging purposes. UCSCTL3 |= SELREF_2;/ Set FLL reference = REFO, FLL基准源为REFO

30、CLK,基准源分频因子n为默认1 UCSCTL4 |= SELA_2;/ Set ACLK = REFO _bis_SR_register(SCG0);/ Disable the FLL control loop UCSCTL0 = 0x0000; / Set lowest possible DCOx, MODx UCSCTL1 = DCORSEL_5(0x0050); / Select DCO range 16MHz operation, DCOx = 0, MODx = 0 UCSCTL2 = FLLD_1 + 244; / Set DCO Multiplier for 8MHz, /DC

31、O倍频后((DCOCLKDIV)为8M,FLLD_1分频值D=2 / D*(N + 1) * fFLLREFCLK/n = fDCOCLK,2*(244 + 1) * 32768/1 = 16MHz /(N + 1) *fFLLREFCLK/n= fDCOCLKDIV,(244+1)*32768/1=8.355840M(Fdco)_bic_SR_register(SCG0);/ Enable the FLL control loop / Worst-case settling time for the DCO when the DCO range bits have been / change

32、d is n x 32 x 32 x f_MCLK / f_FLL_reference. See UCS chapter in 5xx / UG for optimization. / 32 x 32 x 8 MHz / 32,768 Hz = 250000 = MCLK cycles for DCO to settle _delay_cycles(250000);do/ Loop until XT1,XT2 & DCO fault flag is cleared UCSCTL7 &= (XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG); / Clear XT

33、2,XT1,DCO fault flags SFRIFG1 &= OFIFG; / Clear fault flags 清除失效标志 while (SFRIFG1&OFIFG); / Test oscillator fault flag while(1) P2OUT =BIT2; / Toggle P1.0 _delay_cycles(600000); / Delay XT2OFFG Bit3 XT2 晶振故障标志位,假如该位置位,那么OFIFG 也置位。只要XT2 故障条件存 XT2OFFG 标志位就会置位,XT2OFFG 可以通过软件清零。 0 上一次复位之后没有故障条件产生 1 XT2

34、故障,上一次复位之后出现故障条件XT1HFOFFG Bit2 XT1 晶振故障标志位(高频模式),假如该位置位,那么 OFIFG 也置位。只要XT1故障 条件存在 XT1HFOFFG 标志位就会置位,XT1HFOFFG 可以通过软件清零。 0 上一次复位之后没有故障条件产生1XT1 故障(高频),上一次复位之后出现故障条件XT1LFOFFG Bit1 XT1 晶振故障标志位(低频模式),假如该位置位,那么 OFIFG 也会置位。只要XT1故障条件存在XT1LFOFFG 标志位就会置位,XT1LFOFFG 可以通过软件清零。 0 最近一次复位之后没有故障条件产生 1 XT1 故障(低频),最近一

35、次复位之后出现 XT1(LF)故障条件 DCOFFG Bit0 DCO 故障标志,假如该位置位,那么OFIFG 也会置位。如果DCO=0或者DCO=31, DCOFFG 标志位就会置位,DCOOFFG可以通过软件清零。0 上一次复位之后没有故障条件产生 1DCO 故障,上一次复位之后出现DCO 故障条件OFIFG 是晶振故障中断标志,属于用户非可屏蔽中断。上电复位或检测到振荡故障(XT1LFOFFG、XT1HFOFFG、XT2OFFG)时,振荡故障中断标志 OFIFG置位。如果OFIFG置位,并且OFIE 置位,FIFG 将产生不可屏蔽中断请求(无论 GIE 状态,GIE 为可屏蔽中断的总中断

36、允许位)OFIFG 位于特殊功能寄存器中断标志寄存器 SFRIFG1 中 OFIFG Bit1 晶振故障中断标志 0 没有中断产生 1 有中断产生 WDTIFG Bit0 看门狗中断标志。看门狗模式下,WDTIFG位一直为1,直到由用户软件复位。在间隔模 式,通过响应中断服务程序复位或用户软件复位。由于IFG1中的其他位可能用于其他的模块,建议使用BIS.B或BIC.B指令来清除WDTIFG,而不是MOV B 或 CLR B指令。 0 没有中断产生1 有中断产生 NMIIFG Bit4 不可屏蔽中断引脚中断标志 0 没有中断产生 1 有中断产生VMAIFG Bit3 空白内存访问中断标志 0

37、没有中断产生1 有中断产生 对应特殊功能寄存器中的中断使能寄存器ACCVIE Bit5 FLASH控制器非法访问中断使能 0 中断禁止 1 中断允许 NMIIE Bit4 不可屏蔽中断引脚中断使能 0 中断禁止 1 中断允许VMAIE Bit3 空白内存访问中断使能 0 中断禁止 1 中断允许 OFIE Bit1 晶振失效中断使能 0 中断禁止 1 中断允许WDTIE Bit0 看门狗定时器中断使能。该位使看门狗工作在间隔定时器模式下,如果设置在看门狗模 式,无需将该位置位。由于IE1可能用于其他模块,建议使用BIS B 或BIC B 来置位或 清零,而不是 MOV B 或CLRB指令。 0

38、中断禁止 1 中断允许 2.8 UCS模块自动失效安全操作 UCS 中模块有振荡器实现失效时的自动保护特性。这个功能可以检测 XT1、DCO、XT2 的振荡器故障,如图所示: 失效条件有: XT1 在 LF模式下低频振荡失效(XT1LFOFFG); XT1 在 HF模式下高频振荡失效(XT1HFOFFG); XT2 高频振荡失效(XT2OFFG); DCO 失效标志(DCOFFG); 如果相应的振荡功能打开但不能正常运行,则相应的晶振失效位 XT1LFOFFG、XT1HFOFFG 和XT2OFFG 将置位。而且一旦置位,失效标志(OFIFG)则不论失效条件是否还存在,都将一直保持置位,直到软件

39、复位。如果用户清除了失效标志位,但失效条件依然存在的话,则失效标志位会自动重新置位,否则,保持清零。 当选择 LF 模式下的 XT1 作为 FLL的参考信号源时,晶振失效将使 FLL 的参考信号源 FLLREFCLK切换到REFO,同时XT1LFOFFG 置位;当选择 HF模式下的 XT1 作为 FLL的参考信号源时,XT1失效时将导致 FLLREFCLK 信号丢失,FLL 继续倒数到 0,并尝试锁定 FLLREFCLK 和 DCOCLK/(DN+1),DCO 降到最低频率的节拍位置(DCO 被清除),DCOFFG 置位;对于给定的 DCO 频率范围,如果 DCO倍频器的值过高,使 DCO频率

40、达到了最高的节拍位置(UCSCTL0.12UCSCTL0.8 置位),DCOOFF 也同样会置位。DCOFFG 置位后将一直保持,直到软件将其清除,如果用户清除了 DCOFFG 位,但是故障条件依然存在的话,DCOFFG 会再次置位,否则保持清零,XT1HFOFFG 置位。 当使用XT2 作为FLL的参考信号源时,其操作也同样如此。 上电复位或检测到振荡故障(XT1LFOFFG、 XT1HFOFFG,、 XT2OFFG)时,振荡故障中断标志 OFIFG置位。如果OFIFG 置位, 并且OFIE 置位, OFIFG 将产生不可屏蔽中断请求。 中断允许后,如前面的 MSP430系列一样,OFIE

41、不会自动复位,这是由不可屏蔽中断电路产生的,此时,OFIE 必须由软件复位。具体的时钟故障源可以通过检查相应的时钟故障标志位来确定。 如果检测到 MCLK 时钟源振荡故障,将自动切换到DCO 时钟(DCOCLKDIV)作为除 XT1 低频模式外的所有的时钟源;如果MCLK 来自于低频模式的 XT1,振荡故障将自动转换 REFO作 MCLK时钟源。这并不会改变SELM的设置,此时必须由软件处理。 如果检测到 SMCLK 时钟源振荡故障,将自动切换到 DCO 时钟(DCOCLKDIV)作为除 XT1 低频模式外的所有的时钟源;如果SMCLK 来自于低频模式的XT1,振荡故障将自动转换 REFO作

42、SMCLK时钟源。这同样不会改变SELS的设置,也必须由软件处理。 如果检测到 ACLK 时钟源振荡故障,将自动切换到DCO 时钟(DCOCLKDIV)作为除 XT1 低频模式外的所有的时钟源;如果 ACLK 来自于低频模式的 XT1,振荡故障将自动转换 REFO作 ACLK时钟源。SELA的设置不会改变,需要软件来处理这种情况。2.9 在低功耗模式下的 FLL、外部模块的请求操作 如果 SCG1、CPUOFF、OSCOFF 置位,中断服务请求将其清除,但是 SCG0 除外,也就是说,当从LPM1、2、3、4进入中断服务程序后,FLL仍然禁止,此时 DCO 工作在之前 UCSCTL0 和 UC

43、SCTL1 寄存器设置的模式下;此时如果需要FLL工作,则可以由用户软件清除 SCG0 位。 外部模块可以自动的从UCS模块中请求时钟源,而不用关心当前的工作模式。 外围模块可以通过ACLK_REQ、MCLK_REQ、SMCLK_REQ 这三个控制位中的任何一个来产生请求信号,这个请求信号是建立在相应模块时钟选择和配置的基础上的。例如:如果定时器选择了ACLK 作为时钟源,定时器允许时,定时器会向UCS系统发出ACLK_REQ请求信号,此时,UCS则不管当前LPM的设置,都会允许输出ACLK 信号。 来自外围模块的任何时钟请求信号都将导致其相关的时钟停止信号忽略,但是并不改变时钟停止控制位的设置。例如,某外围模块可能需要当前被 OSCOFF 停止的 ACLK 信号(OSCOFF=1),这时外围模块可以请求一个 ACLK_REQ产生的 ACLK,此时 OSCOFF 位无效,因此 ACLK 对发出请求的外围模块就是可用的,OSCOFF 仍保持当前值。 如果请求的时钟是不活动的,软件不可屏蔽中断处理程序就必须要处理这个请求。在前面的例子中,如果 ACLK 来自 XT1,且 XT1 是禁止的,此

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论