1,时钟结构

Fosc是外部晶振时钟;

Fcco是PLL倍频之后的时钟;

CCLK是PLL输出时钟,也是处理器的运行时钟;

PLL0 是处理器运行和UART0使用

PLL1是USB使用,要求必须48MHz,要求外部晶振时钟必须是12MHz,16MHz,24MHz

M、P的值是配置寄存器中的值加1;

2,PLL时钟配置

新建工程之后,在启动文件cr_startup_lpc21.s  中,默认对PLL和外部设备时钟进行了配置


#ifdef PLL_INIT.set PLL,                SYSCTRL+0x40.set   PLLCON_OFFSET,      0x0.set PLLCFG_OFFSET,      0x4.set PLLSTAT_OFFSET,     0x8.set PLLFEED_OFFSET,     0xC.set PLOCK,              (1<<10)   //lock bit inside PLLSTAT.set   SET_PLLCFG_MUL3,    0x2.set SET_PLLCFG_MUL4,    0x3.set SET_PLLCFG_MUL5,    0x4.set SET_PLLCFG_MUL6,    0x5.set SET_PLLCFG_DIV1,    (0x0<<4).set  SET_PLLCFG_DIV2,    (0x1<<4).set  SET_PLLCFG_DIV4,    (0x2<<4).set  SET_PLLCFG_DIV8,    (0x3<<4).set  PLLCFG_INIT_VAL,    SET_PLLCFG_MUL6 | SET_PLLCFG_DIV1.set   SET_PLLCON_ENABLE,  1.set   SET_PLLCON_CONNECT, 2/** Setup the PLL*/LDR     R0,=PLLMOV     R1,#0xAAMOV     R2,#0x55MOV     R3,#PLLCFG_INIT_VALSTR      R3,[R0,#PLLCFG_OFFSET]MOV       R3,#SET_PLLCON_ENABLESTR        R3,[R0,#PLLCON_OFFSET]STR       R1,[R0,#PLLFEED_OFFSET]STR      R2,[R0,#PLLFEED_OFFSET]// Wait for the loop to lock
1:      LDR     R3,[R0,#PLLSTAT_OFFSET]ANDS R3,R3,#PLOCKBEQ     1b// Now swap the cpu clock to the PLL MOV      R3,#(SET_PLLCON_ENABLE | SET_PLLCON_CONNECT)STR     R3,[R0,#PLLCON_OFFSET]STR       R1,[R0,#PLLFEED_OFFSET]STR      R2,[R0,#PLLFEED_OFFSET]#endif   

通过代码.set    PLLCFG_INIT_VAL,    SET_PLLCFG_MUL6 | SET_PLLCFG_DIV1

可以得知M = 6;P = 1;

CCLK = M * Fosc = 6 * 12 = 72MHz;

3,APB divider外设时钟(PCLK)配置

APB分频器确定处理器时钟(CCLK)和外围设备使用的时钟(PCLK)之间的关系。APB分隔符有两个目的。首先是通过APB总线为外设提供所需的PCLK,以便它们能够以为ARM处理器选择的速度运行。为了实现这一点,APB总线可以被减慢到处理器时钟速率的一半或四分之一。因为APB总线必须在通电时正常工作(如果APB分频器控制寄存器驻留在APB总线上,它的时间不能改变),重置时的默认条件是APB总线以四分之一的速度运行。APB分频器的第二个目的是,当应用程序不需要任何外围设备以全处理器速率运行时,允许节省电力。APB分频器相对于振荡器和处理器时钟的连接如图12所示。因为APB分隔符已连接到PLL输出,所以PLL在空闲模式下仍然保持活动状态(如果它正在运行)。

也就是说PCLK是由CCLK分频得到的,分频值由APBDIV确定。

00  处理器时钟四分之一; 01 与处理器时钟相同 10 处理器适中的一半; 11  保留,不影响;

在启动文件cr_startup_lpc21.s  中,默认配置如下


#ifdef VPB_INIT
/** Setup the VPB/APB Peripheral bus clock*/.set    VPBDIV_OFFSET,      0xc0.set    VPBDIV,             SYSCTRL+VPBDIV_OFFSET.set  VPBDIV_INIT_VAL,    1LDR        R0,=VPBDIVLDR      R1,=VPBDIV_INIT_VALSTR     R1,[R0]#endif

由上文件可知APBDIV的值为1,与处理器时钟相同,即72MHz。

举例将CCLK设置为60MHz,PCLK设置为30MHz;修改cr_startup_lpc21.s中的内容

CCLK = M * Fosc = 5 * 12 = 60MHz;

PCLK = CCLK / 2 = 30MHz;

LPC2148的时钟配置相关推荐

  1. STM32的时钟配置随笔

    以前使用STM32都是使用库函数开发,最近心血来潮想要使用寄存器来试试手感,于是乎便在工作之余研究了一下STM32F4的时钟配置,在此将经历过程写下来作为锻炼,同时也供和我一样的新手参考,如有错误或者 ...

  2. 华大单片机HC32L136J8TA读取DS18B20温度(源码+时钟配置)

    免费的C语言和linuxPDF文档:传送门 有一点C语言基础和华大单片机开发经验,应该就能看得懂就不多介绍了,有疑问可以留言,看到就回了; 关于协议具体解析:传送门@不脱发的程序猿 注(2021-05 ...

  3. STM32的时钟配置——时钟树解析

    此文章由于讲得较详细因此篇幅较长,请带着一点耐心去读,相信会有收获! 目录 STM32为什么要有复杂的时钟系统 详解STM32时钟系统 STM32有几个时钟源 关于时钟输出 软件配置时钟 STM32为 ...

  4. NXP(I.MX6uLL)DDR3实验——DDR3重要时间参数、时钟配置与原理图简析

    目录 DDR3 内存时间参数 传输速率 tRCD 参数 CL 参数 AL 参数 tRC 参数 tRAS 参数 I.MX6U MMDC内存控制器简介 MMDC内存控制器简介 MMDC内存控制器信号引脚 ...

  5. STM32 RCC时钟配置

    STM32 RCC时钟配置 时钟源 外部高速晶振HSE,通常是8MHz. 内部高速晶振HSI,8MHz. 外部低速晶振LSE,32.768KHz. 内部低速晶振LSI,40KHz. 时钟源选择 通常使 ...

  6. stm32时钟配置总结

    stm32时钟配置时钟源: 1,HSE(高速外部时钟)即常见的外接8M晶振方案: 2,HSI(高速内部时钟) 即8M内部振荡时钟方案: 3,LSE(低速外部时钟)即常见的32.768Khz晶振方案: ...

  7. 火牛单片机rtc时钟配置_怎么用STM32F103RTC进行时钟的配置

    #include "sys.h" #include "delay.h" #include "usart.h" #include " ...

  8. DSP28377s系统时钟配置注意事项

    DSP28377s系统时钟配置注意事项 问题一脸嫣然的向我们走来... 近日,一个兄弟在配置基于28377s芯片的主控系统时钟时,遇到点困难. 具体是这样的,原来的主控板使用的是20MHz外部晶振,为 ...

  9. 如何修改IMX6UL开发板时钟配置?

    启扬i.MX6UL开发板时钟由24Mhz与32.768Khz晶振提供,这里不具体介绍NXP公司整体的时钟规划,只从软件API接口方面去分析如何去修改一个外设的时钟. 接下来的讲解将以CAN总线的时钟为 ...

最新文章

  1. 动态的管理ASP.NET DataGrid数据列
  2. 分布式服务限流实战,已经为你排好坑了
  3. vc++ 隐式链接dll
  4. 2021-01-07 python opencv实现车牌识别 颜色定位
  5. oracle 创建表中又有表,oracle创建表
  6. 八、pink老师的学习笔记—— CSS用户界面样式(鼠标样式、轮廓线、防止拖拽文本域)
  7. Stream anyMatch查找案例
  8. javascript数据结构与算法--散列
  9. 一元线性回归 R语言
  10. 未来计算机二级软件vc,江苏省计算机二级VC++上机模拟软件
  11. hdb3编码规则波形_求HDB3码编码后波形,编码后功率谱密度图形,求解啊
  12. Apache 许可证2.0 版
  13. GoldWave教程分享:删除声道该怎么操作?
  14. linux源码rm函数,linux的rm命令源码
  15. Go和Rust计算性能大比武
  16. AES算法在Wi-Fi加密中的应用
  17. scp 的拷贝限速功能
  18. SAP HANA SQL系列二:数据类型转换函数
  19. 广播发送者广播接收者介绍
  20. Vue如何将baes64格式的图片转成普通格式

热门文章

  1. 用于主题检测的临时日志(9fcb0391-54d0-4f35-9170-e53887f47814 - 3bfe001a-32de-4114-a6b4-4005b770f6d7)...
  2. 中心和非中心卡方分布
  3. 如何学习(三)看到更多东西
  4. 全数字摄影测量系统应用(4D)
  5. 上海交大的微电子学院计算机科学与技术 与 电子信息 区别,电子科学与技术和电子信息工程,到底有啥差别?学姐给你讲个明白...
  6. 互联网快讯:齐广璞空中技巧夺金;极米投影产品成用户首选;星巴克美式、拿铁等产品涨价
  7. 基于MOS管的防反接电路设计仿真
  8. 花3万买的大学申请文书,竟和ChatGPT写的一样?
  9. 安装pytorch 1.0 出现的问题及解决方法
  10. 用cmd登录mysql数据库