Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1258278
  • 博文数量: 548
  • 博客积分: 7597
  • 博客等级: 少将
  • 技术积分: 4224
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-15 13:21
个人简介

嵌入式软件工程师&&太极拳

文章分类

全部博文(548)

文章存档

2014年(10)

2013年(76)

2012年(175)

2011年(287)

分类: 嵌入式

2012-05-16 09:30:49

通过电源管理,可以按照要需打开或关闭相应设备电源,完成处理器工作模式的切换,可以按照需要设置系统内各种时钟频率的大小,灵活使用片内资源。

先看时钟的产生:

首先,9g20有时钟产生器有以下三部分组成,通过引脚连到芯片上:

一个慢时钟晶体振荡器,可产生32,768 Hz的频率。

一个慢时钟RC振荡器。

一个住振荡器。

这三个振荡器,在芯片内产生四大种时钟,

一,MCK(主时钟),它为所有的片内外围设备和存储器控制器提供时钟信号 ;对于片内外设,为了节省电能,用户可以选择性的关闭和打开其对应的时钟,因为每个外设时钟可控制。方法是通过寄存器PMC_PCERPMC_PCDR中的相关位。状态可已在PMC_PCSR中查到。当复位后,外设默认关闭。

二,PCK(处理器时钟),为处理器正常工作提供时钟信号,可通过寄存器(PMC_SCDR)关闭这个时钟,从而使处理器进入空闲模式(Idle.可被各种中断激活。PCKMCK的关系是,通过一个除法器,从MCK中产生了PCK

三,USB 源时钟,这个时钟是由PLLB输出产生的(它们之间的关系请看下图)。如果要用USB,用户必须对PLL进行编程,让其产生一个48MHZ96MHZ之间的频率。因为PLL的频率特别大。这个通过CKGR_PLLKB中的USBDIV位设置。

四,可编程时钟输出控制器PCKx.(芯片引脚两个信号,共外界用)

另外,处理器有几种工作模式,正常模式,空闲模式,慢时钟模式,睡眠模式。正常模式下,所有外设.ARM核电源都打开,耗电最大。空闲模式下,ARM核电源关闭,外设正常工作。慢时钟模式下,主震荡器和PLL都关闭,所有设备由外部慢时钟供电。睡眠模式,关掉所有电源,只唤醒电路在工作。

需要说明的一点事,PLL 的功能主要是成倍放大震荡器产生的频率。

AT91SAM9G20 时钟设置步骤:

1,激活主频发生器

CKGR_MOR寄存器里面的MOSCEN,是主频发生器能用。在OSCOUNT 里可以设置启动时间。一旦这个被设置,则必须等待PMC_RG里的MOSCS被设置。

2,检查主频发生器频率

CLGR_MKFR里设读MAINF.

3. 设置PLLAPLLB

PLLA : CKGR_PLLAR,除法器的输出是其输入除于DIVA. 默认DIVA设成0,代表除法器不能用。OUTA选择PLLA输出频率的范围。MULAPLLA倍率。0代表关闭PLLA.否则,其输出等于输入频率乘以(MULA+1). PLLACOUNT指定慢时钟的循环次数。要在MPC_SRLOCKA设置之前,CKGR_PLLAB被写入之后。一旦CKGR_PLLA被写入,LOCKA位在六个慢时钟后被设置。

PLLB:A一样的。

4, 主时钟和处理器时钟

PMC_MCKR寄存器中配置,CSS被用来选择主频和处理器时钟源,分频器(Prescaler)的输出频率是时钟源除以PRES中的参数,如果PRES被设成1,主时钟和处理器时钟都是慢时钟。MDIV0,1,2,3)字段被用来控制主频除法器,主频的输出是主频和处理器分频器除以(1,2,4,6)。如果MADIVPDIV被设置成,表明处理器频率等于主频。一旦PMC_MCKR寄存器被写入,用户必须等待PMC_SRMCKRDY位被设置。

注意几个名词:

Master Clock, Processor Clock , Programmable clocks

下面介绍一下电源管理中各个寄存器的用法:

1, 系统时钟使能寄存器 PMC_SCER

可以设置处理器时钟PCK,  USB时钟,可编程时钟PCKx的禁止或使能。

2, 系统时钟状态寄存器 PMC_SCSR

可以查看各个时钟的状态,即是否被设置。

3, 外设时钟使能寄存器  PMC_PCER

禁止或使能各个外设的时钟,0是不影响,1是使能。其中对应的30位分别对应如下表:

   ARM9g20电源管理 - 杨柳 - liu_saiyu的博客

4, 外设时钟使禁止寄存器  PMC_PCDR

禁止各个外设的时钟,0是不影响,1是禁止。

5, 主震荡器使能寄存器  CKGR_MOR

可以设置三个参数,一,使能或禁止主震荡器,二,是否忽略主震荡器,三,主震荡器的启动时间,一般为慢时钟8倍个周期。

6, 主频发生器使能寄存器  CKGR_MCFR

设置主时钟的周期。

7,锁相环寄存器A   CKGR_PLLAR

一, 可以设置锁相环稳定之前的周期数(慢时钟);二,输出频率的范围,数据手册有

   数值;三,设置乘法因子和除法因子。

8, 锁相环寄存器B  CKGR_PLLBR

   和A一样,多了一个USBDIV

9,主时钟寄存器   PMC_MCKR

   可以设置这样几个参数:选择时钟,MDIV(主频因子), PDIV(处理器频率因子)。

10,可编程时钟  PMC_PCKx

   可编程时钟,从这个寄存器里面可以选择可编程时钟选择哪个时钟源。即CSS.

11电源中断禁止使能寄存器  PMC_IDR (与之对应的是PMC_IER)

     可以禁止掉主震荡器,锁相环等的中断功能。

12,电源管理状态寄存器 PMC_SR

    为只读寄存器,从中可以读出主震荡器,PLLAPLLB, MCKRDY等状态。

13,电源管理屏蔽寄存器 PMC_IMR

   分别可以屏蔽掉,主振荡器状态中断屏蔽功能,PLLAB)锁定中断屏蔽功能,主时钟准备中断屏蔽功能,和可编程时钟准备中断屏蔽功能。

14PMC_PLLICPR

    这个寄存器是为了优化时钟设置的,里面所设参数为固定值。看数据手册。

阅读(828) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~