基本信息
文件名称:NXP 系列:LPC1768 系列_(5).LPC1768系列时钟管理.docx
文件大小:25.81 KB
总页数:30 页
更新时间:2025-06-05
总字数:约1.47万字
文档摘要

PAGE1

PAGE1

LPC1768系列时钟管理

时钟源

LPC1768系列微控制器提供了多种时钟源,这些时钟源可以用于系统时钟、外设时钟以及各种定时器。理解这些时钟源的工作原理和配置方法是进行高效系统设计的基础。

1.内部RC振荡器(IRC)

内部RC振荡器是一个内置的低精度振荡器,通常用于系统启动时的时钟源。IRC振荡器的频率为12MHz,可以通过软件配置启用或禁用。

启用IRC振荡器

//启用内部RC振荡器

voidenableIRC(void){

//设置CLKSRCSEL寄存器选择IRC作为系统时钟源

LPC_SC-CLKSRCSEL=0x00;//0x00表示选择IRC

//设置系统时钟控制寄存器(SYSAHBCLKDIV)为1,即不进行分频

LPC_SC-SYSAHBCLKDIV=0x01;

//设置系统时钟选择寄存器(SYSPLLCLKSEL)选择IRC作为PLL输入时钟源

LPC_SC-SYSPLLCLKSEL=0x00;

//使能PLL

LPC_SC-PLOCK=0x01;//设置PLL使能位

//等待PLL锁定

while(!(LPC_SC-PLOCK0x01)){

//等待PLL锁定

}

//设置系统时钟选择寄存器(SYSPLLCLKSEL)选择PLL输出作为系统时钟源

LPC_SC-SYSPLLCLKSEL=0x01;

//设置系统时钟控制寄存器(SYSAHBCLKDIV)为1,即不进行分频

LPC_SC-SYSAHBCLKDIV=0x01;

}

//示例:启用IRC振荡器并配置系统时钟

intmain(void){

enableIRC();

//其他初始化代码

}

2.外部晶振(XTAL)

外部晶振是一个高精度振荡器,通常用于需要高精度时钟的应用。LPC1768支持4~25MHz的外部晶振频率。外部晶振可以通过软件配置启用或禁用,并且可以作为PLL的输入时钟源。

启用外部晶振

//启用外部晶振

voidenableXTAL(void){

//设置CLKSRCSEL寄存器选择外部晶振作为系统时钟源

LPC_SC-CLKSRCSEL=0x01;//0x01表示选择外部晶振

//使能外部晶振

LPC_SC-PCLKSEL0=(LPC_SC-PCLKSEL0~(0x036))|(0x026);//使能外部晶振

//等待外部晶振稳定

while(!(LPC_SC-PLLSTAT0x01)){

//等待外部晶振稳定

}

//设置系统时钟选择寄存器(SYSPLLCLKSEL)选择外部晶振作为PLL输入时钟源

LPC_SC-SYSPLLCLKSEL=0x01;

//使能PLL

LPC_SC-PLOCK=0x01;//设置PLL使能位

//等待PLL锁定

while(!(LPC_SC-PLOCK0x01)){

//等待PLL锁定

}

//设置系统时钟选择寄存器(SYSPLLCLKSEL)选择PLL输出作为系统时钟源

LPC_SC-SYSPLLCLKSEL=0x01;

//设置系统时钟控制寄存器(SYSAHBCLKDIV)为1,即不进行分频

LPC_SC-SYSAHBCLKDIV=0x01;

}

//示例:启用外部晶振并配置系统时钟

intmain(void){

enableXTAL();

//其他初始化代码

}

时钟分频

时钟分频是通过系统时钟控制寄存器(SYSAHBCLKDIV)和外围时钟控制寄存器(PCLKSEL0、PCLKSEL1)来实现的。通过分频,可以调整系统时钟和外设时钟的频率,以满足不同应用的需求。

1.系统时钟分频

系统时钟分频通过SYSAHBCLKDIV寄存器来实现。该寄存器的值决定了系统时钟的分频倍数。

配置系统时钟分频

//配置系统时钟分频

voidconfigureSystemClockDiv(intdiv){

//设置系统时钟控制寄存器(SYSAHBCLKDIV)