基本信息
文件名称:NXP 系列:LPC1768 (适用于复杂娱乐设备)_(6).LPC1768时钟和复位控制.docx
文件大小:35.23 KB
总页数:44 页
更新时间:2025-06-15
总字数:约2.46万字
文档摘要

PAGE1

PAGE1

LPC1768时钟和复位控制

时钟和复位控制是嵌入式系统设计中的关键部分,尤其是在使用LPC1768微控制器时。LPC1768具有复杂的时钟系统和多种复位源,这些功能确保了系统的稳定性和高效性。本节将详细介绍LPC1768的时钟和复位控制机制,包括时钟源、时钟树、时钟配置以及复位源和复位控制。

时钟源

LPC1768支持多种时钟源,主要包括外部晶振、内部RC振荡器、PLL(锁相环)和系统时钟。每种时钟源都有其特定的应用场景和配置方法。

外部晶振

外部晶振是LPC1768最常用的时钟源之一。它通常连接到微控制器的X1和X2引脚,提供一个精确的时钟信号。外部晶振的频率范围通常在1MHz到25MHz之间。

配置外部晶振

硬件连接:将外部晶振连接到X1和X2引脚。

软件配置:通过修改寄存器来启用外部晶振。

//启用外部晶振

voidenable_external_oscillator(void){

//设置系统控制寄存器SCS中的XOEN位

LPC_SC-SCS|=(15);//使能外部晶振

//等待外部晶振稳定

while(!(LPC_SC-SCS(16)));//检查XOSCF位,确认外部晶振已稳定

}

内部RC振荡器

内部RC振荡器是一种低精度但高可靠性的时钟源,用于系统启动时的初始时钟。LPC1768内部RC振荡器的频率为12MHz。

配置内部RC振荡器

软件配置:通过修改寄存器来启用内部RC振荡器。

//启用内部RC振荡器

voidenable_internal_oscillator(void){

//设置系统控制寄存器SCS中的IRCEN位

LPC_SC-SCS|=(14);//使能内部RC振荡器

//等待内部RC振荡器稳定

while(!(LPC_SC-SCS(17)));//检查IRCOSCF位,确认内部RC振荡器已稳定

}

PLL(锁相环)

PLL用于将低频时钟源转换为高频时钟源,以提高系统的性能。LPC1768支持两个PLL,分别称为PLL0和PLL1。PLL0通常用于主系统时钟,而PLL1用于USB时钟。

配置PLL0

选择输入时钟源:可以是内部RC振荡器或外部晶振。

设置PLL0的乘法和除法因子。

启用PLL0并等待其稳定。

//配置PLL0

voidconfigure_pll0(intmul_factor,intdiv_factor){

//选择输入时钟源为外部晶振

LPC_SC-PLL0CON=0x01;//PLL0配置为旁路模式

LPC_SC-PLL0CFG=(mul_factor16)|(div_factor0xFF);//设置乘法和除法因子

LPC_SC-PLL0FEED=0xAA;//写入PLL0FEED寄存器

LPC_SC-PLL0FEED=0x55;//写入PLL0FEED寄存器

//启用PLL0

LPC_SC-PLL0CON=0x03;//PLL0配置为锁定模式

LPC_SC-PLL0FEED=0xAA;//写入PLL0FEED寄存器

LPC_SC-PLL0FEED=0x55;//写入PLL0FEED寄存器

//等待PLL0稳定

while(!(LPC_SC-PLL0STAT(126)));//检查PLL0锁定状态

}

系统时钟

系统时钟是指LPC1768内部用于系统运行的时钟。它可以来自内部RC振荡器、外部晶振或PLL。

配置系统时钟

选择系统时钟源。

设置系统时钟分频器。

//配置系统时钟

voidconfigure_system_clock(intclock_source,intdivisor){

//选择系统时钟源

LPC_SC-CCLKSEL=clock_source;//0:IRC,1:ext.osc.,2:PLL0

//设置系统时钟分频器

LPC_SC-CCLKCFG=divisor-1;//分频因子,实际值为divisor

//等待系统时钟稳定

while(!(LPC_SC-SYSSTAT(116)));//检查系统时钟稳定状态

}

时钟树

LPC1768的时钟树是一个复杂的时钟分配网络,它确保了各个模块的时钟需求