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的参数修改后是否已经稳定。

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
s5pv210是一款基于ARM Cortex-A8内核的单片机,它广泛应用于嵌入式系统和智能设备中。而uboot是一种开放源代码的引导加载器,用于嵌入式系统中启动和控制硬件。 要进行s5pv210 uboot的下载,我们首先需要准备一个可用的开发环境。这包括一台支持Linux操作系统的计算机,并具备编译工具链、串口线等硬件设备。 第一步,我们需要从uboot的官方网站(http://www.denx.de/wiki/U-Boot)下载最新版本的uboot源代码。将源代码下载到本地计算机的一个目录中。 第二步,进入源代码所在的目录中,打开终端窗口,使用交叉编译工具链来编译uboot。交叉编译工具链是为了将源代码编译为适用于s5pv210架构的可执行程序。具体的编译命令可以在uboot的文档中找到。 第三步,编译完成后,在目录下生成了一个u-boot.bin的可执行文件。将这个文件通过串口线连接到s5pv210开发板上。 第四步,通过终端窗口进入串口终端模式,与s5pv210开发板建立串口通信。在终端中输入相关命令,如设置串口参数、选择烧录工具等。 第五步,选择合适的烧录工具,将编译好的u-boot.bin文件烧录到s5pv210开发板的存储设备中。具体的烧录工具和操作步骤视具体情况而定。 最后,当烧录完成后,重新启动s5pv210开发板,即可加载新的uboot固件并运行。此时,uboot将能够初始化和配置硬件设备,并提供启动操作系统的功能。 总结起来,s5pv210 uboot的下载过程主要包括源代码的获取、交叉编译、烧录和启动等步骤。这样就能够成功将uboot固件加载到s5pv210开发板上,为后续的操作系统启动提供支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

正在起飞的蜗牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值