基本信息
文件名称:NXP 系列:LPC1100 系列 (基于 Cortex-M0)_(7).系统时钟与复位管理.docx
文件大小:21.1 KB
总页数:13 页
更新时间:2025-06-14
总字数:约7.83千字
文档摘要

PAGE1

PAGE1

系统时钟与复位管理

在嵌入式系统设计中,系统时钟和复位管理是至关重要的部分。它们直接影响系统的性能、功耗和可靠性。本节将详细介绍NXPLPC1100系列单片机的系统时钟和复位管理机制,包括时钟源的选择、时钟树的配置、复位源的识别和复位过程的管理。

1.系统时钟源

LPC1100系列单片机提供了多种时钟源,包括外部晶振、内部RC振荡器和外部时钟输入。这些时钟源可以通过软件配置来选择和配置,以满足不同的应用需求。

1.1外部晶振

外部晶振是一种高精度的时钟源,通常用于需要精确时钟的应用。LPC1100系列支持12MHz的外部晶振。外部晶振通过连接到单片机的XIN和XOUT引脚来提供时钟信号。

配置外部晶振:

//配置外部晶振

voidconfigure_external_oscillator(void){

//使能外部晶振

LPC_SYSCON-SYSOSCCTRL|=(10);//SYSOSCCTRL[0]=1,enableexternaloscillator

LPC_SYSCON-SYSPLLCTRL|=(10);//SYSPLLCTRL[0]=1,enablesystemPLL

//配置时钟源为外部晶振

LPC_SYSCON-SYSAHBCLKCTRL|=(10);//使能系统时钟

LPC_SYSCON-MAINCLKSEL=0x01;//选择外部晶振作为主时钟源

LPC_SYSCON-MAINCLKUEN=0x01;//更新主时钟源

//等待时钟稳定

while(!(LPC_SYSCON-SYSOSCSTAT(10)));//等待外部晶振稳定

while(!(LPC_SYSCON-SYSPLLSTAT(10)));//等待PLL稳定

}

代码说明:

LPC_SYSCON-SYSOSCCTRL|=(10);:使能外部晶振。

LPC_SYSCON-SYSPLLCTRL|=(10);:使能系统PLL。

LPC_SYSCON-SYSAHBCLKCTRL|=(10);:使能系统时钟。

LPC_SYSCON-MAINCLKSEL=0x01;:选择外部晶振作为主时钟源。

LPC_SYSCON-MAINCLKUEN=0x01;:更新主时钟源。

while(!(LPC_SYSCON-SYSOSCSTAT(10)));:等待外部晶振稳定。

while(!(LPC_SYSCON-SYSPLLSTAT(10)));:等待PLL稳定。

1.2内部RC振荡器

内部RC振荡器是一种低精度的时钟源,通常用于需要快速启动的应用。LPC1100系列支持12MHz的内部RC振荡器。

配置内部RC振荡器:

//配置内部RC振荡器

voidconfigure_internal_oscillator(void){

//使能内部RC振荡器

LPC_SYSCON-SYSRCSRC=0x00;//选择内部RC振荡器作为系统时钟源

LPC_SYSCON-SYSRCSRCUEN=0x01;//更新系统时钟源

//配置主时钟源为内部RC振荡器

LPC_SYSCON-MAINCLKSEL=0x00;//选择内部RC振荡器作为主时钟源

LPC_SYSCON-MAINCLKUEN=0x01;//更新主时钟源

}

代码说明:

LPC_SYSCON-SYSRCSRC=0x00;:选择内部RC振荡器作为系统时钟源。

LPC_SYSCON-SYSRCSRCUEN=0x01;:更新系统时钟源。

LPC_SYSCON-MAINCLKSEL=0x00;:选择内部RC振荡器作为主时钟源。

LPC_SYSCON-MAINCLKUEN=0x01;:更新主时钟源。

1.3外部时钟输入

外部时钟输入是一种灵活性高的时钟源,可以通过外部信号源提供时钟信号。LPC1100系列支持外部时钟输入,通常用于需要外部同步的应用。

配置外部时钟输入:

//配置外部时钟输入

voidconfigure_external_clock(void){

//使能外部时钟输入

LPC_SYSCON-EXTCLKSEL=0x01;//选择外部时钟输入作为系统时钟源

LPC_SYSCON-EXTCLKUEN=0x01;//更新系统时