【知识点】AT91SAM9260的Power Management Controller (PMC)寄存器介绍

本文章参考ATMEL官方的《AT91SAM9260数据手册》

1.寄存器映射:

地址名字寄存器可进行操作复位后的值
0x0000PMC_SCER系统时钟使能寄存器只写
0x0004PMC_SCDR系统时钟禁用寄存器只写
0x0008PMC _SCSR系统时钟状态寄存器只读0x03
0x000C保留
0x0010PMC _PCER外设时钟使能寄存器只写
0x0014PMC_PCDR外设时钟禁用寄存器只写
0x0018PMC_PCSR外设时钟状态寄存器只读0x00
0x001C保留
0x0020CKGR_MOR主振荡器寄存器读写0x00
0x0024CKGR_MCFR主时钟频率寄存器只读0x00
0x0028CKGR_PLLAR锁相环A寄存器读写0x3F00
0x002CCKGR_PLLBR锁相环B寄存器读写0x3F00
0x0030PMC_MCKR主时钟寄存器读写0x00
0x0038保留
0x003C保留
0x0040PMC_PCK0可编程时钟0寄存器读写0x00
0x0044PMC_PCK1可编程时钟1寄存器读写0x00
0x0060PMC_IER中断使能寄存器只写
0x0064PMC_IDR中断禁用寄存器只写
0x0068PMC_SR状态寄存器只读0x08
0x006CPMC_IMR中断屏蔽寄存器只读0x00
0x0070-0x007C保留
0x0080PMC_PLLICPRPLL Charge Pump Current Register读写
0x0084-0x00FC保留

上表中:PLL Charge Pump Current Register 我不太确定怎么翻译更好一点,所以使用了英文原文。如果你有更好的翻译欢迎在评论区指出。

2.寄存器的详细介绍

2.1 PMC_SCER (系统时钟启用寄存器)

scer
UHP[6]:USB主机端口时钟使能
0:无效。
1:启用USB主机端口的12和48 MHz时钟。

•UDP[7]:USB设备端口时钟使能
0:无效。
1:启用USB设备端口的48 MHz时钟。

•PCKx:可编程时钟x输出启用
0:无效。
1:启用相应的可编程时钟输出。
其中:PCK1:[9] PCK0:[8]

2.2 PMC_SCDR(系统时钟禁用寄存器)

scdr
•PCK[0]:处理器时钟禁用
0:无效。
1:禁用处理器时钟。这用于在空闲模式下进入处理器。

•UHP[6]:USB主机端口时钟禁用
0:无效。
1:禁用USB主机端口的12和48 MHz时钟。

•UDP[7]:USB设备端口时钟禁用
0:无效。
1:禁用USB设备端口的48 MHz时钟。

•PCKx:可编程时钟x输出禁用
0:无效。
1:禁用相应的可编程时钟输出。
其中:PCK1:[9] PCK0:[8]

2.3 PMC_SCSR(系统时钟状态寄存器)

scsr
•PCK[0]:处理器时钟状态
0:处理器时钟已禁用。
1:处理器时钟已启用。

•UHP[6]:USB主机端口时钟状态
0:USB主机端口的12和48 MHz时钟(UHPCK)已禁用。
1:USB主机端口的12和48 MHz时钟(UHPCK)已启用。

•UDP[7]:USB设备端口时钟状态
0:USB设备端口的48 MHz时钟(UDPCK)已禁用。
1:USB设备端口的48 MHz时钟(UDPCK)已启用。

•PCKx:可编程时钟x输出状态
0:相应的可编程时钟输出被禁用。
1:启用相应的可编程时钟输出。
其中:PCK1:[9] PCK0:[8]。

2.4 PMC_PCER(外设时钟使能寄存器)

pcer
•PIDx:外设x时钟启用
0:无效。
1:启用相应的外围时钟。
具体的外设ID的对应请参考:AT91SAM9260的外设ID

2.5 PMC_PCDR(外设时钟禁用寄存器)

pcdr
•PIDx:外设x时钟禁用
0:无效。
1:启用相应的外围时钟。
具体的外设ID的对应请参考:AT91SAM9260的外设ID

