/**
******************************************************************************
* @author    Maoxiao Hu
* @version   V1.0.0
* @date       Jan-2015
******************************************************************************
* < COPYRIGHT 2015 ISE of SHANDONG UNIVERSITY >
******************************************************************************
**/
本文会不时完善和纠正一些小错误,还请到 http://www.cnblogs.com/humaoxiao 参考最新版本。
时钟初始化的一般方法和顺序,u-boot、普通裸机程序如果需要都可以使用。
 
—————————————————————————————-
本文解决的问题:
1、宏观上几个大模块的时钟配置顺序。
2、小模块的时钟选择、分频和一般的配置顺序。
3、对小模块来说,官方手册推荐的时钟源选择问题。
4、本文只以手册的“推荐配置”进行说明,“自由玩法”不保证稳定性。
—————————————————————————————-
多路选择器选择原则:
1、尽量保持默认配置不动。
2、尽量选择前端频率最高的源。
3、其它手册要求的特殊情况。
—————————————————————————————-
几个符号:
        左边深色的:无抖动多路选择器,无抖动意味着在多路选择切换的瞬间,下游时钟就可以稳定下来。需要注意是在切换时要保证上游时钟已经存在并稳定,不然下游时钟状态不确定。
        右边浅色的:有抖动多路选择器,意味着多路选择切换后,要经历一段时间的不稳定时间,但是有稳定后有相应寄存器标志位标示下游时钟已经稳定,这类指示寄存器器一般以CLK_MUX_STAT开头。
 —————————————————————————————-
全局约束条件:
1、无抖动多路选择器的时钟源需要存在并且稳定。
2、当某个PLL被设置为关闭状态,是不可以使用它的输出信号的。
 —————————————————————————————-
晶振说明:
由于一般USB IP核需要直接使用高精度时钟,所以在XUSBXTI引脚上接24M晶振,XXTI引脚就不需要接了。手册上说由于iROM代码是根据24M晶振频率设计的,所以24M的选择没什么好说的。
 —————————————————————————————-

一、时钟之源PLL配置

      原因:根据全局约束条件2,如果PLL关闭那么不可以使用它的输出,再根据全局约束条件1,多路选择器此时只能选择外部时钟!而24M的时钟直接作为系统的时钟显然是不合适的!
      4412有4个PLL:APLL, MPLL, EPLL, and VPLL。推荐使用24M外部晶振作为它们的时钟源。
理论上讲,4个PLL均可以在22 ~ 1400MHz之间自由设置,但是手册强烈推荐的频率范围为:
/*———————————————*/
APLL & MPLL:200 ~ 1400MHz
EPLL:90 ~ 416MHz
VPLL:100 ~ 440MHz
/*———————————————*/

1.0 设置PLL_LOCKTIME

        PLL频率从小变到指定频率需要一段时间(图中标红框的部分虽然不是PLL实际波形但可以参考着理解),当PLL频率在变化的时候,比如由复位后的初始的400MHz升到1000MHz, 这时,首先把CPU的频率锁定,因这此时CPU的频率是变化的,频率变化,CPU的状态就无法确定,所以,此时用 PLL_LOCKTIME 将CPU频率锁定一段时间,直到频率输出稳定为止。芯片手册上显示APLL最大的锁定时间为100us(Table 60 -9),如果外部晶振是24MHz,100us换算成tick就是2400个tick,所以

APLL_LOCK(Address:0x1004_4000)寄存器该写入0x960

MPLL_LOCK(Address:0x1004_0008)寄存器该写入0x190

EPLL_LOCK(Address:0x1003_C010)寄存器该写入0xBB8

VPLL_LOCK(Address:0x1003_C020)寄存器该写入0x190。

1.1 APLL & MPLL的倍频值:

设定对应寄存器的 P、M、S 三个值,不同的搭配最终频率不同,无须自己计算,系统推荐的搭配如下:

1.2 EPLL的倍频值:

设定对应寄存器的 P、M、S、K 四个值,不同的搭配最终频率不同,无须自己计算,系统推荐的搭配如下:
 
 

1.3 VPLL的倍频值

设定对应寄存器的 P、M、S、K 四个值,不同的搭配最终频率不同,无须自己计算,系统推荐的搭配如下:
 
 

 1.4 等待PLL稳定

如果PLL输出稳定了,那么PLL_CON0的Bit[29]会由0变1。
查询用汇编实现,以APLL为例:
/*———————————————————————*/
wait_pll_lock:
    ldr r1, [r0, r2]
    tst r1, #(1<<29)
    beq wait_pll_lock
    mov pc, lr
 
ldr r0, =CMU_BASE /* 0x10030000 */
ldr r2, =APLL_CON0_OFFSET /* 0x14100 */
bl wait_pll_lock
/*———————————————————————*/
二、主要模块的初始化顺序

