第三章、Tiny4412 U-BOOT移植三 时钟设置【转】
本文转自:http://blog.csdn.net/eshing/article/details/37521789
这一章说明配置时钟频率基本原理
OK,接着说,这次先讲讲CPU的系统时钟。U-BOOT在启动的过程中,需要配置系统时钟,没有这东西,CPU就跑不起来。配置系统时钟,大致是以下几个步骤:
(1)设置系统PLL锁定时间
(2)配置PLL
(3)配置各模块分频系数
(4)切换到PLL时钟
一、基本原理
如下图3-1所示是Tiny4412 (Exynos4412)的核心板,板子最上面的是27MHz的晶振,下面一颗是24MHz,顺便讲一下另外几片东西,最左边的两片是内存DDR3-800,这表示数据传输频率为800MHz,外部时钟频率200MHz,内部时钟频率为100MHz(时钟可能有误),背面还有两片;下面的MCL FLASH,外部时钟频率133MHz。
图3-1、Tiny4412核心板图
1、倍频的原理
图3-2、Exynos4412上电启动时序图
上电后时钟设置和上电时序的详细介绍见手册第7章和第60章。上图截取第60章,上电后的XXTI输出的频率变化图,XXTI频率从小变到指定频率需要一段时间(图中标红框的部分),当CPU频率在变化的时候,比如由复位后的初始化值为400MHZ,我要升到1400MHZ,这时,首先把CPU的频率锁定,因为此时CPU的频率是变化的,频率变化,则CPU的状态就无法确定,所以,此时用PLL--phase-lockedloop锁相环,将CPU频率锁定一段时间,直到我的频率输出稳定为止。芯片手册上第2837页上显示APLL默认的设置时间最大要100us(100微秒)。
图3-3、Exynos4412PLL 锁定时间表
锁定频率后,此时,应该设置一个倍频因子,在Exynos4412手册中去查表7-2到7-4中,P,M,S设置对应位的值,然后,将频率提升,比如从晶振输出的24HZ,抬升到1400MHz。
图3-4、P,M,S设置值查找表
接着就是分频了,设置分频相关寄存器中不同的位即可实现分频,比如,设置某一位为0,那么,分频时,原来频率假设为1000MHZ,那么频率就被分为1000/1=1000MHz,这样就可以分给ARMCLK等使用了。
2、开始分析
下图3-5取自芯片手册section02_system的第3章 CLOCKCONTROLLER,在开篇的P353页的第一张图就是这个。
图3-5、Exynos4412时钟框图
Exnnos4412的Clock分为5个大的domain,分别是LEFTBUSS,MAUDIO(CMU_TOP),DMC,CPU,RIGTHBUS,这五个区域分别管理不同的设备,为不同的设备提供不同的频率,如下表3-1所示。
表3-1、Exynos4412时钟频率说明表
再往下翻,这些不同设备的频率是如何产生的呢?可以查看手册P451页图表,下图3-6为部分图片截图。
图3-6、Exynos4412各模块时钟产生过程
CPU第一次启动时,第五章中已有说明,IROM中的代码将PLL已默认的初始化了,在芯片手册找到93页,可查看到其默认的初始频率:
可见,当外部晶振是24MHz时,内部APLL和MPLL分别为400MHZ
1)查看芯片手册的P444页,查出总共有以下几种由CMU输出的时钟
有四种PLLs(APLL,MPLL,EPLL,HPLL),还包括USB_OTGPHY clock。
The components to generate internalclocks are:
•APLL uses FINPLL as input to generatefrequencies from 22 to 1400 MHz.
•MPLL uses FINPLL as input to generatefrequencies from 22 to 1400 MHz.
•USB Device PHY uses XUSBXTI to generatefrequencies of 30 and 48 MHz.
•HDMI PHY uses XUSBXTI to generate 54MHz.
常用的APLL/MPLL/EPLL/VPLL是干什么的呢?看P446页
•EPLL mainly generates an audio clock.
先查看APLLPMS的倍频表,如下表3-2所示,看P447的Table7-2 APLL and MPLL PMS Value。
可查看到设置P/M/S的值,可以将频率拉升到我们想要的频率。设置的寄存器名称一般是:xPLL_CONx。如APLL的倍频寄存器的为APLL_CON0。
• (APLL_LOCK,R/W, Address = 0x1004_0000)
• (MPLL_LOCK, R/W, Address =0x1004_0000)
• (EPLL_LOCK, R/W, Address = 0x1003_0000)
第三章、Tiny4412 U-BOOT移植三 时钟设置【转】相关推荐
- 第三章 嵌入式Python概述(三)
文章目录 第三章 嵌入式Python概述(三) 使用 SQL 使用Globals 一起使用 ObjectScript 和 Python 创建混合 InterSystems IRIS 类 在 Pytho ...
- 计算机应用基础第三章操作步骤,最新江西三校生计算机应用基础模拟操作题集锦(超实用!)...
第二章 Windows XP 操作系统 ? [2011高考] 将计算机系统时间修改为2011年9月1日10:30.请写出操作步骤. 答:双击系统托盘中时间图标(或双击"控制面板"窗 ...
- python赵璐第三章课后答案_第三章 课后习题及参考答案
第三章 课后习题及参考答案 一.选择题 1. 计算机的软件系统一般分为 ( ) 两大部分. A .系统软件和应用软件 B .操作系统和计算机语言 C .程序和数据 D . DOS 和 Windows ...
- 大学计算机基础第五版第三章,大学计算机基础第三章习题答案
<大学计算机基础第三章习题答案>由会员分享,可在线阅读,更多相关<大学计算机基础第三章习题答案(4页珍藏版)>请在人人文库网上搜索. 1.第三章 微型计算机硬件组成1.微型计算 ...
- 计算机基础课件第三章ppt,计算机应用基础第三章3.4.ppt
文档介绍: 3.4 使用网络服务 本节主要学****内容: 掌握即时通信软件QQ的安装与使用; 2. 开通与使用博客或微博; 3. 使用常用的网络服务,如网上存储数据.网上求职或购物 村僧弄锄蔓很卒河 ...
- ticktock卖给oracle,ticktock第三章怎么过 ticktock第三章玩家一通关攻略
ticktock第三章怎么过?ticktock是一个冒险逃脱类手游,很多玩家都不知道在ticktock第三章中如何让玩家一成功脱险.下面就是优游网小编为大家带来的ticktock第三章玩家一通关攻略了 ...
- 计算机网络课件第三章,南京邮电大学计算机网络第三章习题.ppt
文档介绍: 题3-25:在上题中的站点A和B在t=0时同时发送了数据帧.当t=225比特时间,A和B同时检测到发生了碰撞,并且在t=255+48=273比特时间完成了干扰信号的传输.A和B在CSMA/ ...
- 第三章 Selenide测试框架(三)
元素定位方法 在Web UI自动化测试过程中,通常的要完成测试用例编写需要进行如下几步: 找到Web的页面元素,并把定位路径保存在一个对象中 对操作对象进行操作,比如:点击.输入.回车等. 指定页面元 ...
- Javascript第三章数组Array常用方法第三课
第一种JavaScript sort() 方法 更多免费教学文章请关注这里 实例 例子 1 在本例中,我们将创建一个数组,并按字母顺序进行排序: <script type="text/ ...
- python第三章_Python学习(第三章)
一. 转义字符1. \t 使输出垂直方向保持对齐 #\t 在控制台输出一个制表符,是输出垂直方向保持对齐 print("1 2 3")print("10 11 12&qu ...
最新文章
- HDU 3157 Crazy Circuits(有源汇上下界最小流)
- C语言运行界面字体,C语言实现图形界面登陆窗口.docx
- 概率论-2.2 随机变量的数学期望(重点:随机变量X的期望)
- [渝粤教育] 中国地质大学 数据结构 复习题 (2)
- 转:复杂网络分析总结
- 2017年UI、Web、微服务顶级框架都有啥?不看就落伍了1
- Oracle中登录OEM口令忘记,oracle oem创建过程 一直提示sys密码错误
- 瑞幸咖啡的社群商业创新案例:私域流量池思维与裂变营销,品牌与流量双赢!...
- python 网络监控系统手机版下载_云视通网络监控系统手机版下载_云视通下载手机版-太平洋下载中心...
- bitlocker正在加密 c盘_win10不能分盘,硬盘提示Bitlocker已加密解决方法
- win7设置自动开机时间_想要服务器断电后自动开机,怎么设置?
- 西安2020EC游记
- 实习渗透工程师面试记录
- java咖啡是研磨的吗_咖啡的研磨程度,真的很重要吗?
- Sign function
- vue3 + TypeScript + vant +pinia 实现网易云音乐播放器
- Java BIO的基本介绍
- 读书笔记, Python - python-tricks-buffet-awesome-features
- 用python编写名片_python实现简单名片管理系统
- stm32学习笔记1