您好,欢迎来到花图问答。
搜索
您的当前位置:首页S3C2410-第七章 时钟及电源管理模块

S3C2410-第七章 时钟及电源管理模块

来源:花图问答
S3C2440A中文Datasheet第七章时钟及电源管理模块联系信箱:admin@embeddedlinux.org.cnForum:http://www.embeddedlinux.org.cn/

第七章时钟及电源管理模块

时钟电源管理模块包含了3部分:Clock控制、USB控制、POWER控制.

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

对于电源控制逻辑单元,2440有许多钟电源管理方案来针对所给的任务保持最优的电源消耗。S3c2440中的电源管理模块对应4种模式:NORMAL模式、SLOW模式,IDLE模式,SLEEP模式。

NORMAL模式:这个模块给CPU时钟以及2440相应的外围设备提供时钟。这个模式下,当所有的外围设备都被打开,电源消耗被最大化。它允许用户通过软件来控制外部设备的操作。例如,如果一个定时器不需要时,那么用户可以通过CLKCON寄存器来关闭时钟和定时器的连接,来降低电源消耗。

SLOW模式:NON-PLL模式,不同于Normal模式,这个模式使用的一个外部时钟(XTlpll或EXTCLK)来直接作为2440的主频FCLK,而没有使用PLL。在这个模式下,电源的消耗仅依赖于外部时钟频率,电源同PLL有关的消耗可以被排除。

IDLE模式:这个模式下CPU的时钟FCLK被断开,而还继续提供其他外围设备的时钟。因此空闲模式导致减少了CPU核相应的电源消耗。任何中断请求都能够将CPU唤醒。

Sleep模式:这个模式断开了内部电源。因此在这个模式下CPU&内部的逻辑单元都没有电源消耗,除了一个wake-up逻辑单元。激活sleep模式需要2个的电源。一个给wake-up逻辑模块提供电源,另外一个给内部逻辑包括CPU提供电源,并且其是对于poweron/off可控的。在Sleep模式,提供给内部逻辑&CPU的电源模块将被关闭,而从Sleep模式唤醒可以通过EINT[15:0]&RTC中断来引发。

7.1功能描述

7.1.1时钟结构

如图7-1所示时钟结构模块图。主时钟源来自外部晶振(XTIPLL)或者是外部时钟(EXTCLK).时钟生成器包含了一个振荡器(振荡放大器),其连接外部晶振,并且还有2个PLL,可以产生满足s3c2440所需的高频时钟。

S3C2440A中文Datasheet第七章时钟及电源管理模块联系信箱:admin@embeddedlinux.org.cnForum:http://www.embeddedlinux.org.cn/

7.1.2时钟源的选择

如表7-1所示模式选择引脚(OM2&OM3)组合之间的关系以及为2440选择时钟源,在nRESET上升沿,通过参考引脚OM3和OM2,OM[3:2]的状态被锁存。ModeOM[3:2]MPLLStateUPLLStateMainClockUSBClock

sourceSource

00OnOnCrystalCrystal01OnOnCrystalEXTCLK

OnOnEXTCLKCrystal10

OnOnEXTCLKEXTCLK11

注意

1、虽然MPLL在reset以后就开始工作,但是MPLL输出(Mpll)没有作为系统时钟来使用,直到软件对MPLLCON寄存器写入有效设置。有效设置前,来自外部晶振或外部时钟源的时钟将直接被当作系统时钟来使用。就算是用户不想改变MPLLCON寄存器的默认值,用户应该再重新写入MPLLCON寄存器一次相同的值。2、当OM[1:0]=11时,OM[3:2]被用于决定test模式。

S3C2440A中文Datasheet第七章时钟及电源管理模块联系信箱:admin@embeddedlinux.org.cnForum:http://www.embeddedlinux.org.cn/

7.1.3锁相环

PhaseLockedLoop(PLL)

位于时钟发生器中的MPLL,作为一个集成电路,使得输出信号在频率和相位上同步于一个参考输入信号。应用上其包括如图7-2所示以下基本模块:其产生于输入直流电压成比例的输出频率VCO(电压控制振荡器);通过P值来对输入频率(Fin)来进行分频的分频器P;通过m值来对VCO的输出频率进行分频的分频器M,其输出频率被输入到一个相位频率侦测器(PFD);通过s值来对VCO的输出频率进行分频的分频器S,其分频器S的输出是Mpll(从Mpll模块的输出频率);鉴相器;电荷泵;环路滤波器。

