时钟系统 注:msp5419/38中,如果你使用SMCLK做TIMER_A的时钟,那么进入低功耗3或低功耗4是不会把SMCLK关 掉的,这点5系列和其他系列的不一样。
UCS模块是一个低成本超低功耗系统,通过选择使用3个内部时钟信号,用户可以得到性能和功耗的
最佳平衡点。UCS可以由软件配置其工作模式,如配置成:不需要任何外部器件、使用 1或 2个外部晶振等。
一、时钟系统
UCS模块具有5个时钟源:
XT1CLK:低频/高频振荡器,既可以与低频 32768HZ钟振、标准晶振、外部振荡器,又可以与外部4M-32MHZ时钟源一起使用,XT1CLK可以作为FLL模块内部的参考时钟。有些芯片XT1CLK只允许使用外部的低频晶振,具体可参考数据手册;
XT2CLK:可选高频振荡器,可与标准晶振,振荡器或者 4MHZ~32MHZ外部时钟源一起使用;
VLOCLK:内部低功耗、低频振荡器,频率典型值为10KHZ;
REFOCLK:内部低频振荡器,典型值为 32768HZ,可作为 FLL基准时钟源;
DCOCLK:可以通过 FLL来稳定的内部数字控制振荡器(DCO);DCOCLK经过 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 模式;
如果有 XT2IN 和XT2OUT,则一并配置为普通 IO 口,禁止 XT2 功能。
如上所述:
默认状态下,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 使用 32768Hz 晶振时,由于XT1不会立即稳定,失效逻辑控制位会立即选择 REFOCLK 作为 ACLK 时钟源。一旦晶体振荡稳定后,由于 FLL的作用,MCLK 和SMCLK 都将稳定在 1.047586MHz,Fdco稳定在 2.097152MHz。
状态寄存器(SCG0,SCG1,OSCOFF和CPUOFF)用于配置 MSP430的工作模式,使能和禁止 UCS模块中的部分功能(参考系统复位、中断和操作模式)。UCS 模块可以在程序运行中的任何时候进行配置和修改配置,配置使用寄存器 UCSCTL0~UCSCTL8。
2.1 UCS模块在超低功耗方面的特性
为了保持长时间工作或降低功耗而采用低时钟频率;
快速响应时间和快速数据处理能力需要高时钟频率;
适应各种工作温度和供电电压的稳定时钟;
低成本应用中使用准确度要求较少器件的时钟。
2.2 VLO 内部低功耗低频振荡器
内部 VLO能够在不需要任何外接晶振的情况下,提供 10KHz的时钟,在对时钟精度不敏感而对成本又非常敏感的场合,使用 VLO是一个非常好的选择。当 VLO 作为 ACLK、MCLK、SMCLK(SELA=1、SELM=1、SELS=1)中的任何一个时钟源时,开始启动振荡。
2.3 REFO 内部低频参考时钟
在对成本非常敏感时,通常不需要使用外部晶振,此时可以使用内部低频参考时钟。该时钟的典型频率值为32768Hz,并可以作为用于稳定时钟模块 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(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 控制寄存器决定:
SELA Bits10-8 选择ACLK 的时钟源
000 XT1CLK
001 VLOCLK
010 REFOCLK
011 DCOCLK
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 的时钟源
000 XT1CLK
001 VLOCLK
010 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 fACLK/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/2
010 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/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/32
111 保留。默认是 fMCLK/32
2.4 XT1 振荡器
XT1 为了支持低功耗模式,而支持在低频模式下(XTS=0)使用 32768Hz 时钟。晶振连接到 XIN 和XOUT,此时不需要任何其他外围器件,软件可以通过 XCAP 位来设置 LF模式下 XT1 晶振的内部负载电容,负载电容可以由软件选择为2pF,6pF,9pF,12pF(典型值),也可以根据需要增加外接电容。
一些芯片在HF模式时 (XTS=1) 也支持高速晶振或者振荡器,高频晶振或振荡器连接到XIN 和 XOUT引脚时,两端口都需要接外部电容,电容的大小需要根据晶振或者振荡器的规格来选择。
LF 模式下,可以通过 XT1DRIVE位来提高 XT1 驱动能力。在上电时,为快速可靠启动可以设置 XT1DRIVE 位来快速启动。如果用户为了降低功耗,可以在需要时降低其驱动能力。在 HF模式时,可以通过选择适当的XT1DRIVE 值来满足不同范围的晶振或振荡器。
无论是在LF还是HF模式下,都可以通过配置 XT1BYPASS 位,XT1 可以使用加载在 XIN脚上的外部时钟信号。当使用外部时钟信号时,外部信号的频率和选择的工作模式必须与数据手册上的参数相符合,当在BYPASS模式时,将关闭XT1 的振荡器电源。
上电时,默认操作是XT1,LF模式,但是XT1 将保持禁止状态,直到与 XT1复用的端口设置成 XT1 模式。复用 IO 口的配置由 XIN 和 XT1BYPASS 相关的 PSEL 决定。PSEL 置位,X1IN 和 X1OUT 端口将配置成 XT1 模式。如果 XT1BYPASS 也置位,XT1 将配置成 BYPASS 模式,XT1 相对应的振荡器将断电。在 BYPASS 模式下,XIN 可以接收外部时钟信号的输入,XOUT 配置成普通 IO口模式,这时与X1OUT相对应的PxSEL位可以不用关心。
如果与XT1IN 对应的PSEL位清零,XT1IN 和 XT1OUT均被配置为普通 IO 口模式,XT1 将禁止。
2.5 XT2 振荡器
某些芯片有第二个晶振XT2, XT2CLK源自 XT2, 且在高频模式下, XT2的特性和XT1相同, XT2DRIVE位用来选择XT2的频率范围。通过配置 XT1BYPASS 位,可以使 XT2 可以使用加载在 XIN 脚的外部时钟信号,当使用外部时钟信号时,外部信号的频率必须和选择的工作模式在数据手册上的参数相符合。
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 对应的 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。
XT2BYPASS 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 低频模式下,驱动力稍增大 XT1在高频模式下的晶振频率范围在8MHz-16MHz
10 XT1 低频模式下,驱动力增大 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)/2。前提是假定 Cxin=Cout,并且由于封装以及布板的原因产生 2pF左
右的寄生电容。关于典型内部及有效电容的细节,参见数据手册的相关章节。
SMCLKOFF Bit1 SMCLK 关闭。该位用来关闭 SMCLK。
0 SMCLK 开启
1 SMCLK 关闭
XT1OFF Bit0 关闭XT1晶振
0 如果XT1 已经通过端口选择,并且非旁路模式,那么XT1 被打开。
1 如果XT1没有用作ACLK、MCLK以及SMCLK的时钟源或没有用作FLL的校准源,XT1关闭
2.6 DCO 数字控制振荡器
DCO 是内部集成的数字频率振荡器。DCO 频率可以通过软件配置 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 位决定分频因子 (N+1),默认下 N = 31。分频因子(N+1)和分频值D 定义了 N>0 时的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为 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 的频率:fDCO和 fDCO+1,来产生一个有效的中间频率,提高时钟驱动,减少电磁干扰。调制器通过配置 MOD 位,在32 个DCOLK 时钟周期中混合 fDCO和 fDCO+1。当 MOD={0}时调制器关闭。
调制器混频公式如下:
T=(32-MOD) ×tDCO+MOD×tDCO+1
调制器操作如图所示:
当 FLL 模块允许时下,DCO 调制器是由 FLL 硬件控制。如果不希望 FLL 工作,DCO 调制器设置需由软件来配置。
2.7 FLL 锁频环
锁频环可以对频率积分器进行连续加或减。用于驱动 DCO 的频率积分器的值可以从寄存器UCSCTL0, UCSCTL1 (MODx和DCOx位)中读出。 计数器的值可以用 fFLLREFCLK/n (n = 1, 2, 4, 8, 12, or 16)加一调整或者用 fDCOCLK/(D*(N+1))减一调整。
积分器中的5位(UCSCTL0 8~12位)用于设置 DCO 频率,DCO 设置了32 节拍,每一频率大约比前面的高出约8%,调制器混合两个相邻的DCO 频率产生 1个小数节拍。对于给定DCO 偏差范围设定,为了使DCO 正常操作,要给 DCO 一段时间来稳定,一般需要 (n×32)fFLLREFCLK个周期,在最坏情况下需要(n×32×32) fFLLREFCLK周期。其中的 n值由 FLLREFDIVX(1、2、4、8、12、16)来定义。
DCO 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,这使乘数位产生另外的乘数。
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 保留备用,默认是 REFOCLK
101 XT2CLK(如果可用),否则 REFOCLK
110 保留备用 XT2CLK(如果可用),否则 REFOCLK
111 无选项,只针对F543X以及F541x非A版本,XT2CLK(如果可用),否则 REFOCLK
FLLREFDIV Bits2-0 FLL 基准源分频,定义fFLLREFCLK分频因子,分频后的频率就被用作FLL基准频率
000 fFLLREFCLK/1
001 fFLLREFCLK/2
010 fFLLREFCLK/4
011 fFLLREFCLK/8
100 fFLLREFCLK/12
101 fFLLREFCLK/16
110 保留,默认 fFLLREFCLK/16
111 保留,默认 fFLLREFCLK/16
eg.
#include "msp430x54x.h"
void main(void)
{
WDTCTL = WDTPW+WDTHOLD; // Stop WDT
P2DIR |=BIT2; // P1.0 output
P11DIR |= 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基准源为REFOCLK,基准源分频因子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,
//DCO倍频后((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
// changed 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 XT2,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 故障,上一次复位之后出现故障条件
XT1HFOFFG Bit2 XT1 晶振故障标志位(高频模式),假如该位置位,那么 OFIFG 也置位。只要XT1故障
条件存在 XT1HFOFFG 标志位就会置位,XT1HFOFFG 可以通过软件清零。
0 上一次复位之后没有故障条件产生
1 XT1 故障(高频),上一次复位之后出现故障条件
XT1LFOFFG Bit1 XT1 晶振故障标志位(低频模式),假如该位置位,那么 OFIFG 也会置位。只要XT1
故障条件存在XT1LFOFFG 标志位就会置位,XT1LFOFFG 可以通过软件清零。
0 最近一次复位之后没有故障条件产生
1 XT1 故障(低频),最近一次复位之后出现 XT1(LF)故障条件
DCOFFG Bit0 DCO 故障标志,假如该位置位,那么OFIFG 也会置位。如果DCO={0}或者DCO={31},
DCOFFG 标志位就会置位,DCOOFFG可以通过软件清零。
0 上一次复位之后没有故障条件产生
1 DCO 故障,上一次复位之后出现DCO 故障条件
OFIFG 是晶振故障中断标志,属于用户非可屏蔽中断。上电复位或检测到振荡故障(XT1LFOFFG、XT1HFOFFG、XT2OFFG)时, 振荡故障中断标志 OFIFG置位。如果OFIFG置位,并且OFIE 置位,FIFG 将产生不可屏蔽中断请求(无论 GIE 状态,GIE 为可屏蔽中断的总中断允许位)
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 没有中断产生
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 中断禁止
1 中断允许
2.8 UCS模块自动失效安全操作
UCS 中模块有振荡器实现失效时的自动保护特性。这个功能可以检测 XT1、DCO、XT2 的振荡器故障,如图所示:
失效条件有:
XT1 在 LF模式下低频振荡失效(XT1LFOFFG);
XT1 在 HF模式下高频振荡失效(XT1HFOFFG);
XT2 高频振荡失效(XT2OFFG);
DCO 失效标志(DCOFFG);
如果相应的振荡功能打开但不能正常运行,则相应的晶振失效位 XT1LFOFFG、XT1HFOFFG 和XT2OFFG 将置位。而且一旦置位,失效标志(OFIFG)则不论失效条件是否还存在,都将一直保持置位,直到软件复位。如果用户清除了失效标志位,但失效条件依然存在的话,则失效标志位会自动重新置位,否则,保持清零。
当选择 LF 模式下的 XT1 作为 FLL的参考信号源时,晶振失效将使 FLL 的参考信号源 FLLREFCLK切换到REFO,同时XT1LFOFFG 置位;当选择 HF模式下的 XT1 作为 FLL的参考信号源时,XT1失效时将导致 FLLREFCLK 信号丢失,FLL 继续倒数到 0,并尝试锁定 FLLREFCLK 和 DCOCLK/(D×[N+1]),DCO 降到最低频率的节拍位置(DCO 被清除),DCOFFG 置位;对于给定的 DCO 频率范围,如果 DCO倍频器的值过高,使 DCO频率达到了最高的节拍位置(UCSCTL0.12~UCSCTL0.8 置位),DCOOFF 也同样会置位。DCOFFG 置位后将一直保持,直到软件将其清除,如果用户清除了 DCOFFG 位,但是故障条件依然存在的话,DCOFFG 会再次置位,否则保持清零,XT1HFOFFG 置位。
当使用XT2 作为FLL的参考信号源时,其操作也同样如此。
上电复位或检测到振荡故障(XT1LFOFFG、 XT1HFOFFG,、 XT2OFFG)时,振荡故障中断标志 OFIFG置位。如果OFIFG 置位, 并且OFIE 置位, OFIFG 将产生不可屏蔽中断请求。 中断允许后,如前面的 MSP430系列一样,OFIE 不会自动复位,这是由不可屏蔽中断电路产生的,此时,OFIE 必须由软件复位。具体的时钟故障源可以通过检查相应的时钟故障标志位来确定。
如果检测到 MCLK 时钟源振荡故障,将自动切换到DCO 时钟(DCOCLKDIV)作为除 XT1 低频模式外的所有的时钟源;如果MCLK 来自于低频模式的 XT1,振荡故障将自动转换 REFO作 MCLK时钟源。这并不会改变SELM的设置,此时必须由软件处理。
如果检测到 SMCLK 时钟源振荡故障,将自动切换到 DCO 时钟(DCOCLKDIV)作为除 XT1 低频模式外的所有的时钟源;如果SMCLK 来自于低频模式的XT1,振荡故障将自动转换 REFO作 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 和 UCSCTL1 寄存器设置的模式下;此时如果需要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 是禁止的,此时将产生一个振荡失效标志,此时需要软件处理。由于看门狗的有安全性的要求,如果先前选择的时钟源不可用,将自动选择VLOCLK 作为时钟源。由于有时钟请求信号这个特性,所以在实际应用中,要注意进入低功耗模式的情况。虽然选择了低功耗模式,但时钟请求造成的功耗仍会大于数据手册中的值。
2.10 与时钟、FLL 有关的状态寄存器(SR)
SCG1 系统时钟发生器1,当置位时,如果 MCLK 或SMCLK 没有使用 DCOCLK 时将关闭 DCO的直流发生器
SCG0 系统时钟发生器0,当置位时,将关闭 FLL模块
OSCOFF 晶振关闭,当置位时,如果MCLK 或 SMCLK 没有使用 LFXT1CLK 时将关闭 LFXT1晶振震荡器
CPUOFF CPU 关闭位,当置位时,将关闭CPU
GIE 总中断允许位,当置位时,将允许所有的可屏蔽中断,否则将禁止所有可屏蔽中断。
eg.(启用 XT1)
void HardInit(void)
{
__disable_interrupt();
WDTCTL = WDTPW + WDTHOLD;//看门狗禁止。
SetVCoreUp(PMMCOREV_3);
P7SEL |= 0x03; // Select XT1
UCSCTL6 &= ~(XT1OFF); // XT1 On
UCSCTL6 |= XCAP_3; // 0x000C 选择XT1由内部晶振提供、及振荡电容选择
do // Loop until XT1 fault flag is cleared
{
UCSCTL7 &= ~XT1LFOFFG; // Clear XT1 fault flags
}
while (UCSCTL7&XT1LFOFFG); // Test XT1 fault flag
UCSCTL3 |= SELREF_2; // Set DCO FLL reference = REFO
UCSCTL4 |=SELA__XT1CLK ; //Set ACLK = XT1CLK MCLK 、SMCLK 默认
__bis_SR_register(SCG0); // Disable the FLL control loop
UCSCTL0 = 0x0000; // Set lowest possible DCOx, MODx
UCSCTL1 = DCORSEL_6; // Select DCO range 24MHz operation
UCSCTL2 = FLLD_1 + 760; // (N + 1) * FLLRef = Fdco(DCOCLKDIV) (760+ 1) * 32768 = 24.936448MHz
// Fdcoclkdiv*D=Fdcoclk Set FLL Div = fDCOCLK/2 D=2
__bic_SR_register(SCG0); // Enable the FLL control loop
__delay_cycles(782000);
// Loop until XT1,XT2 & DCO stabilizes
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);
// Clear XT2,XT1,DCO fault flags
SFRIFG1 &= ~OFIFG; // Clear fault flags
}
while (SFRIFG1&OFIFG); // Test oscillator fault flag
__enable_interrupt();
}
上一篇:KeilMDK5生成.bin文件的简单教程
下一篇:msp430f5419/38学习笔记之USCI:UART模式
推荐阅读
史海拾趣
非常抱歉,我无法提供Bellin公司在电子行业里的5个发展起来的相关故事,因为在我所掌握的信息中,Bellin公司并非一个在电子行业内广泛知名的品牌。另外,我注意到您提到的“Bellin”可能与您想要了解的“Belling”或“BellRing Brands”等公司有混淆。
首先,Belling是一家英国的厨电品牌,以其高端产品和在英国市场的卓越表现而闻名。至于其在电子行业的发展故事,我暂时无法提供,因为Belling主要专注于厨电领域,与电子行业的直接关联并不显著。
其次,BellRing Brands是一家全球便利营养品行业的领导者,其主营业务与电子行业并无直接联系。该公司主要通过提供高营养的产品来改善消费者的生活,其业务范围主要集中在营养品领域。
对于其他可能的“Bellin”公司,我无法给出确切的信息,因为“Bellin”并非一个我所熟悉的电子行业品牌。如果“Bellin”是您所知道的特定公司,建议您直接访问该公司的官方网站或查阅相关新闻报道,以获取更准确和详细的发展故事。
在描述公司的发展故事时,通常会涉及公司的创立背景、产品创新、市场竞争、扩张策略以及行业影响等方面。每个故事都应该基于事实,客观描述公司的成长历程和关键事件,避免添加主观评价或褒贬色彩。
如果您对电子行业内的其他公司或品牌的发展故事感兴趣,我可以尝试提供相关信息,但请确保提供正确的公司名称或品牌名称,以便我能够给出准确的回答。
进入21世纪后,随着信息化和智能化技术的快速发展,Eagle Plastic Devices公司开始积极推动数字化转型和智能制造。公司引入了先进的信息化管理系统和智能生产设备,实现了生产过程的自动化和智能化。这不仅提高了生产效率和产品质量,还降低了生产成本和人力资源投入。同时,公司还利用大数据和人工智能技术优化供应链管理、市场营销等方面的工作,进一步提升了公司的综合竞争力。
在公司的快速发展过程中,睿赫公司高度重视团队建设和人才培养。公司建立了一套完善的人才选拔和培养机制,吸引了一批优秀的电子工程师和技术人才加入。同时,公司还注重员工的职业发展和福利待遇,为员工提供了广阔的发展空间和良好的工作环境。
通过团队建设和人才培养,睿赫公司的研发团队逐渐壮大,创新能力也得到了极大的提升。这使得公司能够在激烈的市场竞争中保持领先地位,不断推出具有竞争力的新产品。
随着全球环保意识的提高,AK-Nord_GmbH也积极践行可持续发展理念。公司注重环保生产,采用环保材料和工艺,减少生产过程中的环境污染。同时,公司还积极参与环保公益活动,推动电子行业的绿色发展。这些举措不仅提升了公司的社会形象,还为公司的长期发展奠定了坚实的基础。
这些故事都是基于一般电子行业的发展规律编写的,并不针对任何特定的公司或真实事件。希望这些故事能够满足您的需求,并为您了解电子行业公司的发展提供一些参考。
为了进一步提升竞争力,Cal-Chip Electronics公司在XXXX年开始实施产业链整合战略。公司通过与上游原材料供应商和下游终端制造商建立紧密的合作关系,实现了产业链的协同发展和资源共享。这一战略不仅降低了公司的运营成本,也提高了产品的质量和生产效率。同时,公司还积极参与行业标准的制定和推广,推动了整个行业的健康发展。
为了进一步扩大市场份额,安美通积极开展市场推广和品牌建设。公司参加了多个国内外知名展会和技术交流会议,与众多客户建立了良好的合作关系。同时,安美通还加大了对营销网络的投入,建立了完善的销售体系和客户服务体系,提高了客户满意度和忠诚度。
2月28日消息,飞思卡尔 (NYSE:FSL,FSL.B) 与意法半导体(简称ST,NYSE:STM)将携手开展一项广泛的联合创新计划,加强各自在汽车应用领域的实力。两家公司将联合组建一支微控制器设计团队,共同利用处理工艺技术,共享知识产权,其中包括大功率MOS技 ...… 查看全部问答∨ |
|
先不做介绍,大家看到.cc和.tv会想到什么呢?觉得这样的域名怎么样呢? 首先他们都是两个字母的域名后缀,非常容易记。.CC两个字母都是一样的,看过后肯定就不会忘了,TV 更是容易了,TV是电视的意思,两个连在一起甚至就是CCTV,哈哈,应该很熟 ...… 查看全部问答∨ |
鸟被电死的概率有多大? 找了个专业解释: 我们应该注意这样一件事:当鸟儿停在电线上时,鸟儿的身体就好像是电路里的一个分路,鸟的两脚之间的那部份很短的电线也是电路里的一个分路,因为电阻的大小与导体的长短有关,导体越短,电阻越小 ...… 查看全部问答∨ |
TI的PCB天线参考设计,频率覆盖136M~2480Mhz,文件为gerber格式。 工艺参数见文件包中的readme.txt说明。 附图: 附件: … 查看全部问答∨ |
|