LPC1788系统时钟的设置

本文详细介绍了LPC1788微控制器的系统时钟配置,包括主振荡器、内部RC振荡器和RTC振荡器的使用。重点讲述了如何通过配置PLL0和PLL1来提高系统时钟频率,并提供了CPU、USB、EMC等时钟源的选择与分频设置。此外,还涵盖了功耗模式和外部时钟输出的配置。
摘要由CSDN通过智能技术生成

LPC1788系统时钟的设置

 LPC1788有3个独立的振荡器。他们是主振荡器,内部RC振荡器,RTC振荡器。复位后,LPC1788将用内部的RC振荡器运行,直到被软件切换。这样就能在没有任何外部晶振的情况下运行。LPC1788的时钟控制如图1所示(英文手册P35:

          使用12M的晶振作为主振荡器,它通过锁相环PLL0来提高频率提供CPU。由于芯片总是从内部的RC振荡器开始工作,因此主振荡器只会应软件的请求而启动。实现方法是设定SCS寄存器中的OSCEN位使能。主振荡器提供一个状态标志SCS寄存器的OSCSTAT位,这样软件就可以确定何时主振荡器在运行稳定。此时,软件可以控制切换到主振荡器,使其作为时钟源。在启动以前,必须通过SCS的OSCRANGE位,选择一个频率范围。在确定了主振荡器之后,需要进行锁相环的配置。

1)       配置CLKSRCSEL选择正确的时钟源,内部振荡器切换为主振荡器(osc_clk);

2)       配置PLL0将正确的PLL0设置值写入PLL0CFG寄存器并且在PLL0CON中使能PLL0,向PLLFEED寄存器中写入馈送序列0xAA,0x55;

3)       配置PLL1,同PLL0

4)       设置所需的时钟分配器如CCLKSEL,PCLSEL,EMCCLKSEL,以及USBCLKSEL寄存器。 

在转载的LPC1788启动代码分析有提到启动代码程序完成如下内容的工作:

 Reset_Handler函数中会执行SystemInit函数,这个函数在文件system_LPC177x_8x.c中。 

#define CLOCK_SETUP           1

#define SCS_Val               0x00000021

#define PLL0_SETUP        

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值