ARM9 S3C2410时钟和功率管理.docx
- 文档编号:2339317
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:16
- 大小:728.75KB
ARM9 S3C2410时钟和功率管理.docx
《ARM9 S3C2410时钟和功率管理.docx》由会员分享,可在线阅读,更多相关《ARM9 S3C2410时钟和功率管理.docx(16页珍藏版)》请在冰豆网上搜索。
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引脚将不再用于唤醒,即此引脚又可以重新作为一个外部中断源使用。
进入空闲模式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM9 S3C2410时钟和功率管理 S3C2410 时钟 功率 管理