OK6410开发板ARM基本介绍(三)时钟管理
来源:互联网 发布:华大基因携手阿里云 编辑:程序博客网 时间:2024/06/03 15:58
6410时钟管理
6410内部有着复杂的时钟管理机制,为支持ARM内部、内部总线、普通外设以及特殊外设时钟需求,6410有三种不同的晶振源接入管脚,分别是主时钟(一般为12MHz)、27MHz(用于MFC、TV、LCD等)以及48MHz(用于USB通讯)。
6410时钟结构图:
摘自《s3c6410 user’s manual REV 1.2》
1.1 主时钟选择与PLL配置
6410根据OM[0]来选择外部时钟输入或外部晶振振荡时钟输入,当OM[0] = 1选择外部时钟输入,OM[0] = 0选择外部晶振振荡时钟输入,此外6410内部还包含3个PLL,分别为:
1) APLL:为ARM内核倍频,PLL最大输出1.6GHz,内核主频最大667MHz;
2) MPLL:为6410内部总线AXI、AHB、APB等提供时钟,PLL最大输出1.6GHz,连接到AXI/AHB总线最大频率133MHz,APB总线最大66MHz。
EPLL:6410一般外设时钟(如UART、I2C等),PLL最大输出600MHzPLL内部结构框图:
摘自《s3c6410 user’s manual REV 1.2》
APLL/MPLL锁相环输出频率计算:FOUT = MDIV X FIN / (PDIV X 2^SDIV),EPLL锁相环输出频率计算:FOUT = (MDIV + KDIV / 216) X FIN/ (PDIV X 2SDIV)
实际的APLL、MPLL或EPLL使用一般使用手册里面的推荐值:
1) APLL/MPLL推荐配置:
摘自《s3c6410 user’s manual REV 1.2》
1.2 ARM及AXI/AHB/APB总线时钟
根据下表配置,选择合适的分频系数。
摘自《s3c6410 user’s manual REV 1.2》
1.3 内核同步/异步模式
在AXI/AHB/APB总线配置有一个同步或异步模式选择,通过OTHER[6] = 0,或OTHER[6] = 1来确定是同步还是异步模式,关于同步或异步模式在《ARMApplication Note 172》有描述,当需要系统最大性能需求时,6410内部的AXI RegisterSlices工作在同步模式,AXI Register Slices由不同深度的FIFO组成。
工作同步模式就是AXI Register Slices(包括VCORE和VSOC两边的),AXI RegisterSlices数据不先经过FIFO缓存,而是直接由VSOC AXI与VCORE AXI经过“Level shift r wrappers”直接到达对方。
摘自《ARM1176 Technical Reference manual》
当AXI地址写通道从VCORE到VSOC,异步模式下,VCORE需要经过FIFO slot0 和FIFO slot1缓存,若为同步模式,则不需要FIFO缓存。
若要从异步模式切换到同步模式,使SYSCMODEREQ = 1,等待当SYNCMODEACK = 1,表示FIFO内容已经被“抽干”并且接下来FIFO都不起作用,即已经切换同步模式。
从同步模式切换到异步模式:使SYSCMODEREQ= 0,等待当SYNCMODEACK= 0,即表示已经切换到异步模式。
摘自《ARM1176 Technical Reference manual》
Switchingbetween asynchronous and synchronous mode is controlled by the
SYNCMODEREQinput on each register slices. This input must be driven to a logic
1 to requestsynchronous mode, and logic 0 for asynchronous mode. The AXI
AsynchronousRegister Slice also has an output SYNCMODEACK to indicate the
currentoperating status. Logic 1 on SYNCMODEACK indicates that all FIFOs within
the slices havebeen drained, and the slice is operating in synchronous mode. Logic 0
on SYNCMODEACKindicates that the slice operates asynchronously.…
摘自《ARM Application Note 172》
在6410芯片中同步模式切换是通过设置OTHER[6]=1,等待当OTHER[11:8]=1111,表示已经切换到同步模式,之所以需要4bit 的SYNCMODECACK,我觉得可能是与ARM1176JZF-S内核有Peripheral AXI、DMA AXI、Data AXI及Instruction AXI 等四组VCOREAXI Register Slices有关
- OK6410开发板ARM基本介绍(三)时钟管理
- OK6410开发板ARM基本介绍(一)S3C6410的地址映射
- OK6410开发板ARM基本介绍(二)S3C6410的Booting模式
- S3C6410(OK6410开发板介绍)
- 下篇--ARM时钟初始化--配置时钟(基于ok6410)--国嵌第三季-专题7
- 飞凌ok6410开发板Linux使用RTC时钟
- OK6410开发板启动模式介绍
- ARM启动(OK6410)
- 只用串口和网络裸机开发ARM程序(OK6410开发板)纯(转)
- ARM时钟管理
- OK6410(s3c6410)时钟系统
- Opencv-2.0.0的ARM移植和使用(Ubuntu10.04 / OK6410开发板 / linux3.01)
- Opencv实现ARM上的人脸检测(ubuntu10.04 / QT / OK6410开发板)
- Opencv-2.0.0的ARM移植和使用(Ubuntu10.04 / OK6410开发板 / linux3.01)
- Opencv-2.0.0的ARM移植和使用(Ubuntu10.04 / OK6410开发板 / linux3.01)
- Opencv-2.0.0的ARM移植和使用(Ubuntu10.04 / OK6410开发板 / linux3.01)
- ARM-Linux开机自启动设置-ok6410开发板
- libxml2移植到OK6410 ARM开发板上...
- 关于Zero-Knowledge的定义
- 分享--------日历程序(自己打入,检验后有三个警告,但可运行,欢迎大家完善此程序)
- android 内存优化
- OK6410开发板ARM基本介绍(二)S3C6410的Booting模式
- 一个程序员过去十年的经验分享
- OK6410开发板ARM基本介绍(三)时钟管理
- 软考复习之路—再谈组成原理
- 动态规划(1)-01背包【模板】
- 【Java】数组
- 网络推广不能只依靠网络
- android虚拟机访问本地主机web应用
- centos下7z的安装
- __malloc_ptr_t 是什么类型
- C++ 获得本地磁盘盘符的容量信息