⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2440_mpll.txt

📁 这是s3c2440的MPLL部分资料!是在网上下在的!对我有很大的帮助!在此感谢原作者!仅供学习!
💻 TXT
📖 第 1 页 / 共 2 页
字号:
14:04 2008-2-2  ————(JXB)
具体图表见S3C2440手册

概要

Clock&power management 模块包含了3部分:Clock控制、USB控制、POWER控制.

   时钟控制逻辑单元能够产生2440需要的时钟信号,包括CPU使用的主频FCLK,AHB总线设备使用的HCLK,以及APB总线设备使用的PCLK.2440内部有2个PLL(锁相环):一个对应FCLK,HCLK,PCLK,另外一个对应的是USB使用(48MHz)。.时钟控制逻辑单元可以在不使用PLL情况下降低时钟CLOCK的频率,并且可以通过软件来驱使时钟和各个模块的连接/切断,这样做可以减少电源消耗。

   对于电源控制逻辑单元,2440有许多钟电源管理方法来针对不用任务保持相应的电源消耗。电源管理模块包含了4种方式:NORMAL、SLOW,IDLE,SLEEP。

NORMAL:T\这个模块支持CPU时钟以及2440相应的外围设备时钟。这个模式下,如果所有的外围设备都打开的话,电源消耗是最大的。但是它允许通过软件编程来控制外部设备的的状态。例如,如果一个定时器Timer不需要时,那么用户可以通过CLKCON寄存器来关闭时钟和Timer连,来降低电源消耗。

SLOW模式:又叫NON-PLL模式,不同于Normal模式,这个模式使用的是一个外部时钟来直接驱动2440的主频FCLK,不通过PLL,在这个模式下,电源的消耗仅仅和外部时钟频率有关,电源同PLL有关的消耗可以忽略。

IDLE模式:这个模式下CPU的时钟FCLK是关闭的,而其他外围设备的时钟还继续工作。因此空闲模式的结果只是能够降低CPU核的电源消耗               注意,任何中断请求都能够将CPU唤醒。

Sleep模式:这个模式关闭了内部电源。因此CPU&内部的逻辑单元都没有电源消耗,除了工作在这个模式下的一个wake-up逻辑单元。因此sleep模式需要2个独立的电源。一个来支持wake-up模块工作,另外一个支持内部逻辑&CPU的电源,并且这个模块的电源是可控的。所以在Sleep模式,支持内部逻辑&CPU的电源模块是关闭的,而通过EINT[15:0]&RTC中断可以从Sleep模式唤醒。

功能描述

时钟结构

图7-1表明了时钟模块结构,主时钟频率直接来自外部时钟(XTIPLL)或者是内部的时钟(EXTCLK).时钟的产生包含了一个晶振运放,将外部的晶振信号放大,还有2个PLL,产生2440各种高频时钟所需。

时钟源的选择

表7-1表明了时钟选择脚位关系(OM2&OM3)以及2440的时钟源,当nRESET的信号从低到高上升沿的时候,2440读取OM2,OM3的脚位信息OM[3:2]状态来选择Main时钟源以及USB时钟源。

                                                         注意

1、虽然MPLL在reset以后就起来了,但是MPLL输出(Mpll)还不能够作为系统时钟来使用,必需要使用软件写入相应的MPLLCON寄存器命令后才能使用。因此通过合法的指令设置后,时钟将能够直接当能系统时钟来使用。需要注意到,就算是用户不想改变MPLLCON的值,但是还是需要再重新写入一遍一样的值。

2、OM[1:0]=11的时候,OM[3:2]为test模式。****其实OM[3:2]应该是相当于一个开关逻辑,通过外部硬件脚位设置  , 和CPLD的内部原理相同,与门,非门,与非门等构成.

Phase Locked Loop(PLL)

MPLL时钟发生器,作为一个集成电路,作用是同步输出信号以及输入信号的频率和相位。这种应用,包含了图7-2的基本模块:VCO(电压振荡器),利用输入的DC电压来产生一个稳定的输出频率(****又叫压控振荡器,利用电压使石英振荡),分频器P通过P值来对输入Fin频率来进行分频,分频器M通过鉴相器PFD得到M值来设置VCO的频率输出,分频器S通过Mpll模块的相位检测,电荷泵,环路滤波,输出频率值s来设置VCO的频率。输出时钟频率Mpll相关公式如下:

Mpll=(  2 * m * Fin ) / ( p * 2 s )  *****见手册P211

m=M(分频器M的值)+8, p=P(分频器P的值)+2

Upll时钟发生器的内部也和Mpll类似

Phase Frequency Detector(PFD)   鉴相器

PFD的作用是检测Fref和Fvco的相位差,然后当检测到相位差时就产生一个控制信号到VCO和loop Filter中。

Charge Pump(PUMP) 电荷泵

电荷泵转变PFD的控制信号成一定比例的电压值,通过一个外部的低通滤波器

loop filter 环路滤波器

PFD输出的控制信号,进入电荷泵时,可能会有大量的纹波(*******本人认为还有谐波分量,辐射以及传导干扰等,VCO需要的是一个非常细致的电压,因此这个模块的设计应该可以看出一个公司的硬件设计功底),因此为了避免VCO过冲,需要低通滤波采样以及滤除器件的高频分量。滤波器采用典型的RC低通滤波。

Voltage Controlled Oscillator (VCO)