2.6 PMC_PCSR(外设时钟状态寄存器)

pcsr
•PIDx:外设x时钟状态
0:相应的外围时钟已禁用。
1:相应的外围时钟已启用。
具体的外设ID的对应请参考:AT91SAM9260的外设ID

2.7 CKGR_MOR(时钟发生器主振荡器寄存器)

mor
•MOSCEN[0]:主振荡器使能
(XIN和XOUT之间必须连接一个晶体)
0:主振荡器被禁用。
1:主振荡器已启用。此时必须将OSCBYPASS设置为0。
当设置MOSCEN时,一旦达到主振荡器启动时间,就会设置MOSCS标志。

• OSCBYPASS[1]:振荡器旁路
0:无影响。
1:主振荡器被旁路。MOSCEN必须设置为0。XIN上必须连接外部时钟。
当设置OSCPAYPASS时,PMC_SR中的MOSCS标志将自动设置。
清除MOSCEN和OSCCBYPASS位允许重置MOSCS标志。

•OSCOUNT[8-15]:主振荡器启动时间
指定主振荡器启动时间的慢时钟周期数乘以8。

2.8 CKGR_MCFR(时钟发生器主时钟频率寄存器)

mcfr
•MAINF[0-15]:主时钟频率
给出16个慢时钟周期内的主时钟周期数。

•MAINRDY[16]:主时钟就绪
0:MAINF值无效或主振荡器被禁用。
1:主振荡器先前已启用,且MAINTF值可用。

2.9 CKGR_PLLAR(时钟发生器_锁相环A寄存器)

pllar
在使用PMC之前,应检查PLL A输入频率和倍增系数的可能限制。
警告:编程CKGR_PLLAR时,位29必须始终设置为1。

• DIVA[0-7]:分频器 A
0:分频器输出为0 。
1:不使用分频器。
2–255:分频器输出为主时钟除以该数值。

•PLLACOUNT[8-13]:PLL A计数器
指定写入CKGR_PLLAR后,在PMC_SR中设置LOCKA位之前的慢时钟周期数。

•OUTA[14-15]:PLL时钟频率范围
为优化时钟性能,必须按照第39.6.7节“PLL特性”的规定对该字段进行编程。如下图。
ppla
•MULA[16-26]:PLL A乘法器
0:PLL A停用。
1-2047:PLL A时钟频率是PLL A输入频率乘以(MULA+1)。

2.10 CKGR_PLLBR(时钟发生器_锁相环B寄存器)

PPLB
在使用PMC之前,应检查PLL B输入频率和倍增系数的可能限制。

• DIVB[0-7]:分频器 B
0:分频器输出为0 。
1:不使用分频器。
2–255:分频器输出为主时钟除以该数值。

•PLLBCOUNT[8-13]:PLL B计数器
指定写入CKGR_PLLAR后,在PMC_SR中设置LOCKA位之前的慢时钟周期数。

•OUTB[14-15]:PLL时钟频率范围
为优化时钟性能,必须按照第39.6.7节“PLL特性”的规定对该字段进行编程。如下图。
pplb
•MULB[16-26]:PLL B乘法器
0:PLL B停用。
1-2047:PLL B时钟频率是PLL A输入频率乘以(MULB+1)。

•USBDIV[28-29]:用于USB时钟的分频器
0 0:分频器输出为PLL B时钟输出。
0 1:分频器输出是PLL B时钟输出除以2。
1 0:分频器输出是PLL B时钟输出除以4。
1 1:保留。

2.11 PMC_MCKR(主时钟寄存器)

mckr
•CSS[0-1]:主时钟选择
0 0:慢时钟。
0 1:主时钟。
1 0: PLL A时钟。
1 1: PLL B时钟。

•PRES[2-4]:处理器时钟预分频器
0 0 0:选定时钟 。
0 0 1:选定时钟除以2 。
0 1 0:选定时钟除以4 。
0 1 1:选定时钟除以8 。
1 0 0:选定时钟除以16 。
1 0 1:选定时钟除以32 。
1 0 0:选定时钟除以64 。
1 1 1:保留。

