6410内部有着复杂的时钟管理机制,为支持ARM内部、内部总线、普通外设以及特殊外设时钟需求,6410有三种不同的晶振源接入管脚,分别是主时钟(一般为12MHz)、27MHz(用于MFC、TV、LCD等)以及48MHz(用于USB通讯)。
6410时钟结构图:
摘自《s3c6410 user’s manual REV 1.2》
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》
根据下表配置,选择合适的分频系数。
摘自《s3c6410 user’s manual REV 1.2》
在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 等四组VCORE AXI Register Slices有关。