ARM 3 系统控制模块
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.4.1 系统控制模块功能汇总
名称 描述 存储器映射控制 访问 R/W
在系统控制模块中,有些部 件需要在进行寄存器配臵后才能 正常工作,如存储器映射控制、 锁相环、功率控制、VPB分频器。
存储器映射控制
MEMMAP 锁相环
PLLCON
PLLCFG PLLSTAT PLLFEED
PLL控制寄存器
PLL配臵寄存器 PLL状态寄存器 PLL馈送寄存器 功率控制寄存器 外设功率控制 VPB分频器控制
RO
0xE01FC08C
WO
• 寄存器描述
PLL状态寄存器(PLLSTAT): PLL PLL 配臵寄存器 控制寄存器 控制位组合: (PLLCFG) (PLLCON) : : MSEL[4:0]、PSEL[1:0]、PLLE、PLLC:读出反映这几个参数的设臵值,
PLLC PLLE PLL功能 (M-1); 写入无效; PLLE MSEL[4:0] : PLL使能,该位为 :PLL 倍频器值,在 1时将激活 PLL频率计算中其值为 PLL并允许其锁定到指定的频率; 0 连接,当 0 PLOCK PLL 的锁定状态。为 0时, PLL 未锁定;为 PLL锁定到 PLLC ::反映 PLL PLLEPLL 为1被关闭,并断开连接。 ,并且在 PLL 锁定后,该位为 1,将把 PLL PSEL[1:0] :PLL 分频器值,在 PLL频率计算中其值为 P。 1时, 指定频率。 作为时钟源连接到 0 1CPU,否则直接使用振荡器时钟。 PLL被激活但是尚未连接。可以在PLOCK置位后连接。 1 状态寄存器 控制寄存器 PLLSTAT PLLCON PLLCFG 1
PLLCON.PLLE
FOSC
相位频率 检测
PLLCFG.PSEL[CLK
PLLCON.PLLC
M分频
PLLCFG.MSEL[4:0]
PLL
• 寄存器描述
PLL馈送寄存器(PLLFEED):
PLLFEED[7:0]:PLL馈送序列必须写入该寄存器才能使PLL配臵和控 制寄存器的更改生效。 馈送序列分两步进行,如下所示: step1. 将值0xAA写入PLLFEED step2. 将值0x55写入PLLFEED
部件名称 引脚名称 晶体振荡器 功能简介 引脚方向 引脚描述 通过外接晶振或时钟源为系统提供时钟信号 晶振输入 振荡器和内部时钟发生器电路的输入,使用外部 输入 复位 X1 复位使ARM内核与外设部件进入一个确定的初始状态 时钟源时,该引脚为时钟输入。 存储器映射控制 控制异常向量表的重新设方式 X2 输出 晶振输出 振荡器放大器的输出。
R/W
R/W RO WO R/W R/W R/W
功率控制
PCON PCONP VPB分频器 VPBDIV
4.4 系统控制模块
• 1.系统控制模块 功能汇总 • 2.系统时钟概述 • 3.时钟部件 -晶体振荡器 • 4.复位 • 5.时钟部件 -唤醒定时器
• 6.时钟部件 -PLL(锁相环) • 7.时钟部件 -VPB分频器 • 8.存储器映射控 制 • 9.功率控制
fOSC
1
产生稳定的 时钟信号
晶体 振荡器
FOSC
3
将Fosc提升到 合适的频率
ON/OFF
PLL
4
FCCLK
CPU内核
外接晶体或 外接时钟源
2
唤醒 定时器
VPB 分频器
FPCLK
芯片外设
4.4.6 时钟部件-PLL(锁相环)
• 概述
LPC2000系列芯片内部均具有PLL电路,振荡器产生 的时钟Fosc通过PLL升频,可以获得更高的系统时钟 (Fcclk)。
4.4.6 时钟部件-PLL(锁相环)
• PLL频率计算
Fcco/(2×p)信号经过“M分频”部件,得到Fcco/ Fosc 为晶体振荡器的输出频率,即 PLL的输入频率 Fcclk Fcco 为 经过“ 为PLL PLL电流控制振荡器的输出频率 最终的输出频率 2P分频”部件后得到 (也是处理器的时钟频率 Fcco/(2 ×p)的频率 ) PLL 锁定后相位频率检测的两输入端信号的频率相等 (2×p×M)的频率
4.4.2 时钟系统
• 时钟系统结构
LPC2000系列微控制器的时钟系统包括四个部分: 晶体振荡器、唤醒定时器、锁相环(PLL)和VPB分频器。 2 用于把 3 4 在复位或处理器从掉电模式被唤醒时,为输入的时 把 Fosc信号提高到一个符合用户需要的频率 Fcclk信号降低到一个合适的Fpclk值(也可以 (Fcclk) 1 为系统提供基本的时钟信号(Fosc) 。 钟信号做计数延时,使芯片内部部件有时间进行初始化。 其中 不降低),该信号用于外设部件 Fcclk用于CPU内核。 。
• PLL设置举例
PLL配臵过程:
• 6.时钟部件 -PLL(锁相环) • 7.时钟部件 -VPB分频器 • 8.存储器映射控 制 • 9.功率控制
4.4.1 系统控制模块功能汇总
• 概述
一个 ARM芯片中通常有很多功能部件,有一些部件 在这些系统控制模块中,有些部件需要外部引脚的 是全局性的,它们状态的改变可能引起整个系统运行状 配合,如晶体振荡器、外部复位输入。 态的改变,这些部件我们统一称之为系统控制模块。
vpb分频器将内核时钟与外设时钟分开的部件功率控制使处理器空闲或者掉电还能关闭指定的功能部件以降低芯片功耗唤醒定时器系统上电或掉电唤醒后保证晶体振荡器能输出稳定的时钟信号引脚方向引脚描述x1外部复位输入该引脚上的低电平将使芯片复位使io口和名称描述访问存储器映射控制memmap存储器映射控制rw锁相环pllconpllconpll控制寄存器pll控制寄存器rwrw441系统控制模块功能汇总在系统控制模块中有些部件需要在进行寄存器配置后才能正常工作如存储器映射控制锁相环功率控制vpb分频器
4.4.2 时钟系统
• 概述
时钟是计算机系统的脉搏,处理器核在一拍接一拍 的时钟驱动下完成指令执行、状态变换等动作。 外设部件在时钟的驱动下进行着各种工作,比如串 口数据的收发、A/D转换、定时器计数等。 所以时钟对于一个计算机系统是至关重要的,通常 时钟系统出现问题也是最致命的,比如振荡器不起振、 振荡不稳、停振等。
0xE01FC088
PLL状态寄存器。PLL控制和配置信息的读回寄存器。如果曾 对PLLCON或PLLCFG执行了写操作,但没有产生PLL馈送序 PLLSTAT 列,这些值将不会反映PLL的当前状态。读取该寄存器提供 了控制PLL和PLL状态的真实值。 PLL馈送寄存器。该寄存器使能装载PLL控制和配置信息,该 PLLFEED 配置信息从PLLCON和PLLCFG寄存器装入实际影响PLL操作 的映像寄存器。
将FOSC提升到 10~60MHz
fOSC
晶体 振荡器
FOSC
PLL
FCCLK
CPU内核
输入范围 10~25MHz
VPB 分频器
FPCLK
芯片外设
• PLL内部结构框图
检测两路输入信号的相位 频率,并根据误差,输出 不同大小的电流信号 由输入电流 大小来控制 其振荡频率 调整P值,使 CCO振荡在规 定频率范围内 PLL连接开关,在 PLL锁定前,系统 使用Fosc时钟
输出频率(f)
CCO的输出频率在高低 起伏一段时间后渐渐稳 定在了预期的频率值
预期频率
输出频率稳定后即 “锁定”成功
锁定
时间(t)
4.4.6 时钟部件-PLL(锁相环)
• 寄存器描述
与PLL相关的寄存器有四个,其中三个为控制寄存器, 还有一个是状态寄存器。
地址 0xE01FC080 0xE01FC084 名称 PLLCON PLLCFG 描述 PLL控制寄存器。最新的PLL控制位的保持寄存器。写入该寄 存器的值在有效的PLL馈送序列执行之前不起作用。 PLL配置寄存器。最新的PLL配置值的保持寄存器。写入该寄 存器的值在有效的PLL馈送序列执行之前不起作用。 访问 R/W R/W
15 : 11 0 10 与00组合相同。避免 79 7 :2 8 PLL已连接,当还没有使能的情况。 7 61 :5 40 :0
——
PLLC —— PLLE —— PSEL[1:0] PSEL1 PLLC: 0 MSEL[4:0] MSEL4 PLLE: 0 1 PLOCK PLL已经使能,并连接到处理器作为系统时钟源。
FOSC
10~25MHz
相位频率 检测
流控 振荡器 CCO
156~320MHz
10~60MHz
2P 分频
FCCLK
M分频
PLL
调整M值,实现 Fosc到Fcclk的倍频
4.4.6 时钟部件-PLL(锁相环)
• PLL的锁定过程
CCO的输出频率受到“相位频率检测”部件的控制, 输出所需频率的过程不是一蹴而就的,而是一个拉锯反 复的过程。
锁相环(PLL) RESET VPB分频器
功率控制 唤醒定时器
将晶体振荡器输入的时钟倍频到一个合适的时钟频率 外部复位输入 该引脚上的低电平将使芯片复位,使I/O口和 输入 外设恢复其默认状态,并使处理器从地址0开始执行程序。 将内核时钟与外设时钟分开的部件
使处理器空闲或者掉电,还能关闭指定的功能部件,以降低芯片功耗 系统上电或掉电唤醒后,保证晶体振荡器能输出稳定的时钟信号
FOSC
2.选择合适 的晶振频率 4.计算P值 1.确定处理 器时钟频率
1 3 4 2
相位频率 检测
流控 振荡器 CCO
2P 分频
FCCLK
M分频
3.计算M值
PLL
• PLL设置举例
系统要求Fosc=10MHz,Fcclk=60MHz。 根据这些要求: 1. 确定Fcclk=60MHz; 2. 选择Fosc=10MHz; 3. 计算M= Fcclk/Fosc=60MHz/10MHz=6。M-1=5, 所以写入PLLCFG[4:0]=00101; 4. 计算P=Fcco/( Fcclk*2),其中Fcco为156~320 MHz。 当Fcco=156MHz时,P=156MHz/(2*60MHz)=1.3 当Fcco=320MHz时, P=2.67 P取整数2,所以写入PLLCFG[6:5]=01。
4.4.6 时钟部件-PLL(锁相环)
• 确定PLL设定的过程
选择处理器的操作频率 计算 选择 M P 值以配臵 值以配臵 PSEL MSEL 位。通过设臵 位。 (Fcclk) M= 。这可以根据处理器的 Fcclk/Fosc P值,使 , Fcco M的取值 在定义 选择振荡器频率 (Fosc) 。 Fcclk 一定要是 Fosc 的整数倍。 整体要求、 范围为1~32 的频率限制范围内。 UART 。实际写入 波特率的支持等因素来决定。 P必须是 MSEL1, 位的值为 2, 4或8其中的一个。 M-1的整数倍。
锁定之后这两个频率相等 FOSC= FCCO/(2×p×M)
FOSC
3
相位频率 检测
流控 振荡器 CCO
2
FCCO
连接PLL之后 FCCLK= FCCO/(2×p)
1
2P 分频
FCCO/(2×p)
FCCO/(2×p×M)
M分频
PLL
4.4.6 时钟部件-PLL(锁相环)
• PLL频率计算
可以得出以下几个等式: Fosc = Fcco/(2×p×M) Fcco = Fosc×(2×p×M) Fcclk = Fcco/(2×p) Fcco = Fcclk×(2×p) 最后得出PLL的输出频率(当PLL激活并连接时)为: Fcclk = M×Fosc 或 Fcclk = Fcco / (2×P) CCO输出频率为: Fcco = Fcclk×2×P 或 Fcco = Fosc×M×2×P
馈送寄存器 PLLFEED 7:0 PLLFEED[7 : 0]
操作示例 DISABLE_IRQ(); PLLFEED=0xAA; PLLFEED=0x55; ENABLE_IRQ(); //关闭中断,防止馈送序列操作被打断 //馈送序列第一步 //馈送序列第二步 //馈送序列操作结束,打开中断
注:这两个写操作的顺序必须正确,且必须是连续的VPB总线周期。
4.4.6 时钟部件-PLL(锁相环)
• PLL和掉电模式
掉电模式会自动关闭并断开PLL。从掉电模式唤醒不 会自动恢复PLL的设定,PLL的恢复必须由软件来完成。 通常,首先将PLL激活并等待锁定,然后再将PLL连接。 注:不要试图在掉电唤醒之后简单地执行馈送序列 来重新启动PLL,因为这会在PLL锁定建立之前同时使能 并连接PLL。
4.4 系统控制模块
• 1.系统控制模块 功能汇总 • 2.系统时钟概述 • 3.时钟部件 -晶体振荡器 • 4.复位 • 5.时钟部件 -唤醒定时器
• 6.时钟部件 -PLL(锁相环) • 7.时钟部件 -VPB分频器 • 8.存储器映射控 制 • 9.功率控制
4.4 系统控制模块
• 1.系统控制模块 功能汇总 • 2.系统时钟概述 • 3.时钟部件 -晶体振荡器 • 4.复位 • 5.时钟部件 -唤醒定时器