内部时钟源

内部时钟
1、内部时钟源结构介绍
该单片机的内部时钟源模块(ICS,The internal clock source)是比较有特的,除了一般单片机所具有的外部时钟配置(时钟或低成本晶体振荡器)、可编程内部时钟参考32kHz)之外,还有一个锁频环(FLL, frequency-locked loop),锁频环的输入信号可以来自外部,也可以来自内部参考,锁频环的输出与外部时钟和内部参考时钟三者之一通过一个可编程分频器(BDIV , reduced bus divider)最终得到内部时钟源模块的最主要输出ICSOUT,总线时钟为ICSOUT的二分频。时钟源模块内部结构以及输出时钟的应用情况参考图1和图2
对时钟源模块的控制与配置离不开特殊功能寄存器,需要用到的寄存器中的一些位(bits)在图中也已经标出来了,通过这些控制位的选择,时钟模块的输出可以来自外部、内部参考或者锁频环的输出。即使时钟源的输出不经过锁频环FLL,锁频环既可以使能,也可以关闭(省电),种种情况归纳起来,时钟源模块有7种工作模式
FEIFLL engaged internal mode
FEEFLL engaged external mode
FBIFLL bypassed internal mode
FBILPFLL bypassed internal low power mode
FBEFLL bypassed external mode
FBELPFLL 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)
功能描述
7:6
CLKS
ICSOUT时钟源选择
00-选择FLL.        01-选择内时钟.
10-选择外部时钟.    11-保留,认为00.
5:3
RDIV
锁频环输入信号的频数,由于锁频环将输入信号固定512倍频输出,要求锁频环输入信号范围是31.25kHz39.0625kHz.该参数主要针对采用外部时钟的情形,因为内部时钟大约就是31.25kHz,缺省1分频就行。由于39.0625k * 128 = 5M,因此要求外部时钟不超过5MHz
000—1(位缺省)
001—2
010—4
011—8
100—16
101—32
110—64
111—128
2
IREFS
选择FLL的输入时钟源:1-彝药选择内时钟;
                    0-选择外部时钟
