MSP430x4xx系列微控制器的独特时钟设计
扫描二维码
随时随地手机看文章
微控制器时钟系统的设计对于系统的全局性能是十分关键的。为了得到廉价、准确而稳定的时钟,在大多数情况下,可采用石英晶体或者是陶瓷振荡器作为参考时钟。这些器件的典型工作频率范围为100kHz到10MHz。然而,它们都有一些缺点,即振荡器消耗的电流会随振荡器的振荡频率的增加而增加,因此,若采用的石英晶体振荡器具有高Q值,那么,在系统上电后,将需要一个较长的时间才能使频率和幅度达到稳态,所以,石英晶体振荡器不能为中断提供快速的响应。
对于一个电池供电的系统,最基本的要求就是功耗要低。但同时又会出现一些相互矛盾的问题,因为采用低频时钟虽然可以达到节能和延长电池使用时间的要求,但采用高频时钟却可以实现对事件的快速反应,并增强处理突发事件的能力;另外,在某些情况下,还会要求时钟具有很高的稳定度。
由于MSP430x4xx系列微控制器是采用一个增强型的锁频环FLL+(Frequency-Locked Loop Plus)来为系统提供时钟,因此,可以较好地解决以上矛盾,从而使系统成本、功耗、处理能力以及稳定度得到了进一步的优化。
1 MSP430微控制器简介
MSP430系列是由美国德州仪器(TI)公司推出的16位超低功耗微控制器。该系列微控制器具有处理能力强、运行速度快、指令简单、功耗低等优点,并具有灵活而简单的外围设备,由于采用了JTAG技术、FLASH在线编程技术、 BOOTSTRAP等诸多先进技术,因此具有很高的性价比。MSP430系列器件采用3V电源供电,工作频率为1MHz,其单周期16位指令的速度可以达到1MIPS(million instructions persecond),电流消耗仅为400μA。事实上,MSP430从低功耗模式3(电流消耗仅为1.5μA)到完全激活状态仅需6μs,因此可以很好地实时处理中断。MSP430的这些优越的特点主要源于它两方面的设计,即16位精简指令体系结构和独特的时钟系统。
MSP430x4xx系列产品的时钟系统采用FLL而没有采用传统的PLL(Phase-Locked Loop)设计,这主要是考虑到FLL能够快速的启动并达到稳定。PLL达到锁定状态需要几百甚至上千个时钟周期,而FLL+经过预先准确设置后,可以在系统启动时立即锁定,从而为快速响应中断提供了保障。并且PLL通常是用模拟元件来实现的,因此需要不断的消耗能量。而FLL是纯数字系统,可以用软件来控制。它在非激活模式下,其电流消耗为0。
2 FLL+模块的组成
MSP430x4xx系列的FLL+时钟模块是MSP430x3xx系列FLL结构的一种扩展,但却与MSP430x1xx系列的时钟系统有很大的不同,后者没有硬件FLL,因此,要想获得较精确的时钟,需用软件进行DCO频率校准,这也就是所谓的“软锁频”。由于FLL+支持的频率范围更大,因而可以采用手表晶振或者高频晶振。图1所示是FLL+模块的基本组成,从图中可以看出: FLL+主要由LFXT1振荡器、LFXT2振荡器、DCO振荡器和锁频环以及时钟缓冲输出组成。
2.1 LFXT1振荡器
LFXT1产生的信号称为 ACLK。通过配置与之相关的寄存器和外接不同的晶体或者谐振器,LFXT1可以工作在两种操作模式:低频或高频模式。低频通常采用32768Hz的手表晶振,高频的频率范围则为455kHz~8MHz。在绝大多数情况下,LFXT1运行于低频模式,其主要原因如下:
(1)工作频率低,功耗小。在进入低功耗模式3时,只有手表晶振处于激活状态。此时典型的电流消耗仅为1.5μA;
(2)稳定度高;
(3)价格低廉;
(4)体积小;
(5)电路简单,外接手表晶振时,不需要外接电容。
因手表晶振的功耗很小,所以它可以连续工作,这样就避免了启动和稳定所需要的时延。并且32768Hz的时钟一直有效也意味着当其它系统处于关闭状态时,系统的一些片上外围设备可以继续处于激活状态。例如,LCD或者用作实时时钟的某一个定时器等都可以处于激活状态。
在有特别需要的情况下,LFXT1也可以通过外接高速晶体或者谐振器工作于高频模式。不过此时需要外接电容。
2.2 LFXT2振荡器
LFXT2为高频振荡器,其工作频率也为455kHz~8MHz。LFXT2结构比较简单,若是系统需要稳定度很高的高频时钟可以采用它,不需要时可以通过软件将其关闭。不过高频振荡器的两个引脚必须要接外部电容。
2.3 DCO振荡器和锁频环(FLL)
MSP430x4xx系列FLL+模块的DCO(Digitally-Controlled Oscillator)振荡器是一个集成的RC振荡器。产生的时钟信号称为DCOCLK,经过FLL调节和校准后可用作系统时钟(MCLK)和外围设备的时钟(SMCLK)。这个模块是整个时钟系统的核心。其基本结构如图2所示。
2.4时钟缓冲输出
由于MSP430提供有时钟缓冲输出(见图1)。因此可以通过软件编程来控制其分频比FLL DIV,以对ACLK进行1、2、4、8等分频。分频后的输出可以用来为外围电路提供时钟。
3 FLL+的工作原理
对于RC振荡器,由于其频率会随温度和电压的变化而变化,因此在对时钟精度要求较高的情况下,DCOCLK通常要通过FLL进行校频后,才能用于系统时钟。
3.1倍频方案
在需要较高数据处理速度时,ACLK就不能单独胜任,在这种情况下,就要用到倍频技术。为了支持更大范围的频率变化,FLL+的倍频方案增加了DCO+控制位。当DCO+取0、1时,fDCOCLK输出时钟频率不同,具体如下:
式中,fACLK取32768Hz。可见,通过改变N、D和DCO+,可以很容易地调节用作MCLK/SMCLK的DCO频率。但要注意,最后得到的MCLK不能超过器件的工作频率。
3.2频率抽头
DCO的输出时钟为DCOCLK,这个时钟被(D×(N+1))分频后应与ACLK进行比较。若DCOCLK用于系统时钟MCLK,则同步器将对 ACLK和MCLK/(D×(N+1))进行比较,然后用比较所得的差值来对一个10位的频综器进行“up”或者“down”模式计数。这样, MCLK/SMCLK就可以在1024种可能的设置上不断地进行调节。一旦频率被锁定,同步器输出的误差信号就变为0,此时有MCLK=N×ACLK。在频综器的10位输出中,5位用于DCO频率抽头(NDCO),另外的5位用于频率调整(NDCOMOD)。5个抽头可组成29种频率(28,29,30和31抽头是一样的),每一个抽头比前一个要高约10%。
明显可以看到:DCO只能产生一些离散的频率分量。所以说仅仅依靠改变N、D和DCO+无法使同步器的输出达到严格的0。
3.3频率调整
DCO频率调整器的作用是通过混合相邻的DCO周期来减小长期的累计周期变化。换句话说,就是通过控制fn+1在一个调整周期内所占的比率来减小输出频率与所需频率之间的误差。具体的频率调整器跳变模式如图3所示。图中,调整器以32个DCO时钟周期为一个周期。NDCOMOD可用于定义需要混合的fn+1的比例常数。
下面的公式定义了DCO长期输出频率与相邻跳变频率之间的关系:
由此可见,频率调整器通过为每个DCO周期独立地选择fn或者fn+1,来调整DCO的输出频率,进而实现分数抽头的目的。
必须明确的是,MCLK的精度只是建立在平均的基础上。对于短期精度,由于每个周期来自相邻的DCO频率抽头,因此是不精确的;而对于长期精度,由于经过了累加平均,因而相对误差被减小了。实际上,由于调整器的周期为32,每次调整量为每一频率段的10%,因此相对误差可降到低于0.33%。
也可以通过软件编程NDCOMOD来确定DCO的输出频率,以便用FLL锁频时达到快速锁定的目的;而在不用FLL时,可不用外部晶振来产生所需频率。假如所需频率f为100Hz,并假定DCO在0抽头时的频率为f0=700Hz。则与f相邻的两个频率为:
将这两个频率代入上面的公式中,便可以求得NDCOOD=24。所以,若DCO中心频率为1MHz,那么,将24写入与NDCOMOD相应的寄存器中,即可在无外接晶振的条件下获得所需时钟。在这种应用条件下,需要注意几点:
●FLL和调整器在系统复位时默认为允许,要工作在这种状态,必须首先禁止FLL。否则DCO会自动锁定到f0;
●f0是不确定的,在具体应用时应先测定,然后再用它来计算所需的相邻频率。
●由于DCO的输出频率会随着稳定度和电压的变化而漂移,所以不能应用于对时钟精度要求较高的场合。
3.4 DCO频率范围控制
在通过调节倍频因子N改变MCLK时,FLL+调节DCO的频率将趋于目标频率。当MCLK稳定在新的频率抽头之前,每向下一个DCO抽头,其变化一次需要1024个时钟周期的延时。可以看到,对于MCLK的大范围频率变化,将需要很大的时延才能达到稳定。对此,MSP430x4xx系列采用了一种频率分段的机制来处理这种大范围的频率变化。即将DCO输出的700kHz~40MHz分为5段,每一段的中心频率基于典型频率fnominal(2MHz)的倍数。使用时可以通过控制寄存器SCFI0的FN_8、FN_4、FN_3、FN_2等四位对它进行控制。表1列出了DCO的频率范围控制方法。由表中可见,通过控制这些位可在不改变当前抽头设置的情况下改变DCO的输出频率MCLK(实际上是立即选择了相邻的抽头,而不是逐个调节)。因此,在这种方式下,DCO调节到所需频率的时间比仅仅通过调节倍频因子要短得多。所以首先应根据所需频率来调整DCO的中心频率,或者在MCLK变化较大时及时调节 DCO的中心频率。
4用FLL+优化系统性能
MSP430x4xx正是由于采用了上述FLL+时钟模块,才使它的全局性能得到了优化。同时,它还提供有灵活的时钟配置选择,各个模块的时钟都可用软件选择。也可以根据系统的具体要求来动态调整系统的时钟频率,进而优化它的性能。 使用时,一般可按照以下原则来进行:
●若需要稳定而精确的低频时钟,可以采用LFXT1时钟;
●若需要稳定而精确的高频时钟,可以采用LFXT2时钟;
●若需要系统能够快速地从节能模式切换到激活模式,可以采用DCO经锁频后为系统提供时钟MCLK/SMCLK。FLL+的一个突出优点就是能够快速地达到稳定状态。
设计时,要尽可能地选择较低的工作频率来降低系统的功耗。此外,系统还提供有5种可编程的节能模式,以便更好地降低系统功耗。
另外,FLL+的振荡器具有自动切换功能,当DCO没有用于MCLK或SMCLK时,利用该功能可自动关闭DCO。但是一旦DCOCLK信号被用于 MCLK/SMCLK,DCO就会立即自动开启。而当外接晶振或者谐振器出现错误或停振时,系统时钟也会自动切换到DCO模式,从而进一步提高系统的可靠性。
参考文献
1.MSP430x4xx Family User's Guide(SLAU056B)
2.The MSP430x3xx Clock System(SLAA080)
3.胡大可.MSP430系列FLASH型超低功耗16位单 片机.北京航空航天大学出版社,2001