s3c2440 FCLK、HCLK、PCLK时钟频率配置

1)FLCK、HCLK和PCLK的关系

S3C2440有三个时钟FLCK、HCLK和PCLK

s3c2440官方手册上说P7-8写到:

FCLK is used by ARM920T,内核时钟,主频。

HCLK is used for AHB bus, which is used by the ARM920T, the memory controller, the interrupt controller, the LCD controller, the DMA and USB host block. 也就是总线时钟,包括USB时钟。

PCLK is used for APB bus, which is used by the peripherals such as WDT, IIS, I2C, PWM timer, MMC interface,ADC, UART, GPIO, RTC and SPI.即IO接口时钟,例如串口的时钟设置就是从PCLK来的。


2)这三个时钟是什么关系

这三个时钟通常设置为1:4:8,1:3:6的分频关系,也就说如果主频FLCK是400MHz,按照1:4:8的设置,那么HLCK是100MHz,PLCK是50MHz

寄存器CLKDIVN表明并设置了这三个时钟的关系

如果CLKDIVN设置为0x5,那么比例即为1:4:8,前提是CAMDIVN[9]为0.

S3C2440有两个锁相环,一个主锁相环MPLL提供给FCLK的,另外一个UPLL是提供给USB时钟(48MHz)的,与MPLL一样,UPLL的产生也是通过UPLLCON寄存器设置分频因子得到。

MPLLCON的配置是用来确定FCLK频率的,计算公式如下:

图1 计算FLCK

 

 

从“ldr      r1, = ((92 << 12) + (1 << 4) + 1) ”该代码中可以看到数值存在移位操作,即92<<12、1<<4,这个可以参考图2各预分频值的配置。

 

图2 MDIV、PDIV、SDIV

 

MDIV的配置在MPLLCON的[19:12]位,因此配置MDIV的值需要左移12位。同样的道理,配置PDIV值需要左移4位,SDIV值需要左移0位(左移0位相当于不用偏移,废话,嘻嘻)。

 

那么根据图1计算FLCK的公式,计算过程如下:

 

FCLK=2*(92+8)*(12000000)/(3+2^1)=400000000=400MHz

 

    当FCLK得到正确的配置后,这时就需要对HCLK、FCLK进行配置了,即进行预分频操作,该配置过程很见到,只需要对CLKDIVN简单配置一下就OK了。

 

CLKDIVN寄存器内容如图3。

 

;设置CLKDIVN

ldr r0,=CLKDIVN

ldr r1,=0x5

str r1,[r0]

在bootloader中CLKDIVN的配置值为0x5,即FCLK:HCLK:PCLK=1:4:8。相对应的频率将会是400MHz、100MHz、50MHz。

时钟和电源管理部分寄存器

LOCKTIME:   UPLL、 MPLL 锁定时间的计数值。

MPLLCON   UPLLCON: 这两个寄存器都有MDIV PDIV SDIV设置,对于输入12M的晶振,有相应的推荐值,产生200M和48M的频率。

CLKCON: 为各种外围接口提供时钟。

CLKSLOW: 是否打开2个PLL。

CLKDIVN: 设置CLK、 HCLK、 PCLK比率的寄存


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值