拔牙后可以用含漱液吗:基于S3C2410 的时钟频率小结

来源:百度文库 编辑:中财网 时间:2024/04/27 18:17:18
基于S3C2410 的时钟频率小结

其中pll 包含两种: MPLL 主要应用于各种设备时钟的提供,将重点讨论
UPLL  应用于USB时钟频率应用,为48M

其中MPLL的设置主要依靠使用各种锁相环和分频器来改变输入原始的频率,经过锁相环之后可以提升频率,关于频率的选择主要依靠改变CPU寄存器实现,MPLLCON通过改变其中的参数设置即可
Mpll = (m * Fin) / (p * 2s)
m = (MDIV + 8), p = (PDIV + 2), s = SDIV
MPLL就是要得到的频率,我建议用参考手册给定的频率设置即可,标准之际。
接下来该设置各种设备的频率:

我所认为的MPLL分出三种模式:FCLK、HCLK、PCLK
这三种也应用于不同的场合,FCLK应用于CPU的时钟,HCLK用于AHB bus各种外围设备,PCLK 用于APB bus各种接口设备。
其中FCLK 应用就是MPLL的频率,一样的,不用设置的。
HCLK 可以设置为FCLK或FCLK/2 ,即通过设置相应得寄存器CLKDIVN中的对应位HDIVN即可,其中HDIVN为0时对应FCLK,为1时对应FCLK/2
PCLK可以设置为HCLK或HCLK/2 ,即通过设置相应得寄存器CLKDIVN中的对应位PDIVN即可,其中PDIVN为0时对应HCLK,为1时对应HCLK/2

If HDIVN=1, the CPU bus mode has to be changed from the fast bus mode to the asynchronous bus mode using following instructions.
MMU_SetAsyncBusMode
mrc p15,0,r0,c1,c0,0
orr r0,r0,#R1_nF:OR:R1_iA
mcr p15,0,r0,c1,c0,0
If HDIVN=1 and the CPU bus mode is the fast bus mode, the CPU will operate by the HCLK. This feature can be used to change the CPU frequency as a half without affecting the HCLK and PCLK.
以上这段文字也是讲关于写协处理器来控制协调内部总线和外部总线的关系,不过原文有点不太明白,又不敢把错的意思表达出来,贻害众生,只好原文照搬后谈点看法,我感觉是当HCLK中设置为FCLK/2 时必须协调与内部总线关系,至于同步非同步还要通过协处理器来管理,这样就可以很好的协调各种总线的关系了,当出现HDIVN=1和CPU总线被设为快速非同步模式时,CPU(我认为是总线频率)可以完全依靠HCLK提供频率,因此将会改变CPU频率时不会影响到其它的变化。

今天看数据手册时有发现了几点没有发现的东西,主要是关于协处理器的。
ARM920T 竟然有两种输入时钟方式,FCLK 和BCLK ,其中BCLK 主要提供给AMBA
Bus的,可也可以通过选择协处理器的R1的NF,iA位来选择是否供是时钟给核ARM920T,才明白上面所述的