关于(单片机)msp430的时钟资料全.doc

上传人:可****阿 文档编号:77745560 上传时间:2023-03-16 格式:DOC 页数:22 大小:518KB
返回 下载 相关 举报
关于(单片机)msp430的时钟资料全.doc_第1页
第1页 / 共22页
关于(单片机)msp430的时钟资料全.doc_第2页
第2页 / 共22页
点击查看更多>>
资源描述

《关于(单片机)msp430的时钟资料全.doc》由会员分享,可在线阅读,更多相关《关于(单片机)msp430的时钟资料全.doc(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

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

3、LK 经过 FLL 分频后可得 DCOCLKDIV。UCS 模块可以提供 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 模式;如果有

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

5、为了启用 XT1 功能,必须将与 XT1 引脚对应的PSEL 置位。当 XT1CLK 使用 32768Hz 晶振时,由于 XT1 不会立即稳定,失效逻辑控制位会立即选择 REFOCLK 作为 ACLK 时钟源。一旦晶体振荡稳定后,由于 FLL 的作用,MCLK 和 SMCLK 都将稳定在 1.047586MHz,Fdco 稳定在 2.097152MHz。状态寄存器(SCG0,SCG1,OSCOFF 和 CPUOFF)用于配置 MSP430 的工作模式,使能和禁止 UCS 模块中的部分功能(参考系统复位、中断和操作模式)。UCS 模块可以在程序运行中的任何时候进行配置和修改配置,配置使用寄存器U

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

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

8、(SELS=2SMCLKOFF=0);活动模式到 LPM3 模式下,REFO 作为 FLLREFCLK(SELREF=2)时钟源,DCO 作为ACLK 的时钟源(SELA=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 控制寄存器决定:SE

9、LA Bits10-8 选择 ACLK 的时钟源000XT1CLK001VLOCLK010REFOCLK011DCOCLK100DCOCLKDIV101XT2CLK(可用),否则是 DCOCLKDIV110保留,XT2CLK(可用),否则是 DCOCLKDIV111保留,XT2CLK(可用),否则是 DCOCLKDIVSELS Bits6-4选择 SMCLK 的时钟源000XT1CLK001VLOCLK010REFOCLK011DCOCLK100DCOCLKDIV101XT2CLK(可用),否则是 DCOCLKDIV110保留。XT2CLK(可用),否则是 DCOCLKDIV111保留。XT2

10、CLK(可用),否则是 DCOCLKDIV6/22SELM Bits2-0选择 MCLK 的时钟源000XT1CLK001VLOCLK010REFOCLK011DCOCLK100DCOCLKDIV101XT2CLK(可用),否则是 DCOCLKDIV110保留,XT2CLK(可用),否则是 DCOCLKDIV111保留,XT2CLK(可用),否则是 DCOCLKDIVACLK、MCLK、SMCLK 时钟的输出(对应 P11.0/1/2)UCSCTL5 控制寄存器决定:DIVPA Bits14-12 外部引脚上可用的 ACLK 时钟源分频。对 ACLK 进行分频,外部引脚(P11.0)上输出。0

11、00 fACLK/1001 fACLK/2010 fACLK/4011 fACLK/8100 fACLK/16101 fACLK/32110 保留。默认是 fACLK/32111 保留。默认是 fACLK/32DIVA Bits 10-8 ACLK 时钟源分频。对 ACLK 时钟源进行分频。000 fACLK/1001 fACLK/2010 fACLK/4011 fACLK/8100 fACLK/16101 fACLK/32110 保留。默认是 fACLK/32111 保留。默认是 fACLK/32DIVS Bits 6-4 SMCLK 时钟源分频000fSMCLK/1001fSMCLK/20

12、10fSMCLK/47/22011fSMCLK/8100fSMCLK/16101fSMCLK/32110保留。fSMCLK/32111保留。fSMCLK/32DIVM Bits2-0 MCLK 时钟源分频000fMCLK/1001fMCLK/2010fMCLK/4011fMCLK/8100fMCLK/16101fMCLK/32110 保留。默认是 fMCLK/32111 保留。默认是 fMCLK/322.4 XT1 振荡器XT1 为了支持低功耗模式,而支持在低频模式下(XTS=0)使用 32768Hz 时钟。晶振连接到 XIN 和 XOUT,此时不需要任何其他外围器件,软件可以通过 XCAP

13、位来设置 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 将配置成 BY

15、PASS 模式,XT1 相对应的振荡器将断电。在 BYPASS 模式下,XIN 可以接收外部时钟信号的输入,XOUT 配置成普通 IO 口模式,这时与 X1OUT 相对应的 PxSEL 位可以不用关心。8/22如果与 XT1IN 对应的 PSEL 位清零,XT1IN 和 XT1OUT 均被配置为普通 IO 口模式,XT1 将禁止。2.5 XT2 振荡器某些芯片有第二个晶振 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 口模式,这时与

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

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

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

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

21、CO 频率可以通过软件配置 DCORSEL、DCO 和MOD 位来调整,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 位决

22、定分频因子(N+1),默认下 N=31。分频因子(N+1)和分频值 D 定义了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 的频率将由 F

23、LL 来稳定。PUC后,DCORSELx=2、DCOx=0。DCOCLKDIV 为 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 频率

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

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

26、2)fFLLREFCLK周期。其中的 n 值由 FLLREFDIVX(1、2、4、8、12、16)来定义。12/22DCO Bits12-8 DCOtap 选择,这些位可以选择 DCOtap,在 FLL 操作中,可自动修改。MOD Bits7-3 调制位计数器,这些位选择调制模式所有的 MOD 位在 FLL 操作中,自动修改。调制位计数器从 31 到 0 时,DCO 寄存器值增加。调制位计数器从 0 减至最大计数时,DCO 同样减小。DCORSEL Bits6-4 DCO 频率围选择,这些位选择操作的 DCO 频率围。DISMODBits0 调整器,该位使能/禁止调制器。0调整器使能1调整器禁

27、止FLLD Bits14-12 锁频环分频器,在 FLL 反馈环中这些位除 fDCOCLK,这使乘数13/22位产生另外的乘数。000fDCOCLK/1001fDCOCLK/2010fDCOCLK/4011fDCOCLK/8100fDCOCLK/16101fDCOCLK/32110保留,默认 fDCOCLK/32111保留,默认 fDCOCLK/32FLLN Bits9-0 乘数位,这些位设置 DCO 的乘数值,N 必须大于 0。对 FLLN 写0,将使 N 置 1。SELREF Bits6-4 FLL 基准源选择。这些位选择 FLL 基准时钟源。000XT1CLK001保留备用,默认是 XT

28、1CLK010REFOCLK011保留备用,默认是 REFOCLK100保留备用,默认是 REFOCLK101XT2CLK(如果可用),否则 REFOCLK110保留备用 XT2CLK(如果可用),否则 REFOCLK111无选项,只针对 F543X 以与 F541x 非 A 版本,XT2CLK(如果可用),否则 REFOCLKFLLREFDIV Bits2-0 FLL 基准源分频,定义 fFLLREFCLK 分频因子,分频后的频率就被用作 FLL 基准频率000fFLLREFCLK/1001fFLLREFCLK/2010fFLLREFCLK/4011fFLLREFCLK/8100fFLLRE

29、FCLK/12101fFLLREFCLK/16110保留,默认 fFLLREFCLK/16111保留,默认 fFLLREFCLK/16eg.14/22#include msp430 x54x.hvoid main(void)WDTCTL=WDTPW+WDTHOLD;/Stop WDTP2DIR|=BIT2;/P1.0 outputP11DIR|=0 x07;/ACLK,MCLK,SMCLK set out to pinsP11SEL|=0 x07;/P11.0,1,2 for debugging purposes.UCSCTL3|=SELREF_2;/Set FLL reference=REF

30、O,FLL 基准源为 REFOCLK,基准源分频因子 n 为默认 1UCSCTL4|=SELA_2;/Set ACLK=REFO_bis_SR_register(SCG0);/Disable the FLL control loopUCSCTL0=0 x0000;/Set lowest possible DCOx,MODxUCSCTL1=DCORSEL_5(0 x0050);/Select DCO range 16MHz operation,DCOx=0,MODx=0UCSCTL2=FLLD_1+244;/Set DCO Multiplier for 8MHz,/DCO 倍频后((DCOCLK

31、DIV)为 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/changed is n x 32 x 32 x f_MCLK/f_FLL_re

32、ference.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 clearedUCSCTL7&=(XT2OFFG+XT1LFOFFG+XT1HFOFFG+DCOFFG);/ClearXT2,XT1,DCO fault flagsSFRIFG1&=OFIFG;/Clear fault flags 清除失效标志wh

33、ile(SFRIFG1&OFIFG);/Test oscillator fault flagwhile(1)P2OUT=BIT2;/Toggle P1.0_delay_cycles(600000);/Delay15/22XT2OFFG Bit3 XT2 晶振故障标志位,假如该位置位,那么 OFIFG 也置位。只要XT2 故障条件存XT2OFFG 标志位就会置位,XT2OFFG 可以通过软件清零。0 上一次复位之后没有故障条件产生1 XT2 故障,上一次复位之后出现故障条件XT1HFOFFG Bit2 XT1 晶振故障标志位(高频模式),假如该位置位,那么OFIFG 也置位。只要 XT1 故障条

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

35、G 标志位就会置位,DCOOFFG 可以通过软件清零。0上一次复位之后没有故障条件产生1DCO 故障,上一次复位之后出现 DCO 故障条件16/22OFIFG 是晶振故障中断标志,属于用户非可屏蔽中断。上电复位或检测到振荡故障(XT1LFOFFG、XT1HFOFFG、XT2OFFG)时,振荡故障中断标志 OFIFG 置位。如果OFIFG 置位,并且 OFIE 置位,FIFG 将产生不可屏蔽中断请求(无论 GIE 状态,GIE 为可屏蔽中断的总中断允许位)OFIFG 位于特殊功能寄存器中断标志寄存器 SFRIFG1 中OFIFG Bit1 晶振故障中断标志0没有中断产生1有中断产生WDTIFG

36、Bit0 看门狗中断标志。看门狗模式下,WDTIFG 位一直为 1,直到由用户软件复位。在间隔模式,通过响应中断服务程序复位或用户软件复位。由于IFG1 中的其他位可能用于其他的模块,建议使用 BIS.B 或 BIC.B 指令来清除 WDTIFG,而不是 MOV B或 CLR B 指令。0没有中断产生1有中断产生NMIIFG Bit4 不可屏蔽中断引脚中断标志0没有中断产生1有中断产生VMAIFG Bit3 空白存访问中断标志0没有中断产生1有中断产生对应特殊功能寄存器中的中断使能寄存器17/22ACCVIE Bit5 FLASH 控制器非法访问中断使能0中断禁止1中断允许NMIIE Bit4

37、 不可屏蔽中断引脚中断使能0中断禁止1中断允许VMAIE Bit3 空白存访问中断使能0中断禁止1中断允许OFIE Bit1 晶振失效中断使能0中断禁止1中断允许WDTIE Bit0 看门狗定时器中断使能。该位使看门狗工作在间隔定时器模式下,如果设置在看门狗模式,无需将该位置位。由于IE1 可能用于其他模块,建议使用 BIS B或 BIC B 来置位或清零,而不是 MOV B 或 CLRB 指令。0中断禁止1中断允许2.8 UCS 模块自动失效安全操作UCS 中模块有振荡器实现失效时的自动保护特性。这个功能可以检测 XT1、DCO、XT2 的振荡器故障,如图所示:18/22失效条件有:XT1

38、在 LF 模式下低频振荡失效(XT1LFOFFG);XT1 在 HF 模式下高频振荡失效(XT1HFOFFG);XT2 高频振荡失效(XT2OFFG);DCO 失效标志(DCOFFG);如果相应的振荡功能打开但不能正常运行,则相应的晶振失效位 XT1LFOFFG、XT1HFOFFG 和 XT2OFFG 将置位。而且一旦置位,失效标志(OFIFG)则不论失效条件是否还存在,都将一直保持置位,直到软件复位。如果用户清除了失效标志位,但失效条件依然存在的话,则失效标志位会自动重新置位,否则,保持清零。19/22当选择 LF 模式下的 XT1 作为 FLL 的参考信号源时,晶振失效将使 FLL 的参考

39、信号源 FLLREFCLK 切换到 REFO,同时 XT1LFOFFG 置位;当选择 HF 模式下的 XT1 作为FLL 的参考信号源时,XT1 失效时将导致 FLLREFCLK 信号丢失,FLL 继续倒数到 0,并尝试锁定 FLLREFCLK 和 DCOCLK/(DN+1),DCO 降到最低频率的节拍位置(DCO 被清除),DCOFFG 置位;对于给定的 DCO 频率围,如果 DCO 倍频器的值过高,使 DCO 频率达到了最高的节拍位置(UCSCTL0.12UCSCTL0.8 置位),DCOOFF也同样会置位。DCOFFG 置位后将一直保持,直到软件将其清除,如果用户清除了DCOFFG 位,

40、但是故障条件依然存在的话,DCOFFG 会再次置位,否则保持清零,XT1HFOFFG 置位。当使用 XT2 作为 FLL 的参考信号源时,其操作也同样如此。上电复位或检测到振荡故障(XT1LFOFFG、XT1HFOFFG,、XT2OFFG)时,振荡故障中断标志 OFIFG 置位。如果 OFIFG 置位,并且 OFIE 置位,OFIFG 将产生不可屏蔽中断请求。中断允许后,如前面的 MSP430 系列一样,OFIE 不会自动复位,这是由不可屏蔽中断电路产生的,此时,OFIE 必须由软件复位。具体的时钟故障源可以通过检查相应的时钟故障标志位来确定。如果检测到 MCLK 时钟源振荡故障,将自动切换到

41、 DCO 时钟(DCOCLKDIV)作为除 XT1 低频模式外的所有的时钟源;如果 MCLK 来自于低频模式的 XT1,振荡故障将自动转换 REFO 作 MCLK 时钟源。这并不会改变 SELM 的设置,此时必须由软件处理。如果检测到 SMCLK 时钟源振荡故障,将自动切换到 DCO 时钟(DCOCLKDIV)作为除 XT1 低频模式外的所有的时钟源;如果 SMCLK 来自于低频模式的 XT1,振荡故障将自动转换 REFO 作 SMCLK 时钟源。这同样不会改变 SELS 的设置,也必须由软件处理。如果检测到 ACLK 时钟源振荡故障,将自动切换到 DCO 时钟(DCOCLKDIV)作为除XT

42、1 低频模式外的所有的时钟源;如果 ACLK 来自于低频模式的 XT1,振荡故障将自动转换 REFO 作 ACLK 时钟源。SELA 的设置不会改变,需要软件来处理这种情况。2.9 在低功耗模式下的 FLL、外部模块的请求操作如果 SCG1、CPUOFF、OSCOFF 置位,中断服务请求将其清除,但是 SCG0 除外,也就是说,当从 LPM1、2、3、4 进入中断服务程序后,FLL 仍然禁止,此时 DCO 工作在之前 UCSCTL0 和 UCSCTL1 寄存器设置的模式下;此时如果需要 FLL 工作,则可以由用户软件清除 SCG0 位。20/22外部模块可以自动的从 UCS 模块中请求时钟源,

43、而不用关心当前的工作模式。外围模块可以通过 ACLK_REQ、MCLK_REQ、SMCLK_REQ 这三个控制位中的任何一个来产生请求信号,这个请求信号是建立在相应模块时钟选择和配置的基础上的。例如:如果定时器选择了 ACLK 作为时钟源,定时器允许时,定时器会向 UCS 系统发出 ACLK_REQ 请求信号,此时,UCS 则不管当前 LPM 的设置,都会允许输出 ACLK 信号。来自外围模块的任何时钟请求信号都将导致其相关的时钟停止信号忽略,但是并不改变时钟停止控制位的设置。例如,某外围模块可能需要当前被 OSCOFF 停止的ACLK 信号(OSCOFF=1),这时外围模块可以请求一个 AC

44、LK_REQ 产生的 ACLK,此时 OSCOFF 位无效,因此 ACLK 对发出请求的外围模块就是可用的,OSCOFF 仍保持当前值。如果请求的时钟是不活动的,软件不可屏蔽中断处理程序就必须要处理这个请求。在前面的例子中,如果 ACLK 来自 XT1,且 XT1 是禁止的,此时将产生一个振荡失效标志,此时需要软件处理。由于看门狗的有安全性的要求,如果先前选择的时钟源不可用,将自动选择 VLOCLK 作为时钟源。由于有时钟请求信号这个特性,所以在实际应用中,要注意进入低功耗模式的情况。虽然选择了低功耗模式,但时钟请求造成的功耗仍会大于数据手册中的值。21/222.10 与时钟、FLL 有关的状

45、态寄存器(SR)SCG1 系统时钟发生器 1,当置位时,如果 MCLK 或 SMCLK 没有使用 DCOCLK 时将关闭 DCO 的直流发生器SCG0 系统时钟发生器 0,当置位时,将关闭 FLL 模块OSCOFF 晶振关闭,当置位时,如果 MCLK 或 SMCLK 没有使用 LFXT1CLK 时将关闭LFXT1 晶振震荡器CPUOFF CPU 关闭位,当置位时,将关闭 CPUGIE总中断允许位,当置位时,将允许所有的可屏蔽中断,否则将禁止所有可屏蔽中断。eg.(启用 XT1)void HardInit(void)_disable_interrupt();WDTCTL=WDTPW+WDTHOL

46、D;/看门狗禁止。SetVCoreUp(PMMCOREV_3);P7SEL|=0 x03;/Select XT1UCSCTL6&=(XT1OFF);/XT1 OnUCSCTL6|=XCAP_3;/0 x000C 选择 XT1 由部晶振提供、与振荡电容选择do/Loop until XT1 fault flag is clearedUCSCTL7&=XT1LFOFFG;/Clear XT1 fault flagswhile(UCSCTL7&XT1LFOFFG);/Test XT1 fault flagUCSCTL3|=SELREF_2;/Set DCO FLL reference=REFO22/

47、22UCSCTL4|=SELA_XT1CLK;/Set ACLK=XT1CLK MCLK、SMCLK 默认_bis_SR_register(SCG0);/Disable the FLL control loopUCSCTL0=0 x0000;/Set lowest possible DCOx,MODxUCSCTL1=DCORSEL_6;/Select DCO range 24MHz operationUCSCTL2=FLLD_1+760;/(N+1)*FLLRef=Fdco(DCOCLKDIV)(760+1)*32768=24.936448MHz/Fdcoclkdiv*D=Fdcoclk Se

48、t FLL Div=fDCOCLK/2 D=2_bic_SR_register(SCG0);/Enable the FLL control loop_delay_cycles(782000);/Loop until XT1,XT2&DCO stabilizesdoUCSCTL7&=(XT2OFFG+XT1LFOFFG+XT1HFOFFG+DCOFFG);/Clear XT2,XT1,DCO fault flagsSFRIFG1&=OFIFG;/Clear fault flagswhile(SFRIFG1&OFIFG);/Test oscillator fault flag_enable_interrupt();

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