输出时钟频率Mpll相对于参考输入时钟频率Fin如以下公式所示:Mpll=(2*m*Fin)/(p*2s)

m=M(分频器M的值)+8,p=P(分频器P的值)+2Upll时钟发生器的内部也和Mpll类似7.1.3.1鉴相器

PhaseFrequencyDetector(PFD)

PFD的作用是监测Fref和Fvco的相位差,然后当检测到相位差时产生一个控制信号(跟踪型号)。Fref意为参考频率,如图7-2所示。7.1.3.2电荷泵

ChargePump(PUMP)

电荷泵通过一个由VCO驱动的外部滤波器将PFD的控制信号转变成一定电压的比例变化。7.1.3.3环路滤波器

Loopfilter

PFD为电荷泵生成的控制信号,通过每次Fvco与Fref比较,可能产生很大的偏移(纹波)。因此为了避免VCO过载,低通滤波采样以及滤除控制信号的高频分量。滤波器采用由一个电阻和电容组成的典型单极RC滤波器。7.1.3.4电压控制振荡器

VoltageControlledOscillator(VCO)

VCO驱动的环路滤波器的输出电压,引起其振荡频率按均值变化线性的增加或减少。当Fref和Fvco在频率和相位上匹配,PFD停止发送控制信号到电荷泵,其依次稳定给环路滤波器

S3C2440A中文Datasheet第七章时钟及电源管理模块联系信箱:admin@embeddedlinux.org.cnForum:http://www.embeddedlinux.org.cn/

的输入电压。VCO频率保持稳定,PLL保持固定为系统时钟。7.1.4通用条件和时钟发生器

PLL&时钟发生器需要如下硬件满足:Loopfiltercapacitance

ExternalX-talfrequency

ExternalcapacitanceusedforX-tal

CLF

MPLLCAP:1.3nF±5%UPLLCAP:700pF±5%12–20MHz(note)15–22pF

-CEXT

注:1.值可变

2.FCLK必须大于200MHz7.1.5时钟控制逻辑

时钟控制逻辑决定哪个时钟源被使用,mpll还是直接使用外部时钟(XTIpllorEXTCLK)。当PLL配置新频率值时,时钟控制逻辑使Fclk无效直到PLL输出使用PLL锁定时间达到稳定。时钟控制逻辑单元在上电reset和power-down模式被唤醒时被激活。7.1.5.1上电重启Power-onReset

如图7-4所示在电源上电reset顺序中的时钟行为。晶振在几毫秒内开始振荡,当在晶振时钟稳定后nReset被释放,PLL开始参照默认的PLL配置运行。但是,PLL通常在电源启动reset后都不稳定,因此在软件没有配置PLLCON之前,Fin直接代替MPLL作为FCLK。注意,用户应该通过软件给PLLCON寄存器重写一遍相同的值。

仅在软件用新频率配置PLL,PLL重启一个锁定序列逼近一个新频率。FCLK能在锁定时间后迅速被配置为PLL输出(MPLL)。

7.1.5.2正常模式下改变PLL设置ChangePLLSettingsInNormalOperationMode在Normal模式下的s3c2440操作中,用户可以改变频率通过写PMS三个分频器的值,在PLL锁存时间会被自动的插入。在锁定时间,时钟没有被提供给s3c2440A的内部时钟。图7-5所示的时序图。

S3C2440A中文Datasheet第七章时钟及电源管理模块联系信箱:admin@embeddedlinux.org.cnForum:http://www.embeddedlinux.org.cn/

7.1.6USB时钟控制

USB主接口和USB从接口都需要48Mhz的时钟。在S3C2440A内,USB知明需要PLL(upll)产生48Mhz的时钟给USB,UCLK直到PLL(UPLL)被配置才可以提供。

ConditionUCLKStateUPLLState

AfterresetXTlpllorEXTCLKOnAfterUPLLconfigurationL:duringPLLlocktimeOn

48MHz:afterPLLlocktime

UPLListurnedoffbyCLKSLOWregisterXTlpllorEXTCLKOffUPLListurnedonbyCLKSLOWregister48MHzOn7.1.7FCLKHCLK和PCLK