exynos 4412 时钟配置的更多相关文章

  1. exynos 4412 eMMC配置及使用方法

    /** ****************************************************************************** * @author    Maox ...

  2. jLink V8调试exynos 4412 u-boot的几点补充

    /** ****************************************************************************** * @author    Maox ...

  3. Exynos 4412

    Exynos 4412采用了三星最新的32nm HKMG工艺,是三星的第一款四核处理器 1.启动 有时间再接着写……

  4. Exynos 4412 Uboot源码解析

    原文地址:http://www.cnblogs.com/jacklu/p/6226330.html Exynos 4412 Uboot的汇编代码就不贴了,没有的可以私信我. 这是我当时阅读代码时的思维 ...

  5. STM32F4_RCC系统时钟配置及描述

    Ⅰ.概述 对于系统时钟应该都知道它的作用,就是驱动整个芯片工作的心脏,如果没有了它,就等于人没有了心跳. 对于使用开发板学习的朋友来说,RCC系统时钟这一块知识估计没怎么去配置过,原因在于开发板提供的 ...

  6. STM32F0xx_RTC实时时钟配置详细过程

    Ⅰ.概述 今天总结RTC(Real Time Clock)实时时钟相关的知识,顺带将BKP简单总结一下. STM32的RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域,即在系统复位或从待 ...

  7. 如何在Ubuntu下使用TF/SD 卡制作Exynos 4412 u-boot启动盘

    /** ****************************************************************************** * @author    Maox ...

  8. 如何在Mac下使用TF/SD 卡制作Exynos 4412 u-boot启动盘

    /** ****************************************************************************** * @author    Maox ...

  9. 四轴飞行器1.2.3 STM32F407时钟配置和升级标准库文件

    原创文章,欢迎转载,转载请注明出处 这个星期进度比较慢哈,只有周末和晚上下班回来才能做,事件不连续,琐碎的事情又比较多,挺烦的,有多琐碎呢?           1.本人有点小强迫症哈,虽然RTT将文 ...

随机推荐

  1. laydate组件选择时间段的判断

    前言: 在使用laydate组件的时候,难免会遇到选择时间段,官网给的文档中有选择时间段的组件,但是并不好用,首先只能选择一个月的时间段,有局限性,其次精确到时间的话要先选日期范围再选时间范围,很变态 ...

  2. docker push

    一.确保docker hub上有账号 二.确认要提交的镜像的命名空间为自己账号名称 三.在本地登录docker: docker login 四.提交镜像: docker push zhengchuzh ...

  3. 简述站点访问控制、基于用户的访问控制、httpd虚拟主机、持久链接等应用配置实例

    1 站点访问控制 可基于两种机制指明对哪些资源进行何种访问控制: 文件系统路径 URL路径 注意: 从上到下匹配,匹配到一个就立即执行 如果没有子目录的访问控制,但是有父目录的访问控制,则子目录继承父 ...

  4. 在rubymine中集成heroku插件

    先安装heroku,参见http://www.cnblogs.com/jecyhw/p/4906990.html Heroku安装之后,就自动安装上git,目录为C:\Program Files (x ...

  5. maven项目运行tomcat7-maven-plugin:run时出现Caused by: java.lang.ClassNotFoundException: org.codehaus.plexus.util.Scanner(xjl456852原创)

    使用tomcat7-maven-plugin插件运行web项目时, 出现下面错误: [WARNING] Error injecting: org.sonatype.plexus.build.incre ...

  6. 技能CD 效果 shader

    技能CD特效 这个效果主要是利用反正切函数完成.atan2(x,y)的返回值是[-PI,PI],这个支持4个象限的反正切函数.关于圆角计算,在上篇文章中有介绍. 现在,我们来看看反正切函数的效果: 在 ...

  7. phpcms二次开发笔记

    phpcms二次开发笔记 --soulsjie 以下载的全新的phpcms搭建一个新的站点为例,讲解如何利用phpcms进行二次开发 一.下载和安装phpcms http://www.phpcms.c ...

  8. 创建私有 Gems 源

    1.安装依赖 yum install gem -y gem install builder   2.安装.配置nginx的文件列表 添加/etc/nginx/default.d/mirrors.con ...

  9. 国王游戏(codevs 1198)

    题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排成一排,国王站在队伍的最 ...

  10. 【BZOJ4710】分特产(容斥原理,组合计数)

    题意:有m种特产,第i种有a[i]个 有n个同学分特产,要求: 1.恰好分完 2.每个人至少要分到一个 求方案数模10^9+7 n,m,a[i]<=1000 思路:WYZ作业 首先考虑对于每一种 ...