内部时钟源

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

内部时钟源

1、内部时钟源结构介绍

该单片机的内部时钟源模块(ICS,The internal clock source)是比较有特色的,除了一般单片机所具有的外部时钟配置(时钟或低成本晶体振荡器)、可编程内部时钟参考(32kHz)之外,还有一个锁频环(FLL, frequency-locked loop),锁频环的输入信号可以来自外部,也可以来自内部参考,锁频环的输出与外部时钟和内部参考时钟三者之一通过一个可编程分频器(BDIV , reduced bus divider)最终得到内部时钟源模块的最主要输出ICSOUT,总线时钟为ICSOUT的二分频。时钟源模块内部结构以及输出时钟的应用情况参考图1和图2。

对时钟源模块的控制与配置离不开特殊功能寄存器,需要用到的寄存器中的一些位(bits)在图中也已经标出来了,通过这些控制位的选择,时钟模块的输出可以来自外部、内部参考或者锁频环的输出。即使时钟源的输出不经过锁频环FLL,锁频环既可以使能,也可以关闭(省电),种种情况归纳起来,时钟源模块有7种工作模式:

FEI:FLL engaged internal mode;

FEE:FLL engaged external mode;

FBI:FLL bypassed internal mode;

FBILP:FLL bypassed internal low power mode;

FBE:FLL bypassed external mode

FBELP:FLL bypassed external low power mode

stop:

这7种工作模式中,前两个字母FE或者FB表示最终ICSOUT是否来自于锁频环,FE表示是,而FB表示FLL被跳过去了,ICSOUT可能来自外部也可能来自内部参考,取决于第三个字母是I(内部)还是E(外部)。有的模式中包含LP表示低功耗,也就是带LP的模式下锁频环被禁止,此时可以给BDC模块供电的,来自于FLL二分频输出的ICSLCLK不再存在。

2、内部时钟源控制寄存器介绍

对内部时钟源的控制与配置是通过2个控制寄存器、一个内部参考时钟调节寄存器以及一个状态与控制寄存器来实现的,对这些控制位的定义建议参考上述内部时钟源结构图。

1 (ICSC1)

内部时钟源控制寄存器

内部时钟源控制寄存器2 (ICSC2)

内部参考时钟调节寄存器(ICSTRM)

该寄存器与下一个状态与控制寄存器ICSSC的最低位,一共九位,用于调节内部参考时钟的周期,ICSSC的最低位FTRIM也是这九位的最低位。TRIM值越大,周期越长,频率越低。经过测试并调节好的TRIM值建议存储在非易失FLASH的寄存器区中,比如0xFFAE

用于存储TRIM的最低位,而0xFFAF则存储高8位。存储在FLASH寄存器区中的部分参数在上电时会自动拷贝到零页相应的寄存器中,但这里的TRIM数值需要在初始化阶段手工操作,比如:

extern volatile byte NVICSTRM @0x0000FFAF;

if (NVICSTRM != 0xFF) {

ICSTRM = NVICSTRM; // load trim value if location not blank

}

内部参考时钟状态与控制寄存器(ICSSC)

3、内部时钟源工作模式切换

内部时钟源一共有七种工作模式,这些工作模式之间的切换状态图见图3,其中主要四种模式FEI、FEE、FBI、FBE之间是可以随意切换的,其中的两种低功耗模式FBILP、FBELP 只能与之对应的非低功耗模式之间才能随意切换。在这些模式之间切换时,需要注意如下问题:

1〉如果要使用FLL,需要配置RDIV位,以保证FLL的输入范围在31.25 kHz到

39.0625 kHz之间;

2〉CLKS与IREFS之间存在一定的联动关系,如果CLKS为00(即FLL被选择为时钟源),IREFS可能为1或为0;但如果CLKS为01,IREFS就应该为1;CLKS

为10,IREFS就应该为0。

3〉低功耗除了受LP控制之外,还必须保证BDM不活动,因为BDM需要用到FLL 的输出。

4〉进入停止模式时,如果IRCLKEN和IREFSTEN置位,则ICS的输出ICSIRCLK 仍然活动;相同地如果ERCLKEN和EREFSTEN置位,则ICS的输出ICSERCLK

也仍然活动。

5〉在不同模式之间进行切换时,如果新选择的时钟不存在,则单片机会工作在

切换前的状态下。

6〉在FLL被跳过的模式下,如果某时刻需要切换到FLL模式,因为FLL锁定需要时间,建议FLL不要工作于低功耗模式,即LP不要置位,以保证切换迅速、稳

定。

7〉ICS将FLL的输入时钟(31.25 kHz到39.0625 kHz之间)以名字ICSFFCLK输出,该信号可被外设如定时器使用。ICS同时提供一个指示信号ICSFFE(控制Fixed

Frequency Clock的输出,见图2),表示主输出ICSOUT是否为信号ICSFFCLK

的四倍以上。针对FLL被使能的情形下,由于锁频环将输入信号ICSFFCLK固

定512倍频,即使经过BDIV分频(最大8分频),ICSOUT也一定是ICSFFCLK

的64倍以上,此时指示信号ICSFFE恒定为“1”,对于FLL被跳过的情形下,

则信号ICSFFE受两个分频器RDIV和BDIV的控制,下列情形可以保证ICSFFE

4、内部时钟源模块的初始化

ICS在上电复位后进入FEI模式,且BDIV设置为缺省的2分频。上电复位后,应对内部参考进行调整,建议使用FLASH存储器地址0xFFAE备份调整数据FTRIM,地址0xFFAF则用于备份8bit的ICSTRM数据。当然从FLASH中读取数据并覆盖零页寄存器的工作要在初始化阶段手工进行。下面介绍几个时钟初始化与切换的例子。

1〉初始化,并从内部时钟(FEI或FBI)切换到外部时钟(FEE或FBE):

a>设置寄存器ICSC2中的相关位,以允许外部时钟,如果打算采用FBE模式,对

LP的设置也应该此时进行;

相关文档
最新文档