【韦东山旧1期学习笔记】04.S3C2440系统时钟实验

S3C2440时钟发生器结构

【韦东山旧1期学习笔记】04.S3C2440系统时钟实验
        通过S3C2440芯片手册第7章时钟和电源管理中的7.1时钟发生器框图可知,其时钟源有俩个,一个是外部晶振(XTIpll),一个是外部时钟(EXTCLK)。具体使用的是哪个时钟源,是由模式控制引脚OM3和OM2两个引脚共同决定的。在系统启动时,在复位信号nRESET信号的上升沿,S3C2440将OM3和OM2引脚状态锁存。具体如下图所示:
【韦东山旧1期学习笔记】04.S3C2440系统时钟实验
        从时钟发生器框图中可以看出,如果使用外部晶振,则S3C2440内部还接有一个OSC晶振放大器。之后是两个锁相环PLL(Phase-Locked-Loop)。这两个PLL(MPLL、UPLL)用于产生所需的更高频率的时钟。MPLL用于生成FCLK,HCLK和PCLK。UPLL则专用于USB模块。
        对于有MPLL分出来的三种时钟:FCLK用于CPU核;HCLK用于AHB总线上的设备,比如CPU核、存储器控制器、中断控制器、LCD控制器、DMA控制器和USB主机模块等;PCLK用于APB总线上的设备,比如看门狗、IIS、IIC、PWM定时器、MMC接口、ADC、UART、GPIO、RTC和SPI等设备。
        需要注意的是,当系统启动时,系统不会使用MPLL作为系统时钟,而是直接使用外部晶振或外部时钟。只有当MPLLCON寄存器被设置了之后,系统才会使用MPLL作为系统时钟。所以即使不需要更改MPLLCON的默认值,也需要将其再次写入该寄存器。

外部时钟源选择

结合JZ2440开发板电路图时钟相关引脚如下所示:
【韦东山旧1期学习笔记】04.S3C2440系统时钟实验
【韦东山旧1期学习笔记】04.S3C2440系统时钟实验
从上图的红框处可以看出,OM[3:2]被硬件强制置为00,这样,MPLL和UPLL均使用外部12MHz晶振。
【韦东山旧1期学习笔记】04.S3C2440系统时钟实验

上电时序

【韦东山旧1期学习笔记】04.S3C2440系统时钟实验

  1. 当使用外部晶振时,外部晶振会在上电若干毫秒(milliseconds)之后开始振荡。此时,虽然当复位信号nRESET恢复为高电平时,PLL会按照默认配置值开始工作,但是由于PLL在上电复位后工作不稳定,所以系统直接使用外部输入的时钟Fin替代MPLL作为系统时钟,此时FCLK=Fin,即12MHz。
  2. 之后使用软件设置了PLLCON寄存器后,经过一定的锁定时间,PLL才会稳定输出,系统此时才会使用PLL作为系统时钟。在锁定时间内,FCLK停振,CPU停止工作。