作者: Mary Iva Rosario Salimbao,Microchip Technology Inc.
简介
振荡器模块用于处理8位PIC®单片机的时钟源选择。该模块内含内部高频振荡器(HFINTOSC)、外部高频振荡器(EXTOSC),辅助振荡器模块(SOSC)、PLL和其他低频振荡器。图1给出了振荡器在振荡器模块中的连接方式。
本技术简介涵盖内部振荡器的特性、功能和工作原理。本文档讨论了振荡器模块中的功能;它如何与时钟切换配合工作以及8位PIC MCU节能特性的作用。
振荡器模块
振荡器模块为CPU和各种外设提供了多种时钟源和特性。尽管系统时钟最初在配置字中配置,用户仍可在用户代码中调节时钟频率或更改时钟源。图1给出了模块的框图。 该框图包括时钟源、时钟源与后分频比选择、4xPLL电路、故障保护时钟监视器(Fail-Safe Clock Monitor,FSCM)和外设模块禁止(Peripheral Module Disable,PMD)支持。有关模块的更多信息,请参见《振荡器模块技术简介》(TB3148)。
注: 系统时钟(SYSCMD)是否具有外设模块禁止(PMD)功能取决于具体器件。请参见器件数据手册检查器件中是否存在该功能。
高频内部振荡器
HFINTOSC是模块最常用的内部振荡器,频率范围高达64 MHz。HFINTOSC工作频率由OSCFRQ和N/CDIV设置的组合确定,默认值由RSTOSC确定。图2给出了配置字中可用的振荡器设置。
该振荡器也用作MFINTOSC外设时钟的恒定频率输出的基准。MFINTOSC频率来自于FINTOSC的数字分频,以提供31.25 kHz和500 kHz频率。
自动使能
无论系统时钟源(外部或内部)如何,当外设使用MFINTOSC作为时钟源时,将使能HFINTOSC。由于振 荡 器 频 率 会 影 响 器 件 的 运 行 功 耗,因 此 会 考 虑HFINTOSC的OSCFRQ设置。要在使用MFINTOSC时降低功耗,OSCFRQ必须设置为最小值。
频率选择
复位时,HFINTOSC工作频率由RSTOSC决定。可在用户代码中改变OSCFRQ寄存器中的频率。工作频率也可通过时钟切换进一步后分频。表1提供了OSCFRQ下可选频率的列表。OSCFRQ频率高于4 MHz时,功耗较高且启动时间较长。 这些影响是由用于实现更高频率的内部PLL块引起的。
【注】
1: 这些是由RSTOCS位决定的默认振荡器设置。
2: 这些选项仅适用于PIC18,不适用于PIC16。
频率调节
HFINTOSC频率可在用户代码中进行微调。具体方法是以6位二进制补码形式写入OSCTUNE寄存器(符号位 + 5位)。OSCTUNE值为0时,振荡器调节为中心频率。一旦OSCTUNE被修改,频率便开始转变,而且不影响代码执行。不过,不会有任何迹象表明频率发生了转变。按照OSCTUNE寄存器中的配置,频率可以按64步增加,最多可增加校准值的3.2%。
时钟切换
振荡器模块的时钟切换特性允许用户通过写入振荡器控制寄存器的新振荡器源(NOSC)和新分频比选择(NDIV)请求位来改变系统时钟源和分频比。
写入NOSC位将启动时钟源切换。在内部和外部时钟源之间切换时,会在下一次代码执行前增加特定的延时。
CPU将确认新的振荡器源是否可用,并在振荡器就绪可供使用前等待其稳定。
通过写入NDIV位,可以进一步对HFINTOSC和其他源的工作频率进行后分频。表1给出了更多可配置频率选项,通过组合OSCFRQ和N/CDIV位可获得这些选项。
对于仅后分频比切换,时钟源会立即就绪,因此延时可以忽略不计。
切换源和后分频比的示例分别如图3和图4所示。这些图给出了在时钟切换之前和之后翻转I/O引脚的行为。
这些图的示例代码如例1和例2所示。在同一寄存器中结合使用NOSC和NDIV可避免产生两个切换过程。对控制寄存器进行单次写入,可降低中间状态出现超频和降频的风险。有关切换过程的更多信息,请参见TB3148。
故障保护时钟监视器
当外部振荡器出现故障时,该振荡器模块功能将在COSC位中选择HFINTOSC,以确保器件继续工作。器件将以OSCFRQ中设置的频率工作,并保留N/CDIV中的后分频比设置。系统在HFINTOSC下运行时,用户可凭借振荡器故障中断(OSCIF)选项解决外部时钟故障。故障状态将在复位时、休眠后或通过NOSC和NDIV成功切换时清除。
节能特性
通常,当器件进入打盹、空闲或休眠模式时,所有内部振荡器(包括HFINTOSC)均不受影响。这些模式仅控制或禁止配置的系统时钟。直接使用内部振荡器的外设仍继续工作。
对于支持PMD的振荡器模块,PMD功能禁止任何外设使用时钟源。与之前的模式类似,这对内部振荡器及其所处理外设的工作没有任何影响。
有关这些节能特性的更详细讨论,请参见《8位PIC®单片机的打盹、空闲和PMD功能》(TB3144)。
结论
8位PIC单片机的数字控制振荡器为系统和外设时钟源提供了广泛的可选频率。 振荡器模块为切换工作频率提供了一个简单而平稳的过程。节能特性对内部振荡器没有影响,这确保了外设正常工作,同时还能降低功耗。
来源:microchip