-FCLK用于ARM920T

-HCLK用于AHB总线,例如用于ARM920T,内存控制,中断控制,LCD控制,DMA以及USB主模块。

-PCLK用于APB总线,用于外围设备如看门狗,IIS,I2C,PWM,MMC接口,ADCUART,GPIO,RTC以及SPI。

2440支持FCLK,HCLK,PCLK分频比的选择。比例由CLKDIVN控制寄存器中的HDIVN,PDIVN位确定。HDIVNPDIVNHCLK3_HALF/FLCKHCLKPCLK分频比

HCLK4_HALF

00-FLCKFLCKFLCK1:1:101-FLCKFLCKFLCK/21:1:210-FLCKFLCK/2FLCK/21:2:211-FLCKFLCK/2FLCK/41:2:4300/0FLCKFLCK/3FLCK/31:3:3310/0FLCKFLCK/3FLCK/61:3:6301/0FLCKFLCK/6FLCK/61:6:6311/0FLCKFLCK/6FLCK/121:6:12200/0FLCKFLCK/4FLCK/41:4:4210/0FLCKFLCK/4FLCK/81:4:8200/1FLCKFLCK/8FLCK/81:8:8210/1FLCKFLCK/8FLCK/161:8:16在设置PMS3个值后,需要设置CLKDIVN寄存器的值。CLKDIVN的值设置在PLL锁定期后有效。这个值也对复位和改变电源管理模式也是可用的。

设置值在1.5HCLK后有效,1个HCLK可以CLKDIVN寄存器的值从默认(1:1:1)到其他分频比(1:1:2,1:2:2,1:2:4)改变有效。

S3C2440A中文Datasheet第七章时钟及电源管理模块联系信箱:admin@embeddedlinux.org.cnForum:http://www.embeddedlinux.org.cn/

注意

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

2、如果HDIVN不为0,根据如下指令,CPU总线模式从FastBusMode变为Asynchronous(异步总线模式)

MMU_setAsyncBusMode

mrcp15,0,r0,c0,0;协处理器指令orrr0,r0,#R1_nF:OR:R1_iAmcrP15,0,r0,c1,c0,0

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

7.2电源管理

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

S3C2440A中文Datasheet第七章时钟及电源管理模块联系信箱:admin@embeddedlinux.org.cnForum:http://www.embeddedlinux.org.cn/

2440有4种电源模式,下面描述每个电源管理模式,各个模式并不能自由转换,有条件。查看图7-8所示各种模式之间的有效转换。

表7-2每个模式下的时钟电源状态

ARM920TAHB模块/模式

看门狗

NORMAL开启开启IDLE关闭开启SLOW开启开启SLEEP关闭关闭

电源

管理开启开启开启等待唤醒事件

GPIO选择选择选择先前状态

3.2768KHzRTC时钟开启开启开启开启APB模块&

USBH/LCD/NAND选择选择选择关闭

7.2.1NORMALMode

在Normal模式,所有的外围设备以及基本模块,包括电源管理模块,CPU核,总线控制器,内存控制器,中断控制器,DMA,以及外部主控都可以完整的操作。但是,除了基本模块,每个外围设备的时钟都能通过软件来设置关闭以降低电源消耗。

7.2.2IDLEMode

在IDLE模式中,对CPU核的时钟被关闭了,总线控制器,内存控制器,中断控制器和电源管理模块除外。为了退出IDLE模式,EINT[23:0]或者RTC时钟中断,或者其他的中断应该被激活(EINT无效直到GPIO模块被开启)

7.2.3SLOW模式(非PLL模式)

这个模式可以减少电源消耗,通过提供一个慢速时钟且关闭了PLL模块电源供应。FCLK不使用PLL,是输入时钟(XTIpll和EXTCLK)n分频的频率。分频比率由CLKSLOW控制寄存器的SLOW_VAL位和CLKDIVN控制寄存器来决定。具体如表7-3所示:

S3C2440A中文Datasheet第七章时钟及电源管理模块联系信箱:admin@embeddedlinux.org.cnForum:http://www.embeddedlinux.org.cn/

表7-3CLKSLOW和CLKDIVN寄存器对于减慢时钟的例子SLOW_VALFCLKHCLKPCLK

1/1Option

(HDIVN=0)

000001010011100101110111

