总结的不错的一片文章!
原文地址:http://hi.baidu.com/%B0%AE%D4%C2%D2%B2%D2%B9%C3%DF%B3%D9/blog/item/75d1b6175b76a25cf2de3201.html
把网友的总结一下,归纳如下:
1、PLL(锁相环)
为了降低电磁干扰和降低板间布线要求,芯片外接的晶振频率通常很低(这块板子用的12MHz),通过时钟控制逻辑的PLL提高系统使时钟。锁相环起到的是倍频的作用,锁相环的使用有锁定和连接的过程。(有的芯片锁定连接过程是自动完成的比如S3C2440,有的则需要手动编程实现锁定和连接,总之PLL属于一种片上外设,不同厂家的产品使用上略有不同)
以S3C2410为例,其内部有两个锁相环: MPLL、UPLL,分别为MCU和USB控制器产生时钟信号,其中MPLL未连接之前MCU直接使用震荡源作时钟信号,连接后则改用MPLL倍频后的震荡源作时钟信号;而UPLL因为是为USB设备提供时钟信号,所以规定必须是48MHz或96MHz。
2、分频器
S3C2410有四种时钟信号(从UPLL分出来的UCLK,从MPLL分出来的FCLK/HCLK/PCLK)。UCLK(比为48MHz)是供给USB的,FCLK是供给MCU的,HCLK供给AHB,PCLK供给APB。
FCLK 与MPLL的频率一样。我们所说的S3C2410的CPU主频为200MHz,就是指的这个时钟信号,相应的,1/FCLK即为CPU时钟周期。
HCLK 可以设置为FCLK或FCLK/2 ,即通过设置相应得寄存器CLKDIVN中的对应位HDIVN即可,其中HDIVN为0时对应FCLK,为1时对应FCLK/2
PCLK可以设置为HCLK或HCLK/2 ,即通过设置相应得寄存器CLKDIVN中的对应位PDIVN即可,其中PDIVN为0时对应HCLK,为1时对应HCLK/2
3、AHB/APB
AHB与APB的地位相当于PC中的南北桥,是两道独立的片内总线。AHB:advanced high-performance bus;APB: advanced peripherals bus。 在这里,需要了解一下AMBA system architecture了。简单的说,AMBA是一种协议,这种协议已经称为片上组织通信的事实上的标准(the de facto standard for on-chip fabric communication)。下面给出英文描述:
The AMBA protocol is an open standard, on-chip bus specification that details a stategy for the interconnection and management of functional blocks that makes up a system-on-chip(SoC).It facilitates "right-first-time" development of embedded processors with one or more CPU/signal processors and multiple peripherals. The AMBA protocol enhances a resuable design methodology by defining a common backbone for SoC modules.
需要知道的是,AMBA总线是ARM提出的一种解决方案,它并非唯一的规范,但是因为ARM的广泛使用,AMBA总线也就成为了事实上的规范了。现在AMBA总线最新为AMBA 3 specification版本,包括AMBA 3 AXI Interface、AMBA 3 AHB Interface、AMBA 3 APB Interface、AMBA 3 ATB Interface。而S3C2410还只能支持AMBA 2 specification,这个版本包含AMBA 2 AHB Interface、AMBA 2 APB Interface。也就是在S3C2410的框图中看到的两种总线接口。
这两种总线所连的外设是有区别的。AHB总线连接高速外设,低速外设则通过APB总线互连。显然,对不同总线上的外设,应该使用不同的时钟信号,AHB总线对应HCLK,APB总线对应PCLK。弄清楚每条总线对应的外设,在设置好时钟信号后,对应外设的初始化的值依此而确定。
bus上的外设有LCD controller、USB Host CONT、ExtMaster、Nand CONT和nand flash boot loader、BUS CONT、interrupt CONT、power management、memory CONT(sram/nor/sdram等)。
APB bus上的外设有UART、USB device、SDI/MMC、Watch Dog 、BUS CONT、SPI、IIC、IIS、GPIO、RTC、ADC、Timer/PWM。
4、Fin
指CPU外围接的晶振本身的频率,通常为12MHz。
注意:
1. Although the MPLL starts just after a reset, the MPLL output (Mpll) is not used as the system clock until the software writes valid settings to the MPLLCON register. Before this valid setting, the clock from external crystal or EXTCLK source will be used as the system clock directly. Even if the user does not want to change the default value of MPLLCON register, the user should write the same value into MPLLCON register”
复位后,MPLL虽然默认启动,但是如果不向MPLLCON中写入value,那么外部晶振直接作为系统时钟。 EB110-4的外部晶振有两个,一是用于系统时钟,为12MHz;一个用于RTC,为32.768KHz。若实验没有向MPLLCON写入数值,系统时钟是12MHz。(从这里也可以发现一个问题,如果焊板子时外部晶振开始没有焊上,那么系统是无法正常启动的。因为按照上述规则,复位后还没有写入 MPLLCON,这时又没有可以使用的时钟源,所以不会启动。也就是硬件完成后,这个12MHz的晶振是一定要焊上的,才能进行后续的硬件测试工作。)
上电复位后,几个ms后晶振起振。当OSC时钟信号稳定之后,nRESET电平拉高(这是硬件自动检测过程)。这个时候,PLL开始按照默认的PLL配置开始工作,但是特殊性就在于PLL在上电复位后开始是不稳定的,所以S3C2410设计为把Fin在上电复位后直接作为FCLK,这是MPLL是不起作用的。如果要想是MPLL起作用,那么方法就是写入MPLLCON寄存器值,然后等待LOCKTIME时间后,新的FCLK开始工作。
即使不想改变MPLLCON寄存器的值,也要重新赋值一下。
.
.
.
.
.
.
.
TIPS:
1、FCLK PCLK HCLK:
http://blog.csdn.net/vrix/archive/2009/07/28/4386400.aspx
2、北邮人论坛:
http://bbs.byr.cn/article/Embedded_System/2561
3、BootLoader中PLL的初始化代码分析:
http://blog.csdn.net/formerman/archive/2009/07/26/4380126.aspx
4、关于时钟及分频的讨论:
http://www.linuxforum.net/forum/showflat.php?Cat=&Board=driver&Number=664181&page=&view=&sb=&o=&fpart=all&vc=1
5、从PC总线到ARM的内部总线:
http://blog.csdn.net/thewayma/archive/2009/06/22/4286891.aspx
分享到:
相关推荐
S3C2410的时钟系统包括三个主要的时钟输出:FCLK、HCLK和PCLK,分别对应不同的用途。 - **FCLK**:直接由MPLL提供,主要用于CPU的核心时钟。 - **HCLK**:由FCLK经过CLKDIVN寄存器的分频产生,用于AHB总线上的设备...
S3C2410提供了四种时钟信号:UCLK、FCLK、HCLK和PCLK。UCLK专供USB使用,固定为48MHz。FCLK是CPU的主时钟,与MPLL的频率相同,当CPU主频为200MHz时,FCLK也为200MHz,1/FCLK即为CPU的时钟周期。HCLK和PCLK是两个可...
1. **时钟控制**:负责产生系统所需的各种时钟信号,包括CPU时钟(FCLK)、AHB总线时钟(HCLK)以及APB总线时钟(PCLK)等。 2. **USB控制**:专门用于USB模块的时钟产生,采用单独的PLL(锁相环)来产生48MHz的时钟...
PLL在S3C2410中的作用是产生系统所需要的时钟信号,包括提供给CPU的FCLK,提供给AHB总线设备的HCLK和提供给APB总线设备的PCLK。PLL还可以产生不带锁相环的低速时钟,并可由软件控制是否提供给某个设备模块,这样有利...
S3C2440A具有两个PLL,其中一个PLL提供给FCLK、HCLK、PCLK使用,另一个PLL则专供USB模块使用。 - **通用PLL**: 用于调整FCLK、HCLK、PCLK的频率,实现性能优化。 - **USB专用PLL**: 保持在48MHz,确保USB接口的稳定...
根据提供的文档内容,本文将详细解析ARM9硬件接口学习之四——CLOCK的相关知识点,主要聚焦于S3C2410芯片中的时钟管理机制,包括PLL(锁相环)的工作原理及其配置方法。 ### S3C2410时钟系统概述 #### 1. PLL简介 ...
在S3C2410A处理器中,时钟和功率管理模块包括时钟控制、USB控制和功率控制。以下是这些知识点的详细说明: **时钟控制** 时钟控制逻辑负责生成系统所需的时钟信号,包括CPU的FCLK,AHB总线接口的HCLK,以及APB总线...
时钟管理模块则能够生成CPU、AHB总线和APB总线所需的FCLK、HCLK和PCLK时钟信号,通过锁相环(PLL)技术实现频率的灵活配置。 在系统设计时,需要充分理解这些模块的功能和交互方式,以便于进行有效的硬件和软件优化...
以S3C2410处理器为例,它提供了FCLK、HCLK和PCLK三种不同的时钟源。FCLK作为CPU核心时钟,是整个处理器运算性能的关键;HCLK则作用于高性能总线AHB,它决定了连接在该总线上的设备的运行速度;而PCLK则是面向APB总线...
S3C2410_NAND * const nand = S3C2410_GetBase_NAND(); nand->NFADDR = addr; } static inline void NF_WaitRB(void) { S3C2410_NAND * const nand = S3C2410_GetBase_NAND(); while (!(nand->NFSTAT & (1...
M-PLL主要用于ARM920T处理器的FCLK,AHB总线设备的HCLK,以及APB总线设备的PCLK。U-PLL则专为USB接口提供48MHz的时钟。时钟频率受到电源电压的影响,电源电压越高,时钟频率上限也越高,但同时也意味着更高的功耗。 ...
- **总线类型**:S3C2410具有两条总线,即AHB(高级总线)和APB(外设总线)。 - **模块挂接**:AHB总线上主要挂接中断控制器、存储器控制器、NAND控制器、DMA控制器等;APB总线上主要挂接GPIO、定时器、UART、USB等...
- **描述**:S3C2410/S3C2440中有五个16位定时器,其中四个定时器(0、1、2、3)具有PWM功能,可以通过控制定时器输出引脚的高、低电平变化来实现脉冲宽度调制。 - **时钟源**:定时器的时钟源是PCLK,经过两个8位...