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最大输出600MHz


PLL内部结构框图:


摘自《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有关

0 0
原创粉丝点击