EXTCLKorXTIpll/1EXTCLKorXTIpll/2EXTCLKorXTIpll/4EXTCLKorXTIpll/6EXTCLKorXTIpll/8EXTCLKorXTIpll/10EXTCLKorXTIpll/12EXTCLKorXTIpll/14

EXTCLKorXTIpll/1EXTCLKorXTIpll/2EXTCLKorXTIpll/4EXTCLKorXTIpll/6EXTCLKorXTIpll/8EXTCLKorXTIpll/10EXTCLKorXTIpll/12EXTCLKorXTIpll/14

UCLK

1/2Option(PDIVN=1)HCLK/2HCLK/2HCLK/2HCLK/2HCLK/2HCLK/2HCLK/2HCLK/2

48MHz48MHz48MHz48MHz48MHz48MHz48MHz48MHz

1/2Option(HDIVN=1)

EXTCLKorXTIpll/2EXTCLKorXTIpll/4EXTCLKorXTIpll/8EXTCLKorXTIpll/12EXTCLKorXTIpll/16EXTCLKorXTIpll/20EXTCLKorXTIpll/24EXTCLKorXTIpll/28

1/1Option(PDIVN=0)HCLKHCLKHCLKHCLKHCLKHCLKHCLKHCLK

在SLOW模式,PLL将被关闭降低PLL的电源消耗。在SLOW模式下,PLL被关闭,用户要从SLOW模式变成NORMAL模式,PLL需要时钟稳定时间(PLLLocktime)。PLL稳定时间可以通过内部逻辑借助锁定时间计数寄存器自动被插入。PLL稳定时间在PLL开启后花费大概300us左右。在PLL锁定期间内,FCLK成了SLOW时钟。

在PLLon态,用户可以使能CLKSLOW寄存器中的SLOW模式位来改变频率。SLOW时钟在SLOW模式期间被生成,如图7-9所示时序图:

如果用户在PLL锁定期后通过使CLKSLOW寄存器中的SLOW_BIT位无效,从SLOW模式切换至NORMAL模式,频率在SLOW模式无效后立即改变,如图7-10所示时序图:

S3C2440A中文Datasheet第七章时钟及电源管理模块联系信箱:admin@embeddedlinux.org.cnForum:http://www.embeddedlinux.org.cn/

如果用户通过使CLKSLOW寄存器中的SLOW_BIT和MPLL_OFF位同时无效,从SLOW模式切换到NORMAL模式,频率在PLL锁定时间后立即改变,如图7-13所示时序图:

7.2.4SLEEP模式

电源管理模块关闭内部电源,因此,CPU和内部逻辑模块都没有电源消耗,除了此模式下的唤醒模块。激活SLEEP模式需要2个的电源,其中一个给唤醒模块提供电源,另一个给包括CPU的其他逻辑模块提供电源,并且应该可以由poweron/off控制。在SLEEP模式下,给CUP和内部逻辑单元提供电源的第二个电源被关闭。只有唤醒模块是工作的,睡眠模式被唤醒可以由EINT[15:0]和定时器中RTC(realtimecontrol)中断引起。7.2.4.1依据以下步骤进入到睡眠模式:

1、设置GPIO配置满足SLEEP模式。ConfigSleepGPIO();

2、在INTMSK寄存器设置屏蔽所有中断。rINTMSK=BIT_ALLMSK;屏蔽所有中断;

3、正确设置唤醒源包括RTCalarm(唤醒源的在EINTMASK中对应位不必被屏蔽,目的是使得SRCPND和EINTPEND的相应位置1。尽管一个唤醒源引发,而EINTMASK相应位被屏蔽,唤醒也将出现但SRCPND和EINTPEND的相应位不会被置1)

rEINTMASK=rEINTMASK&~(1<<11);//SRCPND:EINT8_23willbesetbyEINT11afterwake-up.

4、设置USB挂起模式(MISCCR[13:12]=11b)

rMISCCR|=(1<<12);//USBport0=suspendrMISCCR|=(1<<13);//USBport1=suspend

5、保存有含义的值到GSTATUS[4:3]寄存器。这些寄存器在SLEEP期间被保留。rGSTATUS3=(U32)StartPointAfterSleepWakeUp;//复位后起始点的地址

6、为数据总线上的上拉电阻配置MISCCR[1:0]。如果有外部总线保持器,如74LVCH162245,关闭上拉电阻;如果没有,开启上拉电阻。另外内存相关的引脚设置成

S3C2440A中文Datasheet第七章时钟及电源管理模块联系信箱:admin@embeddedlinux.org.cnForum:http://www.embeddedlinux.org.cn/

两态,一个是高阻,另一个是其他非活动状态。********rMISCCR=rMISCCR|(3<<0);********rMSLCON=(1<<11)|(0<<10)|(0<<9)|(1<<8)|(1<<7)|(1<<6)|(1<<5)|(1<<4)|(1<<3)|(1<<2)|(1<<1)|(1<<0);查看P284寄存器可以看此设置

7、清除LCDCON1.ENVID位来使LCD停止工作。***************rLCDCON1=rLCDCON1&0x3fffe;

8、读取rREFRESH和rCLKCON寄存器以填充TLB位

9、设置REFRESH[22]=1b,使能SDRAM进入自刷新模式。10、等待直到SDRAM自刷新有效。

11、设置MISCCR[19:17]=111b使得SDRAM的信号(SCLK0,SCLK1,SCLKE)在睡眠模式期间被保护。

12、设置CLKCON寄存器的SLEEP位。

注意:当系统运行在NANDboot模式启动时,硬件引脚配置EINT[23:21]必须,为Sleep模式唤醒的启动,设置为输入。7.2.4.2根据下面过程唤醒SLEEP模式

1、如果有唤醒源被触发,内部的复位信号就会动作。这和外部的nReset引脚触发非常相似。reset复位持续时间由内部的16位计数器逻辑决定,reset复位决断时间可以计算tRST=(65535/XTAL_frequency)

2、检测GSTATUS2[2]来判断是否是由sleep模式唤醒引起的电源开启。3、释放SDRAM的信号保护,通过设置MISCCR[19:17]=000b4、配置SDRAM内存控制器

5、等待直到SDRAM自刷新释放。大部分SDRAM需要所有SDRAM行的自刷新周期。6、GSTATUS[3:4]的信息可用于用户自己目的,因为在GSTATUS[3:4]中的值在睡眠模式下被保留。

7、-对EINT[3:0],检查SRCPND寄存器

-对EINT[15:4],查看EINTPEND寄存器而不是SRCPND寄存器。(尽管EINTPEND寄存器的一些位被置位,SRCPND寄存器不会被置位)表7-4在睡眠模式下引脚配置表

引脚条件

GPIO引脚配置为输入输入引脚,无内部上拉控制

输出引脚,连接外部设备数据总线

配置为输出

外部设备不能一直驱动引脚电平外部设备电源关闭

引脚配置指引

上拉有效

上拉无效输出低电平

上拉有效,通过外部上拉电阻输出低电平

高或低(根据外部设备状况)输出低电平

上拉有效,控制信号先前值上拉有效,控制信号先前值

外部设备电源开启

内存电源关闭内存电源开启

且外部缓存存在且无外部缓存

7.2.4.3关于VDDi&VDDiarm的电源控制

在睡眠模式下,VDDi,VDDiarm,VDDMPLL以及VDDUPLL会被关闭,其由PWREN引脚来控制,如PWREN信号被置位,VDDi和VDDiarm由一个外部变压器供电。

S3C2440A中文Datasheet第七章时钟及电源管理模块联系信箱:admin@embeddedlinux.org.cnForum:http://www.embeddedlinux.org.cn/

当PWREN=0时,VDDi和VDDiarm被关闭注意:

即使VDDi,VDDiarm,VDDMPLL以及VDDUPLL可能被关闭,部分其他电源脚也可供电。如图7-12所示

在睡眠模式,如果你不使用触摸屏,4个触摸接口必须悬空,不能接地,在睡眠模式下,XP,YP都是高电平。

7.2.4.4唤醒中断信号EINT[15:0]

S3c2440只有满足下面条件,才能从Sleep模式中被唤醒a)EINTn引脚上的电平信号或跳变信号。

b)GPIO控制寄存器中配置EINTn引脚为EINT外部中断功能。

c)nBATT_FLT引脚必须为高电平,这个在设置GPIO控制寄存器设置外部中断时候是非常重要的。

当唤醒后,这些中断引脚EINTn就不用作唤醒功能,也就是说这些引脚又可以当作外部中断请求引脚。

7.2.4.5EnteringIDLEMode

如果CLKCON[2]设置为1进入空闲模式,经过一段时间延时2440就进入空闲模式(直到电源控制逻辑模块从CPU处收到一个ACK应答信号)。7.2.4.6PLLOn/OFF

PLL可以在SLOW模式下为降低电源功耗被关闭。如果PLL在其他任何模式下关闭,MCU操作不能被保证。

当处理器在SLOW模式下且试图改变它的状态到其他态,PLL为开启,在PLL稳定后,SLOW_BIT应该被清除以转换到其他态。

7.2.4.7PULL-upResistorsontheDataBusandSLEEPMode

在睡眠模式下,数据总线(D[31:0]orD[15:0])可以选择高阻或者输出低电平。

通过打开pull-up寄存器,数据总线可以设置为高阻状态;或通过关闭pull-up寄存器,数据总线可以设置为输出低电平,目的是在SLEEP模式下降低电源消。D[31:0]引脚上拉电阻

S3C2440A中文Datasheet第七章时钟及电源管理模块联系信箱:admin@embeddedlinux.org.cnForum:http://www.embeddedlinux.org.cn/

能够由GPIO控制寄存器(MISCCR)控制。但是,如果在数据总线上有一个外部总线保持器,例如74LVCH162245,用户选择两态中的一个,一个是关闭上拉,输出低电平,另一个是高阻,上拉关闭,这样可以消耗最少的电源。7.2.4.8OutputPortStateandSLEEPmode

输出引脚在poweroff模式下应该有一个适合逻辑电平,使得电流消耗最小。如果输出引脚没有负载,高电平比较好。如果输出是低电平,电流会通过内部的寄生电阻被消耗。如果输出是高电平,电流就不会被消耗。对于一个输出引脚,如果输出态是高电平,电流消耗可以被减少。

推荐把所有输出引脚都设为高电平态,以减少在SLEEP模式下的电流消耗。但是如果输出要低,那么需要通过设置DSC0,DSC1来设置驱动电流,举例如下:*******rDSC0=0x7fffffff;

*******rDSC0&=~(1<<31);//enable调节内部的电阻阻值*******rDSC1=(3<<28)|(3<<26)|(3<24)|(3<<22)|(3<<20)|(3<<18);7.2.4.9BatteryFaultSignal(nBATT_FLT)

nBATT_FLT脚有2个功能,如下

1、当CPU不是在SLEEP模式时(大多数工作时候),nBATT_FLT此脚将引起中断请求,通过设置BATT_FUNC(MISCCR[22:20])=10xb。其中断为低电平触发。

2、当CPU为SLEEP模式时,设置此脚可以禁止从SLEEP模式的唤醒,通过设置BATT_FUNC(MISCCR[22:20])=11xb。因此,任何一个唤醒源将被屏蔽如果nBATT_FLT被设置,保护在低电池能力下系统故障。

S3C2440A中文Datasheet第七章时钟及电源管理模块联系信箱:admin@embeddedlinux.org.cnForum:http://www.embeddedlinux.org.cn/

7.3时钟发生器及电源管理特殊寄存器

(ClockGenerator&PowerManagementSpecialRegister)1.锁定时间计数寄存器

LOCKTIMECOUNTREGISTER(LOCKTIME):PLLlocktimecountregister2.锁相环控制寄存器

PLLCONTROLREGISTER(MPLLCON&UPLLCON)MPLLCON:MPLLconfigurationregisterUPLLCON:UPLLconfigurationregister3.时钟控制寄存器

CLOCKCONTROLREGISTER(CLKCON):Clockgeneratorcontrolregister4.时钟减慢控制寄存器

CLOCKSLOWCONTROLREGISTER(CLKSLOW):Slowclockcontrolregister5.时钟分频控制寄存器

CLOCKDIVIDERCONTROLREGISTER(CLKDIVN):Clockdividercontrolregister6.摄像头时钟分频寄存器

CAMERACLOCKDIVIDERREGISTER(CAMDIVN):Cameraclockdividerregister

7.3.1锁定时间计数寄存器

LOCKTIMECOUNTREGISTER(LOCKTIME)

寄存器LOCKTIMEPLL地址0x4C000000读写R/W描述

锁定时间计数寄存器复位值0xFFFFFFFF

LOCKTIMEU_LTIMEM_LTIME

位[31:16]

[15:0]

描述

UPLL对于UCLK的锁定时间计数值.(U_LTIME:300uS)

MPLL对于FCLK、HCLK、PCLK的锁定时间计数值(M_LTIME:300uS)

初始值0xFFFF

0xFFFF

7.3.2锁相环控制寄存器

PLLCONTROLREGISTER(MPLLCON&UPLLCON)

MPLLControlRegisterMpll=(2*m*Fin)/(p*2s)

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

UPLLControlRegisterUpll=(m*Fin)/(p*2s)

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

S3C2440A中文Datasheet第七章时钟及电源管理模块联系信箱:admin@embeddedlinux.org.cnForum:http://www.embeddedlinux.org.cn/

锁相环值选择指引(MPLLCON)

1.Fout=2*m*Fin/(p*2s),Fvco=m*Fin/p,m=MDIV+8,p=PDIV+2,s=SDIV2.600MHz<= FVCO<=1.2GHz

3.200MHz<=FCLKOUT<=600MHz

4.不能设置P和M值为零,因为P=000000,M=00000000会引起PLL故障。5.合适的P、M值范围是:1≤P≤62,1≤M≤248寄存器MPLLCONUPLLCON

地址0x4C0000040x4C000008

读写R/WR/W

描述

MPLL配置寄存器UPLL配置寄存器

复位值0x000960300x0004d030

位描述初始值[19:12]0x96/0x4d主分频器控制[9:4]0x03/0x03预分频器控制[1:0]0x0/0x0后分频器控制

注:当你设置MPLL和UPLL值的时候,需要先设置UPLL再设置MPLL的值

PLLCONMDIVPDIVSDIV

PLL值选择表PLLVALUESELECTIONTABLE

一般较难找到一个合适的PLL值,因此推荐参考以下PLL推荐值表:

MDIV56(0x38)56(0x38)173(0xad)68(0x44)127(0x7f)125(0x7d)60(0x3c)60(0x3c)118(0x76)97(0x61)110(0x6e)86(0x56)118(0x76)

注:48MHz和96MHz输出是用于UPLL。输入频率12.0000MHz12.0000MHz12.0000MHz12.0000MHz12.0000MHz12.0000MHz12.0000MHz16.9344MHz16.9344MHz16.9344MHz16.9344MHz16.9344MHz16.9344MHz

输出频率48.00MHz注96.00MHz注271.50MHz304.00MHz405.00MHz532.00MHz47.98MHz注95.96MHz注266.72MHz296.35MHz399.65MHz530.61MHz533.43MHz

PDIV2221214421311SDIV2121112122111

7.3.3时钟控制寄存器

CLOCKCONTROLREGISTER(CLKCON)

寄存器CLKCON地址0x4C00000C读写R/W描述

时钟发生器控制寄存器复位值0xFFFFF0

S3C2440A中文Datasheet第七章时钟及电源管理模块联系信箱:admin@embeddedlinux.org.cnForum:http://www.embeddedlinux.org.cn/

CLKCONAC97CameraSPIIISIICADCRTCGPIOUART2UART1UART0SDIPWMTIMERUSBDeviceUSBHostLCDCNANDFlashControllerSLEEPIDLEBITReserved

位[20]

[19][18][17][16][15][14][13][12][11][10][9][8][7][6][5][4][3][2][1:0]描述

控制进入AC97模块的PCLK0:无效,1:有效

控制进入Camera模块的HCLK0:无效,1:有效

控制进入SPI模块的PCLK0:无效,1:有效

控制进入IIS模块的PCLK0:无效,1:有效

控制进入IIC模块的PCLK0:无效,1:有效

控制进入AC97模块的PCLK0:无效,1:有效

控制进入AC97模块的PCLK0:无效,1:有效

控制进入AC97模块的PCLK0:无效,1:有效

控制进入UART2模块的PCLK0:无效,1:有效

控制进入UART1模块的PCLK0:无效,1:有效

控制进入UART0模块的PCLK0:无效,1:有效

控制进入SDI模块的PCLK0:无效,1:有效

控制进入PWMTIMER模块的PCLK0:无效,1:有效

控制进入USBDevice模块的PCLK0:无效,1:有效

控制进入USBHost模块的HCLK0:无效,1:有效

控制进入LCDC模块的HCLK0:无效,1:有效

控制进入NANDFlashController模块的HCLK0:无效,1:有效

控制s3c2440的睡眠模式0:无效,1:进入睡眠模式进入空闲模式

0:无效,1:进入空闲模式保留

初始值11111111111111111

000

S3C2440A中文Datasheet第七章时钟及电源管理模块联系信箱:admin@embeddedlinux.org.cnForum:http://www.embeddedlinux.org.cn/

7.3.4时钟减慢控制寄存器

CLOCKSLOWCONTROLREGISTER(CLKSLOW)

寄存器CLKSLOW地址0x4C000010读写R/W描述

减慢时钟控制寄存器复位值0x00000004

CLKSLOWUCLK_ON保留

MPLL_OFF

位[7]

[6][5]

SLOW_BIT[4]

保留

SLOW_VAL[3][2:0]

描述

0:UCLKON(UPLL被打开并且自动插入UPLL锁定时间.)1:UCLKOFF(UPLL也被关闭.)保留

0:TurnonPLL.

在PLL稳定时间(至少300us)后,SLOW_BIT位可以被清零1:TurnoffPLL.

仅当SLOW_BIT是1,PLL才被关闭0:FCLK=Mpll(MPLLoutput)1:SLOW模式

-FCLK=inputclock/(2xSLOW_VAL),当SLOW_VAL>0-FCLK=inputclock,当SLOW_VAL=0.-Inputclock=XTIpllorEXTCLK保留

当SLOW_BIT位开启,该位表示减慢时钟的分频器值

初始值0

-0

0

-0x4

7.3.5时钟分频器控制寄存器

CLOCKDIVIDERCONTROLREGISTER(CLKDIVN)

寄存器CLKDIVN地址0x4C000014读写R/W描述

时钟分频器控制寄存器复位值0x00000000

CLKDIVNDIVN_UPLL位[3]

HDIVN[2:1]

PDIVN[0]

描述

UCLK选择寄存器(UCLK必须对USB提供48MHz)0:UCLK=UPLLclock1:UCLK=UPLLclock/2

设置为0,当UPLL时钟被设置为48Mhz。设置为1,当UPLL时钟被设置为96Mhz。00:HCLK=FCLK/1.01:HCLK=FCLK/2.

10:HCLK=FCLK/4,当CAMDIVN[9]=0.

HCLK=FCLK/8,当CAMDIVN[9]=1.11:HCLK=FCLK/3,当CAMDIVN[8]=0.

HCLK=FCLK/6,当CAMDIVN[8]=1.0:PCLK是和HCLK/1相同的时钟。1:PCLK是和HCLK/2相同的时钟。

初始值0

00

0

S3C2440A中文Datasheet第七章时钟及电源管理模块联系信箱:admin@embeddedlinux.org.cnForum:http://www.embeddedlinux.org.cn/

7.3.6摄像头时钟分频器寄存器

CAMERACLOCKDIVIDERREGISTER(CAMDIVN)

寄存器CAMDIVN地址0x4C000018读写R/W描述

摄像头时钟分频器寄存器复位值0x00000000

CAMDIVNDIVN_UPLL保留

保留

HCLK4_HALF

位[12]

[11][10][9]

描述

0:DVSOFF(FCLK=MPLLclock)1:DVSON(FCLK=HCLK)保留

保留

HDIVN分频比率改变位,当CLKDIVN[2:1]=10b.0:HCLK=FCLK/41:HCLK=FCLK/8参考CLKDIV寄存器

HDIVN分频比率改变位,当CLKDIVN[2:1]=11b.0:HCLK=FCLK/31:HCLK=FCLK/6

参考CLKDIV寄存器

0:用UPLLoutput作为CAMCLK(CAMCLK=UPLLoutput).1:CAMCLK用CAMCLK_DIV的值分频.CAMCLK分频参数设置寄存器(0-15).

Cameraclock=UPLL/[(CAMCLK_DIV+1)x2].这个位有效,当CAMCLK_SEL=1.

初始值0

000

HCLK3_HALF[8]0

CAMCLK_SELCAMCLK_DIV

[4][3:0]

00

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuowenda.com 版权所有 湘ICP备2023022495号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务