基本信息
文件名称:NXP 系列:LPC1700 系列 (基于 Cortex-M3)_18. LPC1700系列时钟管理.docx
文件大小:23.78 KB
总页数:27 页
更新时间:2025-06-14
总字数:约1.13万字
文档摘要

PAGE1

PAGE1

18.LPC1700系列时钟管理

18.1时钟源概述

LPC1700系列微控制器提供了多种时钟源,这些时钟源可以用于系统时钟、外设时钟以及其他各种时钟需求。时钟源的选择和配置对于系统的性能和功耗管理至关重要。LPC1700系列的主要时钟源包括:

内部RC振荡器(IRC):提供一个固定频率的时钟源,通常为12MHz。IRC振荡器不需要外部元件,适用于快速启动和低功耗应用。

外部晶振(CrystalOscillator):通过外部晶振提供的时钟源,频率范围通常在1MHz到25MHz之间。外部晶振可以提供更精确的时钟频率,适用于需要高精度的应用。

外部时钟输入(ExternalClockInput):可以从外部输入一个时钟信号,频率范围同样在1MHz到25MHz之间。外部时钟输入适用于需要外部同步的系统。

PLL(Phase-LockedLoop):通过锁相环可以将低频时钟源倍频到更高的频率,适用于需要高速处理的应用。

18.1.1内部RC振荡器(IRC)

内部RC振荡器(IRC)是一个固定的12MHz时钟源,不需要外部元件。IRC振荡器可以快速启动,适用于低功耗和快速启动的应用。IRC振荡器的频率可以通过软件进行校准,以提高其精度。

启用IRC振荡器

启用IRC振荡器的步骤如下:

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

通过CLKOUTU寄存器选择IRC作为CLKOUT输出时钟源。

通过SYSAHBCLKDIV寄存器设置系统时钟分频。

#includeLPC17xx.h

//启用IRC振荡器

voidenable_irc_oscillator(void){

//选择IRC作为系统时钟源

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

//选择IRC作为CLKOUT输出时钟源

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

//设置系统时钟分频

LPC_SC-SYSAHBCLKDIV=0x01;//0x01表示不分频

}

intmain(void){

enable_irc_oscillator();

//主程序

while(1){

//系统运行

}

}

18.1.2外部晶振(CrystalOscillator)

外部晶振可以通过外部晶振电路提供一个精确的时钟源。LPC1700系列支持1MHz到25MHz的外部晶振频率。外部晶振的配置包括选择晶振作为时钟源、配置晶振的启动时间和频率等。

启用外部晶振

启用外部晶振的步骤如下:

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

配置晶振的启动时间和频率。

通过CLKOUTSEL寄存器选择外部晶振作为CLKOUT输出时钟源。

通过SYSAHBCLKDIV寄存器设置系统时钟分频。

#includeLPC17xx.h

//启用外部晶振

voidenable_external_oscillator(void){

//选择外部晶振作为系统时钟源

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

//配置晶振的启动时间和频率

LPC_SC-CCLKCFG=0x01;//选择晶振频率为12MHz

LPC_SC-OSCCTRL=0x000F0000;//设置晶振启动时间为1024cycles

//选择外部晶振作为CLKOUT输出时钟源

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

//设置系统时钟分频

LPC_SC-SYSAHBCLKDIV=0x01;//0x01表示不分频

}

intmain(void){

enable_external_oscillator();

//主程序

while(1){

//系统运行

}

}

18.1.3外部时钟输入(ExternalClockInput)

外部时钟输入可以从外部提供一个时钟信号,频率范围同样在1MHz到25MHz之间。外部时钟输入适用于需要外部同步的系统。配置外部时钟输入包括选择外部时钟作为时钟源、配置输入时钟的频率等。

启用外部时钟输入

启用外部时钟输入的步骤如下:

设置CLKSRCSEL寄存