•MDIV[8-9]:主时钟分频
0 0:主时钟是处理器时钟。
0 1:主时钟是处理器时钟除以2。
1 0:主时钟是处理器时钟除以4。
1 1:保留。

2.12 PMC_PCKx(可编程时钟寄存器)

pck
•CSS[0-1]:主时钟选择
0 0:慢时钟。
0 1:主时钟。
1 0: PLL A时钟。
1 1: PLL B时钟。

•PRES[2-4]:处理器时钟预分频器
0 0 0:选定时钟 。
0 0 1:选定时钟除以2 。
0 1 0:选定时钟除以4 。
0 1 1:选定时钟除以8 。
1 0 0:选定时钟除以16 。
1 0 1:选定时钟除以32 。
1 0 0:选定时钟除以64 。
1 1 1:保留。

2.13 PMC_IER(中断使能寄存器)

ier
•MOSCS[0]:主振荡器状态中断启用
0:无效。
1:启用中断。

•LOCKA[1]:PLL A锁定中断启用
0:无效。
1:启用中断。

•LOCKB[2]:PLL B锁定中断启用
0:无效。
1:启用中断。

•MCKRDY[3]:主时钟就绪中断启用
0:无效。
1:启用中断。

•PCKRDY0[8]:可编程时钟就绪0中断启用
0:无效。
1:启用中断。

•PCKRDY1[9]:可编程时钟就绪1中断启用
0:无效。
1:启用中断。

2.14 PMC_IDR(中断禁用寄存器)

idr
•MOSCS[0]:主振荡器状态中断禁用
0:无效。
1:禁用中断。

•LOCKA[1]:PLL A锁定中断禁用
0:无效。
1:禁用中断。

•LOCKB[2]:PLL B锁定中断禁用
0:无效。
1:禁用中断。

•MCKRDY[3]:主时钟就绪中断禁用
0:无效。
1:禁用中断。

•PCKRDY0[8]:可编程时钟就绪0中断禁用
0:无效。
1:禁用中断。

•PCKRDY1[9]:可编程时钟就绪1中断禁用
0:无效。
1:禁用中断。

2.15 PMC_SR(状态寄存器)

sr
•MOSCS[0]:MOSCS标志状态
0:主振荡器不稳定。
1:主振荡器稳定。

•LOCKA[1]:PLL A锁定状态
0:PLL A未锁定
1:PLL A锁定。

•LOCKB[2]:PLL B锁定状态
0:PLL B未锁定。
1:PLL B已锁定。

•MCKRDY[3]:主时钟状态
0:主时钟未就绪。
1:主时钟已就绪。

•OSC_SEL[7]:慢时钟振荡器选择
0:内部慢时钟RC振荡器。
1:外部慢时钟32 kHz振荡器。

•PCKRDY0[8]:可编程时钟0就绪状态
0:可编程时钟0未就绪。
1:可编程时钟0已就绪。

•PCKRDY1[9]:可编程时钟1就绪状态
0:可编程时钟1未就绪。
1:可编程时钟1已就绪。

2.16 PMC_IMR(中断屏蔽寄存器)

imr
•MOSCS[0]:主振荡器状态中断屏蔽
0:中断已启用。
1:中断被禁用。

•LOCKA[1]:PLL A锁定中断屏蔽
0:中断已启用。
1:中断被禁用。

•LOCKB[2]:PLL B锁定中断屏蔽
0:中断已启用。
1:中断被禁用。

•MCKRDY[3]:主时钟就绪中断屏蔽
0:中断已启用。
1:中断被禁用。

•PCKRDY0[8]:可编程时钟就绪0中断屏蔽
0:中断已启用。
1:中断被禁用。

•PCKRDY1[9]:可编程时钟就绪1中断屏蔽
0:中断已启用。
1:中断被禁用。

2.17 PMC_PLLICPR (PLL Charge Pump Current Register)

PLL
•ICPPLLA[0]:必须设置为1。
•ICPPLLB[16]:必须设置为1。

欢迎大家点赞、关注、收藏,不定时更新各种的知识点哦!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值