18 系统时钟

Si106x / 108x器件包括可编程精密内部振荡器,外部振荡器驱动电路,低功耗内部振荡器和SmaRTClock实时时钟振荡器。可以使用OSCICN和OSCICL寄存器启用/禁用和校准精密内部振荡器,如图18.1所示。可以使用OSCXCN寄存器配置外部振荡器。当选择和取消选择低功耗内部振荡器作为时钟源时,它会自动启用和禁用。SmaRTClock振荡器一章中介绍了SmaRTClock的操作。

系统时钟(SYSCLK)可以来自精密内部振荡器,外部振荡器,低功耗内部振荡器或SmaRTClock振荡器。全局时钟分频器可以生成比所选输入时钟源慢1,2,4,8,16,32,64或128倍的系统时钟。可以在《电气规范》一章中找到振荡器的电气规范。

SI106x 系统时钟

当同时更改时钟源和时钟分频值时,更改系统时钟的正确方法如下:

如果从快速的“未分配”时钟切换到较慢的“未分配”时钟:

  1. 更改时钟分频值。
  2. 轮询 CLKRDY > 1。
  3. 改变时钟源。

如果从慢速的“未分配”时钟切换到快慢的“未分配”时钟:

  1. 改变时钟源。
  2. 更改时钟分频值。
  3. 轮询 CLKRDY > 1。

18.1 可编程的内部精准时钟

所有Si106x / 108x器件都包含一个可编程的精密内部振荡器,可以将其选作系统时钟。OSCICL已在工厂进行了校准,以获得24.5 MHz的频率。看表4.7

精密振荡器支持扩频模式,该模式可调制输出频率,以减少系统产生的EMI。使能(SSE = 1)时,振荡器的输出频率由步进三角波调制,该三角波的频率等于振荡器频率除以384(使用出厂校准为63.8 kHz)。与标称振荡器频率的偏差为+0%,– 1.6%,步长通常为标称频率的0.26%。使用此模式时,典型的平均振荡器频率从24.5 MHz降低到24.3 MHz。

18.2 低功耗内部振荡器

所有Si106x / 108x器件都包含一个低功耗内部振荡器,在系统复位后默认作为系统时钟。 低功耗内部振荡器频率为20MHz±10%,当选择为系统时钟时自动启用,不使用时禁用。看表4.8

18.3 外部时钟电路

所有Si106x / 108x器件都包括一个外部振荡器电路,该电路可以驱动外部晶体,陶瓷谐振器,电容器或RC网络。CMOS时钟也可以提供时钟输入。图18.1给出了四个外部振荡器选项的框图。使用OSCXCN寄存器启用和配置外部振荡器。

可以将外部振荡器输出选择为系统时钟或用于为某些数字外设(例如定时器,PCA等)提供时钟。有关详细信息,请参见每个数字外设的数据手册章节。请参阅第4节。 电气特性”(第42页),了解完整的振荡器规格。

18.3.1 外部晶振模式

如果将晶振或陶瓷谐振器用作外部振荡器,则必须在XTAL1和XTAL2引脚之间连接晶振/谐振器和 10MΩ 电阻,如图18.1的选项1所示。应在XTAL1和XTAL2上添加适当的负载电容器,并且应在禁用数字输出驱动器的情况下将两个引脚都配置为模拟I / O。

图18.2显示了一个20 MHz石英晶体的外部振荡器电路,制造商建议的负载电容为12.5 pF。如晶体所示,负载电容器是“串联”的,与XTAL1和XTAL2引脚的杂散电容“并联”。每个负载电容器的总值和每个XTAL引脚的杂散电容应等于12.5pF x 2 = 25 pF。每个引脚的杂散电容为10pF,这15pF电容器在整个晶体上产生的等效串联电容为12.5 pF。

注意: 推荐的负载电容取决于晶体和制造商。完成这些计算时,请参考晶振数据表。
SI106x 系统时钟

重要提示: 晶体振荡器电路对PCB布局非常敏感。晶振应放置在尽可能靠近器件的XTAL引脚的位置。这些走线应尽可能短,并用接地层屏蔽任何可能引入噪声或干扰的其它走线。

使用外部晶振时,必须通过软件将外部振荡器驱动电路配置为晶振模式或2分频的晶振模式。2分频确保来自外部振荡器的时钟的占空比为50%。还必须根据晶振频率指定外部振荡器频率控制值(XFCN)。选择应基于表18.1。例如,一个25MHz的晶体需要XFCN设置为111b。

SI106x 系统时钟

首次启用晶体振荡器时,外部振荡器有效检测器允许软件确定振荡何时稳定。在晶体振荡器稳定之前切换到外部振荡器会导致无法预料的行为。建议启动晶振的步骤是:

  1. 将XTAL1和XTAL2配置为模拟I / O,并禁用数字输出驱动器。
  2. 配置并启用外部振荡器。
  3. 轮询XTLVLD => 1。
  4. 将系统时钟切换到外部振荡器。

18.3.2 RC模式

