S3C2440时钟分析

S3C2440时钟控制逻辑可以产生FCLK、HCLK、PCLK和UCLK。FCLK为CPU时钟。HCLK为AHB总线外设时钟,包括存储控制器、中断控制器、LCD控制器、DMA控制器等。PCLK为APB总线外设时钟,包括看门狗、IIS、IIC、PWM定时器、MMC接口、ADC、UART、GPIO、RTC和SPI等等。UCLK专用于USB主机或设备接口时钟。

时钟源的选择:


时钟源的选择是通过OM3和OM2管脚控制的,时钟源可以是外部晶振,也可以是外部时钟。

S3C2440有两个锁相环(PLL),一个用于FCLK、HCLK和PCLK的MPLL,另一个专用于UCLK的UPLL。


MPLLCONUPLLCON寄存器用于设置FCLKUCLK的时钟频率,那么最后的时钟频率是如何计算的呢,有如下公式:

对于FCLK

Fout= (2 * m * Fin) / (p * 2S)

m= (MDIV + 8), p = (PDIV + 2), s = SDIV

对于UCLK

Fout= (m * Fin) / (p * 2S)

m= (MDIV + 8), p = (PDIV + 2), s = SDIV

S3C2440数据手册上也给出了典型值,我们也来验证一下他给的设置是否正确。比如UCLK48MHz,他给的MDIV56PDIV2SDIV2,那么UCLK为多少呢,依照上面给的公式计算得到如下值:(56+8)*12/((2+2)*2²)=48,结果正确。如果我要设置FCLK400MHz,数据手册上也没有给出参考,唯一接近的是405MHz,没有关系,我们自己来计算,下面给出一组参考值:

MDIV= 92PDIV= 1SDIV= 1,大家依照上面的公司计算一下,看FCLK是否为400MHz

前面也只是设定了FCLKUCLK的时钟,还有HCLKPCLK没有设置,HCLKPCLK是通过FCLK分频得来的。通过CLKDIVN寄存器来控制。


也就是说还和CAMDIVN寄存器有关。



posted @ 2012-02-19 20:29  移动应用开发  阅读(247)  评论(0编辑  收藏  举报