1
IRCLKEN
时钟ICSIRCLK使能控制
1-ICSIRCLK允许;0-ICSIRCLK停止
0
IREFSTEN
控制湖北理工学院人文社科部ICS入停止状态时内时钟是否保持使能.
1-如果IRCLKEN置或者ICS入停止前FEI,FBI或者FBILP模式时,时钟保持使能.
0-ICS进入停止状态时,时钟也禁止。
内部时钟源控制寄存器2 (ICSC2)
氯化铵合剂
功能描述
76
BDIV
ICSOUT输出前的频数:
00—1;      01—2(位时缺省状态);
10—4;      11—8.
5
RANG
外部振率范围选择:
1—外部振器为高围;0外部振器为低
4
HGO
控制外部振器电路工作在高增益状态还是低功耗状态:
1—高增益模式;0低功耗模式。
3
LP
控制FLL旁路模式中,FLL是否禁止(低功耗).
1—FLL在旁路状态中被禁止(BDM背景调试模式除外);
0—FLL在旁路状态中仍然活动。
2
EREFS
外部源模式选择:
1—外部参考源为器;
0外部参考源为整形后的时钟;
1
ERCLKEN
外部考时钟信号ICSERCLK(可用于RTI模块)的使能控制
1—ICSERCLK动;0—ICSERCLK停止
0
EREFDTEN
控制ICS入停止状态时外部时钟是否保持使能:
1—如果ERCLKEN置或者ICS入停止前FEI,FBI或者FBILP模式时,外部时钟保持使能;
0在停止中禁止外部时钟。
内部参考时钟调节寄存器(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)
描述
7:4
保留位,保持为0
3:2
CLKST
时钟源选择指示,稳定后应该与ICSC1寄存器中的CLKS一致,由于内部时钟同步延时的问题,建议修改CLKS后等待一定时间再读取CLKST的状态。
00选择FLL.                  01—FLL旁路,选择内时钟.
10—FLL旁路,选择外部时钟.    11—保留.
1
OSCINIT
外部振荡器稳定状态指示,一般与ICSC2中的EREFS配合使用。如果ERCLKEN值位,或者ICS工作于模式FEE,FBEFBELP(也就是选择外部时钟模式),并且EREFS值位(即选择振荡器模式,该模式需要稳定时间),则当振荡器稳定后,OSCINIT值位。该状态位只有当ERCLKEN或者EREFS,
0
FTRIM
ICS内部参考整精度控制,置位FTRIM使得TRIM的调节刻度变大,相反刻度变小,如需要微调,应该清除该位。
3、内部时钟源工作模式切换
内部时钟源一共有七种工作模式,这些工作模式之间的切换状态图见图3,其中主要四种模式FEIFEEFBIFBE之间是可以随意切换的,其中的两种低功耗模式FBILP索尼爱立信c702FBELP初中生课外辅导只能与之对应的非低功耗模式之间才能随意切换。在这些模式之间切换时,需要注意如下问题:
1〉 如果要使用FLL,需要配置RDIV位,以保证FLL的输入范围在31.25 kHz39.0625 kHz之间;
2〉 CLKSIREFS之间存在一定的联动关系,如果CLKS00(即FLL被选择为时钟源),IREFS可能为1或为0;但如果CLKS01IREFS就应该为1CLKS10IREFS就应该为0 
3〉 低功耗除了受LP控制之外,还必须保证BDM不活动,因为BDM需要用到FLL的输出。
4〉 进入停止模式时,如果IRCLKENIREFSTEN置位,则ICS的输出ICSIRCLK仍然活动;相同地如果ERCLKENEREFSTEN置位,则ICS的输出ICSERCLK也仍然活动。
5〉 在不同模式之间进行切换时,如果新选择的时钟不存在,则单片机会工作在切换前的状态下。
6〉 FLL被跳过的模式下,如果某时刻需要切换到FLL模式,因为FLL锁定需要时间,建议FLL不要工作于低功耗模式,即LP不要置位,以保证切换迅速、稳定。
7〉 ICSFLL的输入时钟(31.25 kHz39.0625 kHz之间)以名字ICSFFCLK输出,该信号可被外设如定时器使用。ICS同时提供一个指示信号ICSFFE(控制Fixed Frequency Clock的输出,见图2),表示主输出ICSOUT是否为信号ICSFFCLK的四倍以上。针对FLL被使能的情形下,由于锁频环将输入信号ICSFFCLK固定512倍频,即使经过BDIV分频(最大8分频),ICSOUT也一定是ICSFFCLK64倍以上,此时指示信号ICSFFE恒定为“1”,对于FLL被跳过的情形下,则信号ICSFFE受两个分频器RDIVBDIV的控制,下列情形可以保证ICSFFE为高电平:
BDIV=00 (1分频)
RDIV 010(4分频)
BDIV=01 (2分频)
RDIV 011(8分频)
发挥余热
BDIV=10 (4分频)
RDIV 100(16分频)
BDIV=11 (8分频)
RDIV 101(32分频)
4、内部时钟源模块的初始化
ICS在上电复位后进入FEI模式,且BDIV设置为缺省的2分频。上电复位后,应对内部参考进行调整,建议使用FLASH存储器地址0xFFAE备份调整数据FTRIM,地址0xFFAF则用于备份8bitICSTRM数据。当然从FLASH中读取数据并覆盖零页寄存器的工作要在初始化
阶段手工进行。下面介绍几个时钟初始化与切换的例子。
1〉 初始化,并从内部时钟(FEIFBI)切换到外部时钟(FEEFBE):
a> 设置寄存器ICSC2中的相关位,以允许外部时钟,如果打算采用FBE模式,对LP的设置也应该此时进行;
b> 等待一段时间,以使外部时钟稳定,一般振荡器的稳定时间可参考相关技术手册。如果上一步设置了EREFS,即选择了外部振荡器模式,当振荡器稳定后,寄存器ICSSC中的OSCINIT会置位。
c> ICSC1赋值,以选择时钟模式。如果选择FEE模式,设置合适的RDIV数值并清除IREFS控制位,此时通过设置IRCLKEN位,使内部参考时钟保持运行,这在内外部时钟需要切换的场合很有用,如果不用切换,则应该关闭内部参考时钟以节省电源。
d> 通过检测寄存器ICSSC中的CLKST位,以观察时钟切换是否完成。如果选择了FEE模式,总线时钟经过数毫秒(由器件参数tAcquire 决定)后达到稳定,但如果是从FEI模式切换到FEE模式的情形,CLKST中的指示位不会改变。
2〉 从外部时钟(FEEFBE)模式切换到内部时钟(FEIFBI)模式初始化:
a>    FLASH中拷贝备份数据到TRIMFTRIM中,该过程只在上电复位操作一次;
b> 设置寄存器ICSC1中的相应位以允许内部参考时钟(设置CLKS = 01选择FBI或者设置CLKS = 00RDIV = 000,并且IREFS = 1以选择FEI模式);

本文发布于:2024-09-22 19:36:37,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/400902.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:时钟   参考   模式   寄存器   切换   需要
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议