S3C2440 ARM芯片时钟体系

时间:2021-11-20 23:54:15


S3C2440 ARM芯片时钟体系S3C2440 ARM芯片时钟体系

    S3C2440A 中的时钟控制逻辑可以产生必须的时钟信号,包括 CPU FCLKAHB 总线外设的 HCLK 以及
APB 总线外设的 PCLKS3C2440A 包含两个锁相环(PLL):一个提供给 FCLKHCLK PCLK,另一个专用于

USB 模块(48MHz)。

    图 7-1 显示了时钟结构的方框图。主时钟源来自一个外部晶振(XTIpll)或外部时钟(EXTCLK)。时钟发生包
含了一个连接到外部晶振的振荡器(震荡放大器),还含有
S3C2440A 所必须的两个用于产生高频率时钟的 PLL(锁
相环)。
时钟源选择
7-1 显示了模式控制引脚(OM3 OM2)的组合关系的并为 S3C2440A 选择时钟源。nRESET 的上升沿
时参考
OM3 OM2 引脚将 OM[3:2]的状态在内部锁定。
7-1. 引导启动(Boot-Up)时时钟源的选择

7-1. 引导启动( Boot-Up )时时钟源的选择
模式 OM[3:2] MPLL 状态 UPLL 状态 主时钟源 USB 时钟源
00 开启 开启 晶振 晶振
01 开启 开启 晶振 外部时钟
10 开启 开启 外部时钟 晶振
11 开启 开启 外部时钟 外部时钟

S3C2440 ARM芯片时钟体系

时钟控制逻辑
      时钟控制逻辑决定使用的时钟源,即使用 PLL 时钟(Mpll)或直接使用外部时钟(XTIpll EXTCLK)。当配
置了PLL 为一个新频率值时,时钟控制逻辑先禁止 FCLK,直至使用 PLL 锁定时间使 PLL 稳定输出。时钟控制逻辑在上电复位时和从掉电模式中唤醒时同样是激活的。

上电复位( XTIpll

     上图显示了上电复位期间时钟行为顺序。晶振在若干毫秒内开始振荡。当在 OSCXTIpll)时钟稳定后释放nRESETPLL 开始按默认 PLL 配置运行。但是通常认为上电复位后的 PLL 是不稳定的,因此在软件重新配置PLLCON 寄存器之前 Fin 代替 MpllPLL 输出)直接提供给 FCLK。即使用户不希望在复位后改变 PLLCON 寄存器的默认值,用户还是应该用软件写入相同的值到 PLLCON 寄存器中。只有置 PLL 为一个新频率后,PLL 会开始锁定连续逼近新频率。可以在锁定时间后立即配置 FCLK PLL 输出(Mpll)。

FCLK,HCLK 和 PCLK

FCLK 是提供给 ARM920T 的时钟。
HCLK 是提供给用于 ARM920T,存储器控制器,中断控制器,LCD 控制器,DMA 和 USB 主机模块的 AHB总线的时钟。
PCLK 是提供给用于外设如 WDT,IIS,I2C,PWM 定时器,MMC/SD 接口,ADC,UART,GPIO,RTC 和SPI 的 APB 总线的时钟。
S3C2440A 还支持对 FCLK、HCLK 和 PCLK 之间分频比例的选择。该比例由 CLKDIVN 控制寄存器中的 HDIVN和 PDIVN 所决定
1.锁定时间计数寄存器(LOCKTIME )(使用默认值)
寄存器 地址 R/W 描述 复位值
LOCKTIME 0x4C000000 R/W PLL 锁定时间计数寄存器 0xFFFFFFFF

2.PLL 控制寄存器(MPLLCON UPLLCON (用于设置FCLK与Fin的倍数)

S3C2440 ARM芯片时钟体系

寄存器 地址 R/W 描述 复位值
MPLLCON 0x4C000004 R/W MPLL 配置寄存器 0x00096030
UPLLCON 0x4C000008 R/W UPLL 配置寄存器 0x0004d030

PLLCON 描述 初始状态
MDIV [19:12] 主分频器控制 0x96 / 0x4d
PDIV [9:4] 预分频器控制 0x03 / 0x03
SDIV [1:0] 后分频器控制 0x0 / 0x0
MPLL 控制寄存器
Mpll = ( 2 × m × Fin ) / ( p × 2s )
m = ( MDIV + 8 ), p = ( PDIV + 2 ), s = SDIV


3.时钟分频控制(CLKDIVN)寄存器 (用于设置FCLK/HCLK/PCLK三者的比例)


寄存器 地址 R/W 描述 复位值
CLKDIVN 0x4C000014 R/W 时钟分频控制寄存器 0x00000004

CLKDIVN 描述 初始状态
UCLK 选择寄存器(UCLK 必须为 48MHz USB
0:UCLK = UPLL 时钟 1UCLK = UPLL 时钟 / 2
UPLL 时钟被设置为 48MHz 时,设置为 0
UPLL 时钟被设置为 96MHz 时,设置为 1
DIVN_UPLL [3] 0
00HCLK = FCLK/1
01
HCLK = FCLK/2
10
HCLK = FCLK/4 CAMDIVN[9] = 0
HCLK = FCLK/8 CAMDIVN[9] = 1
11HCLK = FCLK/3 CAMDIVN[8] = 0
HCLK = FCLK/6 CAMDIVN[8] = 1
HDIVN [2:1] 00
0PCLK 是和 HCLK/1 相同的时钟
1PCLK 是和 HCLK/2 相同的时钟
PDIVN [0] 0