单片机
返回首页

LPC1768时钟详解

2018-06-27 来源:eefocus

LPC1768有三个独立的时钟源,可以通过软件进行配置。MCU上电并成功复位后,内部的RC振荡器开始起振,并以此为工作频率去读取内部ROM区的代码来执行初始化工作,其中就包括对系统时钟的配置(在文件system_LPC17xx.c中)。

系统时钟配置的过程如下:

                                                                                                  


LPC1700系列Cortex-M3微控制器包括3个独立的振荡器,它们分别为主振荡器(通常指外界晶振)、内部RC振荡器和RTC振荡器。每个振荡器可根据特定的应用要求来选用(通过配置时钟源选择寄存器CLKSRCSEL),寄存器配置如下

                                                                             表1  时钟源选择寄存器位描述



注意:注意下列有关时钟源选择的限制:

1. IRC的精度达不到USB接口的时间基准精度要求,因此IRC振荡器不应用作(通过PLL0)USB子系统的时钟源(USB要求一个占空比为50%的48MHz时钟源);

2. 如果CAN波特率高于100kbit/s,则IRC振荡器不应用作(通过PLL0)CAN控制器的时钟源

值得一提的是,LPC1768有一个专门针对主振荡器的寄存器叫作系统控制和状态寄存器(SCS),在选择主振荡器作为时钟源前,需要配置该寄存器。在该寄存器中可以配置主振荡器的频率范围、主振荡器使能,或读取主振荡器的状态(是否稳定)。位描述如下:

       表2  系统控制和状态寄存器(SCS)位描述



时钟源确定后,PLL将输入时钟源升频,然后再分频以提供给CPU、外设或USB子系统使用的实际时钟。需要注意的是USB子系统有其自身特定的PLL(见“PLL1”的描述)。PLL0可产生的时钟频率高达100MHz,是CPU所允许的最大值。

倍频和分频值通过写PLL0配置寄存器(PLL0CFG)中的MSEL0和NSEL0来改变,寄存器的位描述如表2.

表3  PLL0配置寄存器位描述



注意:在配置PLL0时必须将正确的馈送序列写入PLL0FEED寄存器才能使PLL0CON和PLL0CFG寄存器的更改生效。请参见手册PPL0馈送寄存器。

PLL0输出频率(当PLL0被激活且连接时)的公式:

Fcco=(2×M×FIN)/ N。

Fcco表示的是经过PLL0处理后输出的频率值,如果要为CPU和外设提供工作频率,还需要分别经过时钟分频器的分频,例如CPU时钟配置寄存器(CCLKCFG)、USB时钟配置寄存器(USBCLKCFG)等。

如果要用户根据需要自己配置M和N的值,请参见手册“计时和功率控制”一章中的确定4.5.11小节“PLL0频率参数的过程”。

在建立LPC1768的工程时,我们需要添加“system_17XX.c”文件,该文件主要的作用就是对系统时钟的配置,配置过程基本和本文一致。


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 家用电源无载自动断电装置的设计与制作

  • 短波AM发射器电路设计图

  • 带有短路保护系统的5V直流稳压电源电路图

  • 如何调制IC555振荡器

  • 基于ICL296的大电流开关稳压器电源电路

  • 基于TDA2003的简单低功耗汽车立体声放大器电路

    相关电子头条文章