ARM芯片的时钟系统详解(S5PV210芯片)
1、时钟介绍
时钟是同步工作系统的同步节拍,时钟的快慢就是我们常说的工作频率,以赫兹(HZ)为单位。时钟系统指导器件的运行,我们分析器件的工作特性时,常常会看器件的时序图,时序图中的时钟周期就是时钟系统来决定的。
2、时钟来源
2.1、 三种时钟配置
1、外部直接输入时钟信号,SoC有个引脚用来输入外部时钟信号,用的很少。
2、外部晶振+内部时钟发生器产生时钟,大部分低频单片机都是这么工作的。
3、外部晶振+内部时钟发生器+内部PLL产生高频时钟+内部分频器分频得到各种频率的时钟。
2.2、S5PV210的时钟来源
S5PV210的时钟来源属于第三种,也可以说复杂的Soc都是第三种,因为复杂Soc的内部器件是很多的,具体原因如下:
1、使用外部晶振的原因:Soc自身是不带晶振的,所以肯定需要外部提供。
2、使用低频晶振的原因:外部的晶振提供的都是低频的信号,像S5PV210芯片就是接的24MHZ的晶振。不接高频晶振是因为高频晶振价格高,而且高频信号的传导辐射比较难控制。就算接高频晶振也不能解决问题,Soc的主频高达1GHZ,就算是高频晶振也达不到这个频率。
3、采用内部时钟发生器:晶振产生的信号不一定满足Soc的需求,所以需要时钟发生器来进行处理才能给后级使用;
4、采用内部PLL:PLL是锁相环,作用就是倍频器,将低频信号变成高频信号。因为外接晶振是低频的,但是Soc需要高频信号,所以要倍频;
5、采用分频器:经过倍频器后时钟信号变成高频信号,但是Soc外接多个外设,每个外设需要的时钟频率是不同的,有的外设需要低频信号,比如串口。所以要用分频器将高频信号,分频成低频信号。
3、时钟和系统性能的关系
参考博客《时钟系统和系统功耗的关系》。
4、时钟和外设编程的关联
外设工作都需要一定频率的时钟信号,但是绝大部分外设自身是没有信号产生的电路的,需要主控芯片提供时钟信号。因此我们程序员可以为每个外设指定时钟来源、时钟分频系统、从而设置这个外设的工作时钟。
5、S5PV210的时钟系统简介
5.1、时钟域
S5PV210芯片的时钟体系比较复杂,主要原因是有太多的外设,并且不同的外设工作要求的时钟频率越相差很大,从几十Hz1GHZ。所以将时钟分成不同的时钟域,每个时钟域的时钟频率都不同,分别对应不同时钟频率需求的外设器件。S5PV210芯片分为三个时钟域:MSYS、DSYS、PSYS。各个时钟域之间是彼此独立的,然后通过BRG(异步总线桥:asynchronous bus bridges)连接起来。
5.1.2、MSYS域
1、MSYS域包含CPU(Cortex-A8内核)、DRAM控制器(DMC0和DMC1)、IRAM&IROM等,都是一些高速的设备。
2、包含的时钟信号:
ARMCLK: 给cpu内核工作的时钟,也就是所谓的主频。
HCLK_MSYS: MSYS域的高频时钟,给DMC0和DMC1使用
PCLK_MSYS: MSYS域的低频时钟
HCLK_IMEM:给iROM和iRAM(合称iMEM)使用
5.1.3、DSYS域
1、都是和视频显示、编解码等有关的模块;
2、包含的时钟信号:
HCLK_DSYS:DSYS域的高频时钟
PCLK_DSYS:DSYS域的低频时钟
5.1.4、PSYS域
1、和内部的各种外设时钟有关,譬如串口、SD接口、I2C、AC97、USB等。
2、包含的时钟信号:
HCLK_PSYS:PSYS域的高频时钟
PCLK_PSYS:PSYS域的低频时钟
SCLK_ONENAND:ONENAND芯片用的
5.2、推荐时钟系统设置值
Values for the high-performance operation:
• freq(ARMCLK) = 1000 MHz
• freq(HCLK_MSYS) = 200 MHz
• freq(HCLK_IMEM) = 100 MHz
• freq(PCLK_MSYS) = 100 MHz
• freq(HCLK_DSYS) = 166 MHz
• freq(PCLK_DSYS) = 83 MHz
• freq(HCLK_PSYS) = 133 MHz
• freq(PCLK_PSYS) = 66 MHz
• freq(SCLK_ONENAND) = 133 MHz, 166 MHz
5.3、时钟体系框图详解
5.3.1、时钟体系框图
5.3.2、PLL器件
1、PLL是锁相环,功能上是倍频器,把低频的时钟信号变成高频时钟信号;
2、PLL有锁存周期,因为PLL是物理器件,不是理想器件,把低频信号输入PLL到PLL输出高频信号,这中间是需要时间的。
5.3.3、MUX器件
1、MUX是多路选择器件,有多个输入和一个输出,在逻辑上相当于或门,实现多选一的功能;
2、控制MUX器件的寄存器有一个状态位,当MUX器件切换输入源时,是需要一定时间的,当切换成功时硬件会将状态位置位,我们需要去读取状态位来判断是否切换完成。
DIV器件
1、DIV是分频器,将高频信号分频成低频信号,Fout=Fin / 分频系数;
2、DIV也有状态位,当修改分频系数时,需要读取状态位来判断修改是否已经生效。
6、时钟设置的关键性寄存器
6.1、xPLL_LOCK寄存器
该寄存器的功能是设定PLL的锁存周期,每个PLL都有一个对应的xPLL_LOCK寄存器。
6.2、xPLL_CON/xPLL_CON0/xPLL_CON1寄存器
1、这些都是PLL的控制寄存器,每个PLL的控制寄存器个数有差异,具体查阅收据手册。其中比较重要的配置:PLL的使能、倍频系数的设置、锁存状态。
2、PLL的倍频参数是PDIV、MDIV、SDIV,最终输出信号FOUT = MDIV X FIN / (PDIV X 2^SDIV-1)。
3、在设置每个PLL的倍频参数时也不是随意设置的,数据手册对不同的频率都有建议值,其实就是让你照着抄,别自己瞎搞。芯片是物理器件,有自己的物理特性,倍频参数并不是只满足上面的计算公式就行。
6.3、CLK_SRCn寄存器
CLK_SRCn寄存器是时钟源控制寄存器,控制时钟信号的来源。对应到时钟框图里,就是控制MUX器件的。
6.4、CLK_SRC_MASKn寄存器
CLK_SRC_MASKn寄存器是MUX的使能控制寄存器,可以禁止/使能MUX器件。
6.5、CLK_DIVn寄存器
CLK_DIVn寄存器是控制DIV分频器的,控制各个DIV分频器的分频系数。
6.6、CLK_GATE_x寄存器
>各个时钟信号的使能控制信号,当需要某个器件停止工作时,可以操作此寄存器将器件使用的时钟信号给禁止掉。
6.7、CLK_DIV_STATn寄存器
表示每个DIV分频器的状态,用来查询当前DIV是否可以输出稳定的时钟信号。
6.8、CLK_MUX_STATx寄存器
表示每个MUX器件的状态,用来查询当前MUX器件的的输入源是哪一个,或者查询当前MUX的参数修改后是否已经稳定。
ARM芯片的时钟系统详解(S5PV210芯片)相关推荐
- S3C2440时钟系统详解
在讲述系统时钟之前,因为这些设备都是挂靠在系统时钟上的,所以必须先说系统时钟,S3C2440的时钟系统如下 外部时钟源分两种,晶振或者外部频率,由om3-2选择,时钟电路根据两种选择也有两种 我们来分 ...
- STM32开发 -- 时钟系统详解
如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/81558649 上一篇文章讲了RTC,里面其实已经包含了时钟系统的介绍了.这篇 ...
- 【STM32】初学者必读STM32时钟系统详解
目录 1 前言 2 时钟系统介绍 3 时钟源 3.1 系统时钟源 3.2 次级时钟源 3.3 时钟源特点 4 时钟 4.1 AHB总线时钟 4.2 APB1总线时钟 4.3 APB2总线时钟 5 时钟 ...
- Linux_arm_启动_c语言部分详解,[原创]Linux arm 启动 c语言部分详解第四讲
Linux arm启动c语言部分详解第四讲(from setup_per_cpu_areas();) Written by leeming 上面的setup_arch花了我们大量的篇幅,现在我们要继续 ...
- 芯片常用协议种类详解,含多协议转换器
题目:芯片常用协议种类详解,含多协议转换器 目录 1. 引言 1.1常用通信样式 1.2 FPGA芯片上的UART也是一样的 1.3 FPGA用verilog实现UART 1.4基于FPGA的SPI协 ...
- STM32最小系统详解
STM32最小系统详解 1. 电源电路 2. 晶振电路 3. 复位电路 4. 下载电路(串口下载) 本文章将以普中的STM32F103系列的开发板为载体,任何一款STM32开发板都是在其最小系统基础上 ...
- Linux系统详解 系统的启动、登录、注销与开关机
Linux系统详解 第六篇:系统的启动.登录.注销与开关机 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://johncai.blo ...
- 基于YOLOv5的目标检测系统详解(附MATLAB GUI版代码)
摘要:本文重点介绍了基于YOLOv5目标检测系统的MATLAB实现,用于智能检测物体种类并记录和保存结果,对各种物体检测结果可视化,提高目标识别的便捷性和准确性.本文详细阐述了目标检测系统的原理,并给 ...
- linux小红帽系统装打印机驱动,Linux系统详解 第三篇:红帽RHEL的安装
Linux系统详解 第二篇:红帽RHEL的安装 前言: 本系列文章取材广泛,有来自于互联网的,有来自教科书的,有来自自己的笔记的,也有来自自己对Linux的经验积累的.此系列的文章都是经过长时间的整理 ...
最新文章
- android uri转drawable,Glide4(URL转File,URL转Drawable)
- python中浅拷贝与深拷贝
- 在apache中设置访问目录后进入的默认页面为index.php
- 深入剖析阿里云推荐引擎——新架构,新体验
- 用python处理excel的基本语法_《使用python3读取处理excel表的数据内容如何对内容求平均值》 用python读取excel文件...
- [2021-09-09 T3] 序列/luogu P3943 星空(异或差分+bfs最短路+状压dp)
- 【JavaWeb】JDBC优化 之 数据库连接池、Spring JDBC
- OpenVINO InferenceEngine之FormatParser
- ta leader是什么岗位_干货 丨 八卦下,应届/实习生应该跟什么样的leader?
- SQL Server中并行执行计划的基础
- 塑料浮船坞行业调研报告 - 市场现状分析与发展前景预测
- ASIHttpRequest封装
- html表格填充渐变颜色代码,CSS控制图片、表格、背景颜色渐变示例
- 使用Edge的Markdown Viewer插件查看md文件
- 511遇见易语言流程控制变量循环首
- 坐标变换、主成分分析、贝叶斯决策、参数估计
- python定义学生类和教师类_Python3 类的继承小练习
- 敏捷模式下的研发产能度量
- “我的恩典是够你用的”(哥林多后书…
- 01【Web】基础-HTML
热门文章
- python中line的意思_关于python代码,line[:-1]的意思
- mysql时间戳转换日期
- iOS 优化 - 瘦身
- AI上推荐 之 AFM与DIN模型(当推荐系统遇上了注意力机制)
- win10下安装华为Atals USB虚拟网卡驱动
- Bootstrap 中的 aria-label 和 aria-labelledby
- ffmpeg学习 函数分析sws_scale
- 网易互娱AI Lab视频动捕技术iCap被CVPR 2022接收!
- Leetcode典型题解答和分析、归纳和汇总——T101(对称二叉树)
- 软考-信息安全工程师(汇总1000题)