如果使用RC网络作为外部振荡器,则电路的配置应如图18.1的选项2所示。RC网络应添加到XTAL2,并且XTAL2应配置为禁用数字输出驱动器的模拟I/O。XTAL1在RC模式下不受影响。

电容器应不大于100 pF;但是,对于非常小的电容器,总电容可能由PCB布局中的寄生电容决定。电阻应不小于10k。 振荡频率可以通过以下公式确定:

f=1.23103RC f = \frac{1.23 * 10^3}{R * C}
f = 时钟频率(MHz)

R =上拉电阻值(kΩ)

VDD = 电源电压,以伏特为单位

C = XTAL2引脚上的电容值,以pF为单位

要在OSCXCN寄存器中确定所需的外部振荡器频率控制值(XFCN),请首先选择RC网络值以产生所需的振荡频率。 例如,如果所需频率为100 kHz,则令R = 246kΩ,C = 50 pF:

f=1.23103RC=1.2310324650=100kHz f = \frac{1.23 * 10^3}{R * C} = \frac{1.23 * 10^3}{246 * 50} = 100kHz
f = 时钟频率(MHz)

R =上拉电阻值(kΩ)

VDD = 电源电压,以伏特为单位

C = XTAL2引脚上的电容值,以pF为单位

参考表18.2,推荐的XFCN设置为010。
SI106x 系统时钟

首次使能RC振荡器时,外部振荡器有效检测器允许软件确定振荡何时稳定。建议的启动RC振荡器的步骤是:

  1. 将XTAL2配置为模拟I/O并禁用数字输出驱动器。
  2. 配置并启用外部振荡器。
  3. 轮询XTLVLD >= 1。
  4. 将系统时钟切换到外部振荡器。

18.3.3 电容模式

如果使用电容器作为外部振荡器,则电路的配置应如图18.1的选项3所示。应将电容器添加到XTAL2,并且应将XTAL2配置为模拟I / O,并禁用数字输出驱动器。 XTAL1在RC模式下不受影响。

电容器应不大于100 pF;但是,对于非常小的电容器,总电容可能由PCB布局中的寄生电容决定。OSCXCN寄存器中的振荡频率和所需的外部振荡器频率控制值(XFCN)可以通过以下公式确定:
f=KFCVDD f = \frac{KF}{C * V_{DD}}
f = 时钟频率(MHz)

R =上拉电阻值(kΩ)

VDD = 电源电压,以伏特为单位

C = XTAL2引脚上的电容值,以pF为单位

以下是选择电容器并找到振荡频率的示例假设VDD = 3.0 V且f = 150 kHz:
f=KFCVDD f = \frac{KF}{C * V_{DD}}

0.150MHz=KFC3.0 0.150 MHz = \frac{KF}{C * 3.0}

由于需要大约150 kHz的频率,因此从表18.2中选择K因子作为KF = 22:

0.150MHz=22C3.0V 0.150 MHz = \frac{22}{C * 3.0V}

C=220.150MHz3.0V C = \frac{22}{0.150MHz * 3.0V}

C=48.8pF C = 48.8 pF
因此,本例中使用的XFCN值为011,C约为50 pF

对于C模式,建议的启动过程与RC模式相同。

18.3.4 外部CMOS时钟模式

如果使用外部CMOS时钟作为外部振荡器,则该时钟应直接路由到XTAL2。XTAL2引脚应配置为数字输入。XTAL1不用于外部CMOS时钟模式。当外部振荡器配置为外部CMOS时钟模式时,外部振荡器有效检测器将始终返回零。

18.4 使用SFR来选择和配置系统时钟

使用OSCICN,OSCICL,OSCXCN和SmaRTClock内部寄存器启用和配置Si106x / 108x器件上的时钟源。参见第19节。SmaRTClock(实时时钟)”上有关SmaRTClock寄存器的说明,请参见第200页。可以使用CLKSEL寄存器选择MCU的系统时钟源。为了最小化活动模式电流,当系统时钟大于10MHz时,应旁路设置Flash读取时间的oneshot计时器。有关详细信息,请参见FLSCL寄存器说明。

被选作系统时钟的时钟可以被1、2、4、8、16、32、64或128分频。在两个时钟分频值之间切换时,转换可能需要多达128个周期的未分频时钟源。可以轮询CLKRDY标志以确定何时应用了新的时钟分频值。进入挂起或睡眠模式时,必须将时钟分频器设置为“ 1分频”。

系统时钟源也可以即时切换。 切换在较慢的振荡器的一个时钟周期后生效。

SI106x 系统时钟

SI106x 系统时钟
注意: 建议使用ORL和ANL等读-修改-写操作来设置或清除该寄存器的使能位。

SI106x 系统时钟
注意: 如果选择精密内部振荡器作为系统时钟,则在更改内部振荡器校准位的值时应使用以下步骤。

  1. 切换到其他时钟源。
  2. 通过将OSCICN.7写入0来禁用振荡器。
  3. 将OSCICL更改为所需设置。
  4. 通过将OSCICN.7写入1来启用振荡器.

SI106x 系统时钟
SI106x datasheet下载

相关文章: