ARM9 S3C2410时钟和功率管理.docx

上传人:b****1 文档编号:2339317 上传时间:2022-10-28 格式:DOCX 页数:16 大小:728.75KB
下载 相关 举报
ARM9 S3C2410时钟和功率管理.docx_第1页
第1页 / 共16页
ARM9 S3C2410时钟和功率管理.docx_第2页
第2页 / 共16页
ARM9 S3C2410时钟和功率管理.docx_第3页
第3页 / 共16页
ARM9 S3C2410时钟和功率管理.docx_第4页
第4页 / 共16页
ARM9 S3C2410时钟和功率管理.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

ARM9 S3C2410时钟和功率管理.docx

《ARM9 S3C2410时钟和功率管理.docx》由会员分享,可在线阅读,更多相关《ARM9 S3C2410时钟和功率管理.docx(16页珍藏版)》请在冰豆网上搜索。

ARM9 S3C2410时钟和功率管理.docx

ARM9S3C2410时钟和功率管理

第七章时钟和功率管理

概述

时钟和功率管理模块由三部分组成:

时钟控制,USB控制和功率控制。

S3C2410A的时钟控制逻辑能够产生系统所需要的时钟,包括CPU的FCLK,AHB总线接口的HCLK,和APB总线接口的PCLK。

S3C2410A有两个PLL,一个用于FCLK,HCLK,PCLK,另一个用于USB模块(48MHZ)。

时钟控制逻辑能够由软件控制不将PLL连接到各接口模块以降低处理器时钟频率,从而降低功耗。

S3C2410A有各种针对不同任务提供的最佳功率管理策略,功率管理模块能够使系统工作在如下4种模式:

正常模式,低速模式,空闲模式和掉电模式。

正常模式:

功率管理模块向CPU和所有外设提供时钟。

这种模式下,当所有外设都开启时,系统功耗将达到最大。

用户可以通过软件控制各种外设的开关。

例如,如果不需要定时器,用户可以将定时器时钟断开以降低功耗。

低速模式:

没有PLL的模式。

与正常模式不同,低速模式直接使用外部时钟(XTIpll或者EXTCLK)作为FCLK,这种模式下,功耗仅由外部时钟决定。

空闲模式:

功率管理模块仅关掉FCLK,而继续提供时钟给其他外设。

空闲模式可以减少由于CPU核心产生的功耗。

任何中断请求都可以将CPU从中断模式唤醒。

掉电模式:

功率管理模块断开部电源。

因此CPU和除唤醒逻辑单元以外的外设都不会产生功耗。

要执行掉电模式需要有两个独立的电源,其中一个给唤醒逻辑单元供电,另一个给包括CPU在的其他模块供电。

在掉电模式下,第二个电源将被关掉。

掉电模式可以由外部中断EINT[15:

0]或RTC唤醒。

功能描述

时钟结构

图7-1描述了时钟架构的方块图。

主时钟源由一个外部晶振或者外部时钟产生。

时钟发生器包括连接到一个外部晶振的振荡器和两个PLL(MPLL和UPLL)用于产生系统所需的高频时钟。

时钟源选择

表7-1描述了模式控制引脚(OM3和OM2)和选择时钟源之间的对应关系。

OM[3:

2]的状态由OM3和OM2引脚的状态在nRESET的上升沿锁存得到。

注意:

1、尽管MPLL在系统复位的时候就开始产生,但是只有有效的设置号MPLLCON寄存器后才能用于系统时钟。

在此之前,外部时钟将直接作为系统时钟。

即使不需要改变MPLLCON寄存器的初值,也必须将同样的值写入寄存器。

2、当OM[1:

0]为11时,OM[3:

2]用于决定一种测试模式。

锁相环PLL

位于时钟信号发生器的部MPLL用于将输出信号和相关输入信号在相位和频率上同步起来。

它包括如图7-2所示的一些基本模块:

根据DC电压产生相应比例关系频率的压控振荡器(VCO),除数P(对输入频率Fin进行P分频),除数M(对VCO的输出频率进行M分频,分频后输入到相位频率探测器PFD),除数S(对MPLL输出频率Mpll进行分频),相差探测器,chargepump,loopfilter。

MPLL的时钟输出Mpll和输入时钟Fin的关系如下式所示:

UPLL和MPLL是完全一样的。

下面的部分描述了MPLL的操作,包括相差探测器,chargepump,VCO,loopfilter。

相位频率探测器PFD

当PFD检测Fref和Fvco之间的相差时产生一个控制信号。

Fref如图7-2所示。

Chargepump

Chargepump通过一个外部过滤器将PFD的控制信号转换成一个比例的电压关系来驱动VCO。

LoopFilter

PFD产生的控制信号可能在每一次Fref和Fvco比较的时候产生很大的偏差,为了防止VCO过载,一个低通滤波器将过滤掉控制信号的高频成分。

滤波器就是常用的一节RC滤波器。

压控振荡器VCO

Loopfilter输出的电压驱动VCO,导致它的晶振频率根据平均电压线性地增加或降低。

当Fref和Fvco的频率和相位都匹配时,PFD停止发送控制信号给chargepump,然后VCO频率保持不变,并且PLL保持固定于系统时钟。

PLL和时钟发射器的通用条件

PLL和时钟发生器通常使用如下条件

注:

1、值是可变的。

2、FCLK必须大于X-tal或EXTCLK的3倍。

时钟控制逻辑

时钟控制逻辑决定哪个时钟源被使用,例如MPLL或者外部时钟。

当PLL被配置到一个新的频率时,时钟控制逻辑将会停止FCLK直到PLL达到一个稳定的输出。

时钟控制逻辑在上电复位和从掉电模式唤醒的情况下也是有效的。

上电复位(XTIpll)

图7-4显示了上电复位时的时钟行为。

晶振在几毫秒开始振荡。

当OSC时钟稳定后,PLL根据默认PLL设置开始生效,但是通常这个时候是不稳定的,因此在软件重新配置PLLCON寄存器之前FCLK直接使用Fin而不是MPLL,即使用户不希望改变PLLCON的默认值,用户也应该执行一边写PLLCON操作。

FCLK在软件配置好PLLCON之后锁定一段时间后连接到Mpll。

正常情况下改变MPLL设置

正常模式下,用户可以通过写PMS的值来改变FCLK的频率,此时将会自动插入一段时间延迟,在这段延迟FCLK将停止,其时序如图7-5。

图7-5

USB时钟控制

USB主机接口和USB设备接口需要48MHz的时钟。

在S3C2410中,是通过UPLL来产生这一时钟的,UCLK只有在UPLL配置好后才会生效。

FCLK,HCLK和PCLK

FCLK用于ARM920T.

HCLK用于AHB总线。

包括ARM920T,存储控制器,中断控制器,LCD控制器,DMA和USB主机。

PCLK用于APB总线。

包括外设如WDT,IIS,I2C,PWM,PWMTIMER,MMC,ADC,UART,GPIO,RTC,SPI。

S3C2410支持三者之间的比率可选,这个比率是由CLKDIVN寄存器的HDIVN和PDIVN决定的。

设置好PMS的值后,需要设置CLKDIVN寄存器。

CLKDIVN寄存器的值将在PLL锁定时间之后生效,在复位和改变功率模式后也是有效的。

注意:

1、HCLK和PCLK不应该超过某一限制

2、如果HDIVN=1,CPU总线模式将通过一下指令从快速模式切换到异步模式:

MMU_SetAsyncBusMode

mrcp15,0,r0,c1,c0,0

orrr0,r0,#R1_nF:

OR:

R1_iA

mcrp15,0,r0,c1,c0,0

如果HDIVN=1并且CPU总线模式是快速模式,CPU将以HCLK进行运行,这一特性可以用于将CPU频率减半而不影响HCLK和PCLK。

功率管理

在S3C2410中,功率功率模块通过软件控制系统时钟来达到降低功耗的目的。

这些策略牵涉到PLL,时钟控制逻辑和唤醒信号。

图7-7显示了S3C2410的时钟分配。

S3C2410有4种功耗模式。

各种模式之间的转换并不是完全自由的,图7-8描述了各种模式之间的转换关系。

正常模式

正常模式下,所有的外设和基本的功能模块,包括功率管理模块,CPU核心,总线控制器,存储控制器,中断控制器,DMA和外部控制器都可以完全操作。

但是除了基本的模块之外,其他模块都可以通过关闭其时钟的方法来降低功耗。

 

空闲模式

空闲模式下,除了总线控制器、存储控制器、中断控制器、功率管理模块以外的CPU时钟都被停止。

EINT[23:

0]、RTC中断或者其他中断都可以将CPU从空闲模式下唤醒。

低速模式

低速模式通过降低FCLK和关闭PLL来实现降低功耗。

此时FCLK是外部时钟(XTIpllorEXTCLK)的n分频。

分频数由CLKSLOW寄存器的SLOW_VAL和CLKDIVN寄存器决定。

在低速模式下,PLL是关闭的。

当用户需要从低速模式切换到正常模式时,PLL需要一个时钟稳定时间(PLL锁定时间)。

PLL稳定时间是由部逻辑自动插入的,大概需要150us,在这段时间,FCLK还是使用低速模式下的时钟。

用户可以在PLL开的情况下通过改变CLKSLOW寄存器的SLOW_BIT位使能低速模式来改变频率。

在低速模式下,FCLK为外部时钟的分频。

如图7-9.

如果在PLL锁定时间之后切换到正常模式,FCLK将会在低速模式一失效就改变,如图7-10.

如果低速模式失效和PLL同时打开,则需要等待PLL锁定后FCLK才会改变,锁定期间FLCK停止。

如图7-11.

掉电模式

功率管理模块断开部电源。

因此CPU和除唤醒逻辑单元以外的外设都不会产生功耗。

要执行掉电模式需要有两个独立的电源,其中一个给唤醒逻辑单元供电,另一个给包括CPU在的其他模块供电。

在掉电模式下,第二个电源将被关掉。

掉电模式可以由外部中断EINT[15:

0]或RTC中断。

进入掉电模式的过程

1、设置GPIO配置

2、在INTMSK寄存器中屏蔽所有中断。

3、配置适当的唤醒源,包括RTC报警。

为了是SRCPND和EINTPEND位置位,唤醒源相关的EINTMASK位不必被屏蔽,尽管一个唤醒源被指定而且EINTMASK相关位被屏蔽,唤醒还是会发生,SRCPND和EINTPEND位也不会置位。

4、设置USB为中止模式。

(MISCCR[13:

12]=11b)

5、将一些有用的值存入GSTATUS3,4,这些寄存器在掉电模式下是被保持的。

6、通过MISCCR[1:

0]将数据总线D[31:

0]的上拉电阻配置成开。

如果有外部总线保持器,如74LVCH162245,关掉上拉电阻,否则打开上拉电阻。

7、通过清除LCDCON1.ENVID位停止LCD。

8、读取rREFRESH和rCLKCON寄存器,并填入TLB。

9、通过设置REFRESH[22]=1b使SDRAM进入自动刷新模式。

10、等待SDRAM自动刷新生效。

11、通过设置MISCCR[19:

17]=111B使SDRAM信号在掉电模式期间被保护起来(SCLK0,SCLK1,SCKE)。

12、置位CLKCON寄存器的掉电模式位。

从掉电模式唤醒的过程

1、某个唤醒源生效将产生一个部复位信号。

复位时间由一个部16位计数器决定,此计数器的时钟是tRST=(65535/XTAL_frequency)。

2、查询GSTATUS[2]位看从掉电模式唤醒是否产生了一个POWER-UP。

3、通过将MISCCR[19:

17]设置为000b,释放SDRAM信号保护。

4、配置SDRAM控制器。

5、等待SDRAM自我刷新完毕。

大部分SDRAM需要refreshcycleofallSDRAMrow。

6、GSTATUS3,4的信息可以被用户使用,因为GSTATUS3,4的值已经在掉电模式下被保存了。

7、对于EINT[3:

0],检查SRCPND寄存器;对于EINT[15:

4],检查EINTPND寄存器;对于RTC报警唤醒,检查RTC时间,因为在唤醒时SRCPND寄存器的RTC位不被置位;如果在掉电模式期间有nBATT-FLTassertion,SRCPND寄存器的相关位被置位。

掉电模式的引脚状态

VDDi和VDDiarm功率控制

掉电模式下,只有VDDi和VDDiarm被关闭,这由PWREN引脚控制。

如果PWREN信号有效(H),VDDi和VDDiarm由外部电压供电;如果PWREN信号无效(L),VDDi和VDDiarm关闭。

注:

除VDDi,VDDiarm,VDDi_MPLLandVDDi_UPLL外的所有电源必须继续供电。

唤醒信号EINT[15:

0]

只有如下条件下S3C2410才会被才掉电模式唤醒:

a)电平信号或者边沿信号出现在EINTn输入引脚且被确认。

b)EINTn输入引脚被配置成外部中断。

c)nBATT-FLT位为高电平。

一旦唤醒后,相应的EINTn引脚将不再用于唤醒,即此引脚又可以重新作为一个外部中断源使用。

进入空闲模式

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1