基本信息
文件名称:NXP 系列:LPC1114 系列_(5).LPC1114时钟系统与复位.docx
文件大小:24.96 KB
总页数:25 页
更新时间:2025-06-05
总字数:约1.18万字
文档摘要

PAGE1

PAGE1

LPC1114时钟系统与复位

时钟系统概述

LPC1114系列单片机的时钟系统是其核心功能之一,负责为整个系统提供稳定和准确的时钟信号。时钟信号是单片机正常运行的基础,它决定了系统的运行速度、定时器精度以及外设的工作频率。LPC1114的时钟系统主要包括以下几个部分:

外部晶振(ExternalCrystalOscillator,XOSC):提供外部时钟源,通常用于生成高精度的时钟信号。

内部RC振荡器(InternalRCOscillator,IRC):提供内部时钟源,通常用于生成较低精度的时钟信号,但启动速度快。

PLL(Phase-LockedLoop):用于倍频外部时钟源,以生成更高频率的时钟信号。

系统时钟(SystemClock):整个系统的主时钟,可以由外部晶振、内部RC振荡器或PLL提供。

外设时钟(PeripheralClocks):为各个外设提供时钟信号,可以是系统时钟的分频或倍频。

外部晶振(XOSC)

外部晶振是LPC1114常用的高精度时钟源。通常,外部晶振连接到单片机的XTAL1和XTAL2引脚。LPC1114支持的外部晶振频率范围是1MHz到25MHz。外部晶振的启动时间较长,但一旦启动,可以提供非常稳定的时钟信号。

内部RC?振荡器(IRC)

内部RC振荡器是LPC1114的默认时钟源,启动速度快,但精度较低。LPC1114内部RC振荡器的频率为12MHz。在系统启动时,内部RC振荡器会立即启动,为系统提供初始时钟信号。

PLL(Phase-LockedLoop)

PLL是一种频率合成器,可以将外部时钟源的频率倍频到更高的频率。LPC1114的PLL可以将1MHz到25MHz的外部时钟源倍频到48MHz或更高。PLL的配置相对复杂,但可以大幅提高系统的运行速度。

系统时钟(SystemClock)

系统时钟是LPC1114的主时钟,可以由外部晶振、内部RC振荡器或PLL提供。系统时钟的频率决定了CPU的运行速度、定时器的精度以及外设的工作频率。通过配置时钟源和分频器,可以灵活地调整系统时钟的频率。

外设时钟(PeripheralClocks)

外设时钟为各个外设提供时钟信号,可以是系统时钟的分频或倍频。不同的外设可能需要不同的时钟频率,通过配置外设时钟可以满足这些需求。例如,定时器可能需要一个较低的时钟频率以实现精确的定时,而UART可能需要一个较高的时钟频率以实现高速通信。

时钟系统配置

启动内部RC振荡器

在LPC1114启动时,默认使用内部RC振荡器作为系统时钟源。可以通过读取SYSAHBCLKCTRL寄存器来确认内部RC振荡器是否已启用。

//读取SYSAHBCLKCTRL寄存器

uint32_tsys_ahb_clk_ctrl=LPC_CCU-SYSAHBCLKCTRL;

if(sys_ahb_clk_ctrl(10)){

//内部RC振荡器已启用

}

启动外部晶振

外部晶振需要通过配置PDRUNCFG寄存器来启用。启用后,外部晶振会经历一个启动过程,通常需要几毫秒的时间。可以通过读取SYSOSCCTRL寄存器来确认外部晶振是否已稳定。

//启用外部晶振

LPC_PMU-PDRUNCFG=~(11);//清除位1,启用外部晶振

//等待外部晶振稳定

while(!(LPC_SYSCTL-SYSOSCSTAT(10))){

//外部晶振未稳定

}

//确认外部晶振已启用

if(LPC_SYSCTL-SYSOSCSTAT(10)){

//外部晶振已启用

}

配置PLL

PLL的配置相对复杂,需要设置多个寄存器。以下是一个配置PLL的示例,将外部晶振的频率倍频到48MHz。

#includeLPC11xx.h

voidconfigure_pll(uint32_tsys_osc_clk,uint32_tsys_pll_clk){

uint32_tpll_m,pll_p;

//计算PLL的M和P值

pll_m=(sys_pll_clk/(sys_osc_clk/2))-1;

pll_p=(sys_osc_clk/2)/(sys_osc_clk/2);

//配置PLL

LPC_PMU-PDRUNCFG=