输出电压从环路滤波进入VCO,引起振荡频率的变化,当Fref和Fvco没有差别的时候,电压就保持稳定下来,PFD停止送出控制信号到电荷泵,此时PLL系统时钟稳定。

通用条件和时钟发生器

PLL&时钟发生器需要如下硬件满足:环路滤波电容 mpll 1.3nF,upll 700pF,外部电容 15-22pF.

时钟控制逻辑

时钟控制逻辑决定那个时钟源的使用,mpll还是直接使用外部时钟。当PLL重新配置时钟频率值时候,时钟控制逻辑关闭Fclk直到PLL输出稳定。时钟控制逻辑单元在上电reset和power-down模式wake -up时候激活。

Power-on-Reset

图7-4表明了时钟在电源上电reset的时序图。晶振在几毫秒开始振荡,当nReset在晶振时钟稳定后释放,PLL开始参照默认的PLL配置运行。但是,PLL通常在电源启动reset后都不稳定,因此Fin直接代替MPLL作为FCLK,因为此时还没有配置PLLCON.注意,PLLCON值一定要重新写一遍。

******具体的时序见图P213,非常详细   

PLL重新启动后,一定要用软件重新写一遍PLLCON的值,可以获得稳定的系统CLOCK。

 Change PLL Settings In Normal Operation Mode

在Normal模式下,用户可以改变频率通过写P M S三个分频器的值,在PLL锁存时间,时钟是被切断的。见图7-5在MPLL改变频率的时间,FCLK是没有时钟输出的。

USB时钟控制

USB主接口和USB从接口都需要48Mhz的时钟。在S3C2440A内,USB知明需要PLL(upll)产生48Mhz的时钟给USB

******USB的时钟可以使用CLKSLOW寄存器来对USB的时钟进行开关.

FCLK HCLK 和PCLK

FCLK用于ARM920T

HCLK用于AHB总线(高速)上,例如通过ARM920T,内存控制,中断控制,LCD控制,DMA以及USB主时钟块。

PCLK用于APB总线(低速)上,如看门狗,IIS,I2C,PWM,MMC接口,ADC,UART,GPIO,RTC以及SPI.

2440支持FCLK,HCLK,PCLK分频比转换。转换的比例值由CLKDIVN控制寄存器中的HDIVN,PDIVN确定。

*******见P215的表

在经过P M S 3个值设置获得MPLL后,需要Set CLKDIVN寄存器的值, 因此设置CLKDIVN再经过PLL锁存期后的时钟值就是稳定的值。这个值复位和电源管理模式中都可以用。

 *****CLKDIVN的默认设置为1:1:1,在写入CLKDIVN后,改变FCLK:HCLK:PCLK的比例,见P215图7-6所示。

                                                     注意

1、CLKDIVN的值需要小心设置,不能超过HCLK,PCLK的极限值。

2、如果HDIVN不为0,根据如下指令,CPU总线模式从Fast Bus Mode 变为Asynchronous(异步总线模式),2440没有同步总线模式)

MMU_setAsyncBusMode

mrc p15,0,r0,c0,0             ******协处理器

orr r0,r0,#R1_nF:OR:R1_iA

mcr P15,0,r0,c1,c0,0

 如果HDIVN不为0,且CPU总线模式为Fast Bus mode,CPU的时钟为HCLK.,这种方式可以用在将CPU频率降低,但是却又不改变HCLK和PCLK.

电源管理

2440的电源管理模块通过软件控制系统时钟来降低各个模块的电源消耗。原理通PLL,时钟控制逻辑(FCLK,HCLK,PCLK),以及唤醒信号。如7-7显示了系统时钟的结构图。

2440有4种电源模式,下面描述每个电源管理模式,各个模式并不能自由转换,有条件。查看P218表7-8

*********P218的表7-2指出了各个模式的电源的消耗情况。

NORMAL Mode

在Normal Mode,所有的设备以及基本模块,包括电源管理模块,CPU核心模块,总线控制模块,内存控制模块,中断控制模块,DMA,以及外总。但是除了基本模块,每个设备模块都能通过软件来设置关闭来降低电源消耗。

IDLE Mode

这个模式主要是将CPU核模块关闭了,其他基本模块都是工作的,利用EINT[23:0]或者RTC时钟中断,或者其他的中断可以结束IDLE模式(注意 只有当GPIO模块工作时,EINT才有效)

SLOW 模式(非-PLL模式)

在这个模式下电源消耗可以降低,主要是因为系统时钟降低了并且关闭了PLL模块。FCLK不使用PLL,直接来自输入时钟(包含了外部时钟XTIpll和内部时钟EXTCLK),此模式下的分频滤由CLKSLOW控制寄存器&CLKDIVN控制寄存器的设置决定。

*******见P219的表,CLKSLOW和CLKDIVN寄存器的设置对SLOW模式时钟的影响

在SLOW模式,PLL将被关闭降低PLL的电源消耗。如果要从SLOW模式变成NORMAL模式,PLL需要时间稳定。稳定时间大概在300us左右。

用户可以使用CLKSLOW寄存器中的SLOW模式bit位来改变频率。见P220的图7-9

CLKSLOW寄存器中的SLOW_BIT位可以将SLOW模式切换至NORMAL模式中,系统时钟稳定时间如图7-10

CLKSLOW寄存器中的SLOW_BIT和MPLL_OFF比特位动作,系统时钟稳定时间如如7-13

SLEEP模式

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -