你不一定要点蓝字关注我的
![0c463b863d92aba44e6f50c4274e5f83.png](https://img-blog.csdnimg.cn/img_convert/0c463b863d92aba44e6f50c4274e5f83.png)
前言
时钟对于单片机来说是非常重要的,它能为单片机提供一个稳定的机器周期从而使系统能够正常工作。它就像我们人类的心脏一样重要,一但有了问题那么系统就会崩溃。我们在使用单片机的时候,常常会使用默认的时钟频率,然而在一些特殊的场合(例如串口通讯或者实时时钟),则需要特殊的时钟频率,这时芯片自带的振荡器就无法满足我们的需求。这个时候,就可以选择外部晶振作为时钟源。
芯片除了默认的内部 RC 振荡器和外部晶振,还有看门狗振荡器和低功耗振荡器,分别用于不同的场合。学习芯片内部系统时钟的运作,有助于我们配置出合适的时钟频率。下面我们会以 LPC82X 系列为例,从:振荡器种类、主时钟源的选择及使用、锁相环原理及配置、时钟输出(CLKOUT)功能说明及使用 和 时钟图形配置工具 这 5 点讲解系统时钟。
LPC82x 时钟树框图如下:
一、LPC82x 振荡器种类
首先我们来介绍一下 LPC82x 集成的 4 个独立的振荡器:内部 RC 振荡器(IRC Oscillator)、外部高速晶体振荡器(System Oscillator)、内部看门狗晶振(Watchdog Oscillator)、内部低功耗振荡器(LP OSC)。
1. 内部 RC 振荡器(IRC Oscillator)
内部高速 RC 振荡器,IRC 作为芯片上电缺省时钟,也就是说,如果芯片上电后没有对任何时钟寄存器进行配置的话,就会以 IRC 作为系统主时钟。
IRC 频率为 12 MHz,精度为正负 1.5% ,全温度范围从 -40℃ 到 105℃。
2. 外部高速晶体振荡器(System Oscillator)
内部高速 RC 振荡器的误差会随电压,温度,湿度等一些因素改变,当我们需要更加精准的时钟频率的时候,外部晶体振荡器可用作 CPU 的时钟源。SysOsc 工作频率范围为 1 MHz 至 25 MHz。此频率可通过系统 PLL 提高到更高的频率。
外部晶振还可以满足我们对特殊频率的需求,比如进行通信的时候,一般选择 11.0592MHz,12M 频率进行串行通信不容易实现标准的波特率,比如 9600,4800,而 11.0592M 计算时正好可以得到。然后在需要 RTC(实时时钟)的时候,晶振一般选用 32768 Hz,2 分频 15 次后为 1 Hz,周期为 1 秒。
外接晶体又称为“振荡”模式,电路一般如下:
此外 XTALIN 还能用于外部时钟输入,称为“从属”模式: