您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > S3C2410-第七章 时钟及电源管理模块
S3C2440A中文Datasheet联系信箱:admin@embeddedlinux.org.cn第七章时钟及电源管理模块Forum:第七章时钟及电源管理模块时钟电源管理模块包含了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.cn第七章时钟及电源管理模块Forum:时钟源的选择如表7-1所示模式选择引脚(OM2&OM3)组合之间的关系以及为2440选择时钟源,在nRESET上升沿,通过参考引脚OM3和OM2,OM[3:2]的状态被锁存。注意1、虽然MPLL在reset以后就开始工作,但是MPLL输出(Mpll)没有作为系统时钟来使用,直到软件对MPLLCON寄存器写入有效设置。有效设置前,来自外部晶振或外部时钟源的时钟将直接被当作系统时钟来使用。就算是用户不想改变MPLLCON寄存器的默认值,用户应该再重新写入MPLLCON寄存器一次相同的值。2、当OM[1:0]=11时,OM[3:2]被用于决定test模式。ModeOM[3:2]MPLLStateUPLLStateMainClocksourceUSBClockSource00OnOnCrystalCrystal01OnOnCrystalEXTCLK10OnOnEXTCLKCrystal11OnOnEXTCLKEXTCLKS3C2440A中文Datasheet联系信箱:admin@embeddedlinux.org.cn第七章时钟及电源管理模块Forum:锁相环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环路滤波器LoopfilterPFD为电荷泵生成的控制信号,通过每次Fvco与Fref比较,可能产生很大的偏移(纹波)。因此为了避免VCO过载,低通滤波采样以及滤除控制信号的高频分量。滤波器采用由一个电阻和电容组成的典型单极RC滤波器。7.1.3.4电压控制振荡器VoltageControlledOscillator(VCO)VCO驱动的环路滤波器的输出电压,引起其振荡频率按均值变化线性的增加或减少。当Fref和Fvco在频率和相位上匹配,PFD停止发送控制信号到电荷泵,其依次稳定给环路滤波器S3C2440A中文Datasheet联系信箱:admin@embeddedlinux.org.cn第七章时钟及电源管理模块Forum:的输入电压。VCO频率保持稳定,PLL保持固定为系统时钟。7.1.4通用条件和时钟发生器PLL&时钟发生器需要如下硬件满足:注: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所示的时序图。LoopfiltercapacitanceCLFMPLLCAP:1.3nF±5%UPLLCAP:700pF±5%ExternalX-talfrequency-12–20MHz(note)ExternalcapacitanceusedforX-talCEXT15–22pFS3C2440A中文Datasheet联系信箱:admin@embeddedlinux.org.cn第七章时钟及电源管理模块Forum:时钟控制USB主接口和USB从接口都需要48Mhz的时钟。在S3C2440A内,USB知明需要PLL(upll)产生48Mhz的时钟给USB,UCLK直到PLL(UPLL)被配置才可以提供。7.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位确定。在设置PMS3个值后,需要设置CLKDIVN寄存器的值。CLKDIVN的值设置在PLL锁定期后有效。这个值也对复位和改变电源管理模式也是可用的。设置值在1.5HCLK后有效,1个HCLK可以CLKDIVN寄存器的值从默认(1:1:1)到其他分频比(1:1:2,1:2:2,1:2:4)改变有效。ConditionUCLKStateUPLLStateAfterresetXTlpllorEXTCLKOnAfterUPLLconfigurationL:duringPLLlocktime48MHz:afterPLLlocktimeOnUPLListurnedoffbyCLKSLOWregisterXTlpllorEXTCLKOffUPLListurnedonbyCLKSLOWregister48MHzOnHDIVNPDIVNHCLK3_HALF/HCLK4_HALFFLCKHCLKPCLK分频比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:16S3C2440A中文Datasheet联系信箱:admin@embeddedlinux.org.cn第七章时钟及电源管理模块Forum:注意1、CLKDIVN的值需要小心设置,不能超过HCLK,PCLK的极限值。2、如果HDIVN不为0,根据如下指令,CPU总线模式从FastBusMode变为Asynchronous(异步总线模式)MMU_setAsyncBusModemrcp15,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@em
本文标题:S3C2410-第七章 时钟及电源管理模块
链接地址:https://www.777doc.com/doc-439391 .html