`
yidongkaifa
  • 浏览: 4065920 次
文章分类
社区版块
存档分类
最新评论

S3C2440的时钟原理

 
阅读更多

Crystal 无源晶体
Oscillator 有源晶体(里面有有源器件)

S3C2440的datesheet上说,可以达到400M,但是也不是说,必须在400M的频率下工作,主时钟晶振来自于外部晶振(XTIPLL)或者是外部时钟(EXTCLK)。时钟生成器包含了一个振荡器(振荡放大器),其连接外部晶振,并且还有2个PLL,可以产生需要的高频。

通过引脚OM[3:2]来决定时钟源是Crystal还是EXTCLK,不过我用的开发板将OM[3:2]固定接地了,都是用外部晶振。有一点值得注意,在对MPLLCON写入有效值之前,系统使用外部晶振或外部时钟源的时钟。即使用户不准备改变MPLLCON的值,也应当重新写一次。

简单说一下,S3C2440的时钟构成。

S3C2440具有2个PLL(Phase Locked Loop:用来产生高频的电路),一个是MPLL,用于产生FCLK,HCLK,PCLK三种频率, 这三种频率分别有不同的用途:

FCLK是CPU提供的时钟信号,如果提到CPU的主频是400MHz,就是指的这个时钟信号。
HCLK是为AHB总线提供的时钟信号,Advanced High-performance Bus,主要用于高速外设,比如内存控制器,中断控制器,LCD控制器,DMA以及USB host。

PCLK是为APB总线提供的时钟信号,Advanced Peripherals Bus,主要用于低速外设,比如WATCHDOG,IIS, I2C,SDI/MMC, GPIO,RTC ,UART,PWM,ADC and SPI等等。

另外一个是UPLL,专门用于驱动USB host/Device。并且驱动USB host/Device的频率必须为48MHz。

在系统复位之后,如果没有设定PLL,则采用外部晶振的频率作为FCLK,同时FCLK:HCLK:PCLK的比例关系为1:1:1。

下面说一些跟时钟有关的寄存器设置:通过改变CLKDIVN可以改变FCLK,HCLK,PCLK的分频比。

锁定时间计数寄存器LOCKTIME(0x4c000000):一般使用默认就可以。

锁相环控制寄存器[MPLLCON(0x4c000004)&UPLLCON(0x4c000008)]:

MPLL=(2*m*Fin)/(p*2^s)UPLL=(m*Fin)/(p*2^s)

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

P,M范围:1<=P<=62,1<=M<=248

注意:MDIV[19:12],PDIV[9:4],SDIV[1:0],当设置MPLL和UPLL值的时候,需要先设置UPLL再设置MPLL。

例如:MPLLCON = (92<<12) | (1<<4) |(1);//FCLK=400M

这里MDIV=92,PDIV=1,SDIV=1,那么m=100,p=3,s=1,且Fin=12M,所以FCLK=400M

再设置CLKDIVN=0x03;//FCLK:HCLK:PCLK=1:2:4

这里CLKDIVN(0x4c000014)用于决定三者的分配比例

一般设置这两个就可以了。还有一个时钟控制寄存器CLKCON(0x4c00000c)向相应位写1使能相应时钟,不过一般默认为1.

overview

时钟和电源管理这一块内容包括三个部分:时钟控制, USB控制, 电源控制

在s3c2440a的CPU上,时钟控制逻辑可以产生需要的时钟信号,包括给CPU用的FCLK, 给AHB总线外设用的HCLK以及给APB总线外设用的PCLK.S3C2440A含有两个锁相环:一个是FCLK, HCLK和PCLK, 还有另外一个专门用于USB单元(48Hz).时钟控制逻辑可以在没有PLL的时候使时钟变慢,并且可以用软件的方法使时钟与周边设备连接与断开, 这个功能可以节省功耗.

补充:
AMBA总线

先进的微控制器总线体系结构AMBA规范定义了三种总线:

(1)AHB(Advanced High-performance Bus):用于连接高性能系统模块。它支持突发数据传输方式及单个数据传输方式,所有时序参考同一个时钟沿;

(2)ASB(Advanced System Bus):用于连接高性能系统模块,它支持突发数据传输模式;

(3)APB(Advance Peripheral Bus):是一个简单接口支持低性能的外围接口。

对于电源控制逻辑,S3C2440A有不同的电源管理的主题,来对某一项任务来优化电源功耗.S3C2440A中的电源管理单元可以有四种模式:

普通模式, SLOW 模式, IDLE模式, SLEEP模式.

功能描述

时钟架构
时钟产生器包括一个连接在外部crystal上的晶振,并且有两用于产生S3C2440A所需要的高频信号的锁相环.

时钟源的选择
下表显示了芯片模式控制引脚(OM3和OM2)的选择与S3C2440A时钟源的关系.

注意:
1) 尽管重启后,MPLL会启动,但是直到软件正确设置了MPLLCON寄存器后,MPLL的输出才作为系统的时钟.在正确的设置被设置前,来自外部的crystal或extclk源直接作为系统时钟.即使用户并不想改变MPLLCON寄存器的默认值,用户应该在MPLLCON的寄存器中设置同样的值.
2) OM[3:2]用于决定测试模式,当OM[1:0]是11的时候.

锁相环
在时钟产生器中的MPLL,作为一个电路,作用是在频率与相伴上同步输出信号与一个参考输入信号.

时钟控制逻辑
时钟控制逻辑决定使用的信号源,PLL时钟或外部时钟. 当PLL配置成一个新的频率时,时钟控制逻辑中止FCLK的使用,直到使用PLL锁时间的PLL的输出稳定后. 这种时钟控制逻辑在通电重启或从节电模式中醒来都起作用.

通电重启(XTIpll)

在普通模式中变换PLL的设置

USB时钟控制

FCLK, HCLK, PCLK
FCLK 用于ARM920T
HCLK 用于AHB总线,AHB总线被ARM920T用于,内存控制器,中断控制器,LCD控制器,DMA和USB host block.
PCLK 用于APB总线,APB总线是用于周边设备的,如是WDT,IIS, I2C, PWM 计数器, MMC接口, ADC, UART, GPIO, RTC 和SPI

注意:
1) CLKDIVN必须小心设置,不要超过HCLK和PCLK的允许范围.
2) 如果HDIVN不是0,CPU总线模式必须从快速总线模式转换到异步总线模式,通过使用下面的指令来达到.(S3C2440不支持同步总线模式)
MMU_SetAsyncBusMode
mrc p15, 0, r0, c1, c0, 0
orr r0, r0, #R1_nF:OR:R1_iA
mcr p15, 0, r0, c1, c0, 0
如果HDIVN不是0, 并且CPU总线模式是快速总线模式,那么CPU将会在HCLK下工作.这种特性可以用来在不影响HCLK和PCLK的情况下改变CPU频率成原来的一半或更多.

电源管理
在S3C2440A中,电源管理模块通过软件来控制系统时钟以达到减少电源功耗的功能.这些主题跟PLL,时钟控制逻辑(FCLK,HCLK,PCLK)和唤醒信号有关.

S3C2440A有四种电源模式.下面的部分描述各种模式.各种模式之间的转换并不是随意的.

FCLK的值如何得到?

FCLK= Fout = 2 * m * Fin / (p*2^s), Fvco = 2 * m * Fin / p where : m=MDIV+8, p=PDIV+2, s=SDIV

MPLLVal [M:7fh,P:2h,S:1h]bootloader打印出来的信息.

code

mov r1, #0x4c000000

ldr r2, =0x7f021

str r2, [r1, #0x04]

与BOOTLOADER里打印出来的一样.

^ 代表幂

So, FCLK =2* (127+8)*12M/4*2=405M

关于HCLK, PCLK的值,取决于CLKDIVN的值.

代码如下:

mov r1, #0x4c000000

ldr r2, 0x5

str r2, [r1, #0x14]

所以CLKDIVN=5, HDIVN=10,PDIVN=1, 再看CAMDIVN

10: HCLK = FCLK/4 when CAMDIVN[9]=0

HCLK = FCLK/8 when CAMDIVN[9]=1

PCLK = HCLK /2

CAMDIVN代码中没有进行设置,就用初始值.0



HCLK = FCLK/4

PCLK = FCLK/8

至此, clock部分设置结束.

分享到:
评论

相关推荐

    RTC.rar_S3C2440 RTC_s3c2440 ads

    S3C2440下的RTC测试源码,ADS下的源码!对需要了解ARM实时时钟工作原理的兄弟很有帮助!

    广嵌2440开发板实验资料本实验指导手册针对目前国内非常流行的三星公司 ARM9 嵌入式微处理器――S3C2440A,通过具体的实例精讲,详细介绍了 ARM9 嵌入式常用模块的原理和驱动程序实现方法。

    本实验指导手册针对目前国内非常流行的三星公司 ARM9 嵌入式微处理器――S3C2440A,通过具体的实例精讲,详细介绍了 ARM9 嵌入式常用模块的原理和驱动程序实现方法。本实验指导手册共分4篇33章,第一篇为ARM基础知识...

    这是一个s3c44box 系统的原理图

    包括LCD 网络接口 时钟 各部分原理图

    嵌入式Linux之我行系列

    ·嵌入式Linux之我行——S3C2440上RTC时钟驱动开发实例讲解 ·嵌入式Linux之我行——S3C2440上看门狗(Watchdog)驱动开发实例讲解 ·嵌入式Linux之我行——S3C2440上ADC驱动实例开发讲解 ·嵌入式Linux之我行——S3C...

    嵌入式ARM9-2440实战手册

    针对s3c2440a,通过实例精讲,介绍了arm9嵌入式常用模块的原理和驱动程序实现方法,广嵌教育出品 实验1 ARM 汇编指令编程实验1 实验2 C 和ARM 汇编混合编程实验8 实验3 C 语言实现LED 控制实验15 实验4 外部中断...

    郭天祥ARM9视频教程(第13和20讲均可观看).docx

    4. S3C2440时钟电源管理 5. S3C2440的中断体系结构 第十讲 S3C2440主存储器配置 1. S3C2440存储控制器特性 2. SDRAM原理分析 3. NandFlash原理分析 第十一讲 ADS工具的使用,建立硬件调试环境 1. 建立ADS工程 2. ...

    S3C2440 Windows CE的RTC模块驱动设计与实现

    虽然WinCE系统也实现了时间显示,但是在具体的实现中,其原理和方法与桌面系统大不相同,即使是基于不同嵌入式硬件平台的WinCE开发,也有所不同。由于嵌入式系统的复杂性、分散性,目前嵌入式系统的实时时钟RTC功能...

    基于S3C44BOX的电能质量分析仪的硬件设计 (2010年)

    以电能质量分析仪的前期开发板的硬件设计为目标,根据嵌入式体系结构和嵌入式系统设计的原理及相关芯片手册,构建了基于Samsung公司S3C44BOXARM7TDMI处理器的硬件开发平台。详细阐述了构建核心系统的过程并根据需要...

    基于ARM的智能霓虹灯设计.doc

    目录 目录 1 摘 要 2 1 设计目的 3 2 设计要求 3 3 设计内容 4 3.1整体设计 4 3.2霓虹灯工作原理 5 3.3器件选择 6 3.3.1 S3C2440简介 6 3.3.2 LED 7 3.4各模块电路 8 3.4.1电源电路的模块 8 3.4.2时钟电路的模块 8 ...

    嵌入式系统原理与接口技术 课程设计 最终版.zip

    《嵌入式系统原理与接口技术》课程设计 硬件平台: UP_CUP S2440 设计题目:实时时钟的设计与实现 功能要求: ⑴、通过Timer产生1s信号中断信号,实现时钟的计时功能; ⑵、设计并实现实时时钟的时、分、秒功能; ⑶...

    6410时钟初始化相关资源

    1. 博客配套的 汇编代码 Makefile 文件 链接器脚本 2.可执行的二进制程序 3.Linux烧写工具 ( OK6410A开发板 ) 4.SecureCRT 连接串口工具 5.ARM 手册 : ARM Architecture Reference ...10.开发板手册 : S3C6410X.pdf

    51单片机实时时钟设计.doc

    完成内容:完成一个简易数字时钟的软硬件设计,首先利用protus完成功能方真,再利 用dxp完成原理图和pcb的绘制,该数字时钟可具备如下功能: 1. 实现最基本的计时功能,显示时、分、秒,可以通过按键设置时间。 要求...

    ARM实现实时时钟实验的实验报告详细说明

    S3C44B0X 实时时钟( RTC)单元特性:BCD 数据:秒、分、小时、星期、日期、月份和年份   1、闹钟(报警)功能:产生定时中断或激活系统   2、自动计算闰年   3、无2000 年问题   ...

    基于单片机的时钟设计(1).doc

    使用AT89C51单片机芯片控制电路,单片机控制电 路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟 的时、分、秒,用一蜂鸣器来进行定时提醒,同时使用C语言程序来控制整个时钟显示, ...

    51单片机STC89C52RC开发板例程之钟表可定时.rar

    4、提供配套PDF格式51单片机STC89C52RC开发板电路原理图。5、功能:若要更改时钟初始值(即时钟校准),可先按下矩阵键盘中的S15键,此时时 钟会暂停。然后按S3,S4,S5,S6,S8,S9,S10,S11,S13,S14中的键修改矫正当前值...

    RTC及数码管显示实验(设计性实验)

    RTC及数码管显示实验(设计性实验 实验目的 ●了解实时时钟的硬件控制原理及设计方法。 ●掌握S3C44B0X处理器的RTC模块程序设计方法 )

    电子时钟设计及程序.doc

    输入模块我们选用三个独立弹性小按键来实现,选用矩阵式键盘则太浪费资 处理模块我们选用了STC公司的STC89C52芯片来,与Atmel公司生产的AT89S52一样,也是 40脚双列直插式封装,这里芯片对刚学单片机的人来说容易...

    基于单片机的门铃设计.docx

    电路原理图如下: 图2 电源部分原理图 (2)STC89C52芯片 STC89C52是一个低功耗,高性能CMOS8位单片机,片内含具有如下特点:40个引脚(引脚图如图3-1所示),4kBytesFlash片内程序存储器,128bytes的随机存取数据...

Global site tag (gtag.js) - Google Analytics