S3C2440在默认情况下,整个系统全靠一个12MHz的外部晶振提供频率来工作运行的,也就是说CPU、内存、UART、ADC等所有需要用到时钟频率的硬件都工作在12MHz下,但是通过查阅芯片手册我们知道CPU时钟最高可为400MHZ,那么怎么设置时钟让芯片工作在更高的时钟频率下呢?首先我们来看一下S3C2440的时钟框架。

由图可知S3C2440可以通过XTIpll、XTOpll引脚外接晶振(通常为12MHZ),也可以通过EXTCLK外接时钟,我们一般选择外接晶振。我们接入的时钟才12M,而CPU时钟却可以高达400M,锁相环(PLL)就是用来倍频时钟的,2440有MPLL和UPLL这两个时钟锁相环,MPLL倍频后的时钟主要用于CPU和各种外设,而UPLL倍频后的时钟主要用于USB。我们可以通过OM[3:2]来控制这两个锁相环的时钟源,因为通常我们是外接晶振,所以把OM3和OM2这两个引脚接到GND。

MPLL倍频后的时钟为FCLK,而FCLK经过分频又得到HCLK(挂载一些高速外设)和PCLK(挂载低速外设),我们可以把MDIV、PDIV、SDIV分别配置为92(0X5C),1,1,也就是把(92<<12)|(1<<4)|(1<<0)写到0X4C000004地址得到400M的FCLK。

补充关于下图的知识,一般我们系统上电后电压不稳定,我们可通过外围电路实现把nRESET拉低一段时间后再拉高,此时系统开始工作,FCLK还只是外接的晶振的频率,OM[3:2]引脚电平锁存后,PLL开始工作,经过一段锁存时间后,FCLK变为稳定的倍频时钟用于系统工作,锁存时间可通过设置LOCKTIME来改变,默认是设置为0XFFFFFFFF,一般我们不对其进行修改。

假如我们想通过400M的FCLK得到100M的HCLK和50M的PCLK,查阅下表我们知道可以往0X4C000014写入0x5。

但是这里我们需要注意一点:如果HDIV设置为非0,CPU的总线模式要进行改变,默认情况下FCLK = HCLK,CPU工作在fast bus mode快速总线模式下,HDIV设置为非0后, FCLK与HCLK不再相等,要将CPU改为asynchronous bus mod异步总线模式,可以通过下面的嵌入汇编代码实现:

        mrc p15,0,r0,c1,c0,0orr r0,r0,#0xc0000000   //R1_nF:OR:R1_iAmcr p15,0,r0,c1,c0,0

S3C2440时钟体系相关推荐

  1. S3C2440时钟体系 - SOC裸机

    前面章节内容针对ARM内核和ARM内核汇编完成了ARM处理器最基础内容的学习,从本章开始我们针对集合ARM内核的SOC片上系统展开学习.片上系统设计的主要是针对各种外界硬件设备的驱动开发工作,关于这部 ...

  2. 【嵌入式开发】时钟初始化 ( 时钟相关概念 | 嵌入式时钟体系 | Lock Time | 分频参数设置 | CPU 异步模式设置 | APLL MPLL 时钟频率设置 )

    文章目录 一. 时钟相关概念解析 1. 相关概念术语 ( 1 ) 时钟脉冲信号 ( 概念 : 电压幅度 时间间隔 形成脉冲 | 作用 : 时序逻辑基础 间隔固定 根据脉冲数量可计算出时间 ) ( 2 ...

  3. arm linux 时钟源 信息,Linux学习——ARM芯片时钟体系

    跟着视频学习了ARM芯片时钟体系,信息量有点大,做个笔记梳理梳理. 1.时钟体系的结构图 有很多外设,一些工作在AHB总线,一些工作在APB总线 CPU工作在FCLK,AHB总线工作在HCLK,APB ...

  4. 韦东山ARM第一期作业(一)ARM时钟体系

    文章目录 01 - 作业所在路径 02 - 作业描述 03 - 作业解答 01 - 作业所在路径   ARM裸机1期加强版\源码文档图片\文档图片\第010课_掌握ARM芯片时钟体系 02 - 作业描 ...

  5. s3c6410时钟体系

    S3C6410时钟体系 S3C6410可以使用外部晶振( XXTIpll )(默认为12MHZ)和外部时钟( XEXTCLK )两种方式输入时钟信号.它由跳线OM[0]决定.S3C6410 默认的工作 ...

  6. 掌握ARM芯片时钟体系

    1.s3c2440时钟体系结构 Fclk.Hclk.Pclk如何得到?时钟源 12M晶振----PLL锁相环---->400M\136M\68M 晶振---------|--->MPLL- ...

  7. linux 调整时钟的频率,S3C2440时钟设置

    S3C2440时钟设置 #define MDIV_405        0x7f << 12 #define PSDIV_405      0x21 #define LOCKTIME_OF ...

  8. Exynos4412时钟体系分析

    本文转载自:http://www.techbulo.com/1365.html 在芯片手册里,"时钟管理单元 (Clock Management Unit)"的简称为 CMU .C ...

  9. S3C2440时钟系统详解

    在讲述系统时钟之前,因为这些设备都是挂靠在系统时钟上的,所以必须先说系统时钟,S3C2440的时钟系统如下 外部时钟源分两种,晶振或者外部频率,由om3-2选择,时钟电路根据两种选择也有两种 我们来分 ...

最新文章

  1. 有道翻译蛋的进阶:丁磊为其加冕称“王”
  2. 设计模式——命令模式(Command Pattern)
  3. CVPR2020 Oral | 华为开源只有加法的神经网络,实习生领衔,效果不输传统CNN
  4. 推荐一个免费的在线图片工具网站
  5. python 接口自动化_Python 接口自动化测试
  6. python 异常分类_Python异常类型
  7. OllyDbg笔记-修改Messagebox的标题
  8. magento 获取产品的属性值
  9. 北美程序员面试常见问题
  10. greenplum 查询出来的数字加减日期_常用SQL系列之(八):列值累计、占比、平均值以及日期运算等
  11. HDU 1114 iggy-Bank(完全背包)
  12. 《设计模式解析(第2版•修订版)》—第1章 1.4节应对变化:使用功能分解
  13. Python调shell
  14. 花西子背后的那个男人和他的五篇笔记
  15. 详解万向锁,欧拉旋转角,slam中万向锁的理解
  16. kubernetes中容器(pod)间的通信及环境变量设置
  17. (三)基础网络演进、分类与定位的权衡
  18. 资本资产定价模型CAPM
  19. OAuth2.0的refresh token
  20. SpringBoot:EasyExcel动态字段(不创建对象)多sheet、多文件|压缩包格式导出

热门文章

  1. 面试题24 二叉搜索树的后序遍历序列
  2. redis学习笔记——(1)
  3. 2014-08-26 遇到的小问题
  4. java连接oracle数据库 -- jdbc连接
  5. VS2010 快捷键 (空格显示 绿点, Tab 显示箭头)
  6. Silverlight + WCF异步调用 例子
  7. js点击取消按钮关闭当前弹框_UI设计中“取消按钮”的分析详解
  8. 51单片机auxr寄存器_MCS-51单片机有几个工作寄存器
  9. java mongodb 返回所有field_JAVA高级之反射
  10. pymysql.err.OperationalError: (1203, “User root already has more than ‘max_user_connections‘ active