第5章 LPC2000系列ARM硬件结构
4. 确定 PLL 设定的过程
如果一个特定的应用使用PLL,它的配置必须依照下面的原则:
选择处理器的操作频率(cclk)。这可以根据处理器的整体要求、UART 波特率的 支持等因素来决定。外围器件的时钟频率可以低于处理器频率。
选择振荡器频率(FOSC)。cclk 一定要是 FOSC的整数倍。
计算 M 值以配置 MSEL 位。M = cclk/FOSC,M 的取值范围为 1~32。写入 MSEL 位的值为M-1(见表 5.25)。
选择 P 值以配置 PSEL 位。通过设置 P 值,使 FCCO在定义的频率限制范围内,FCCO
可通过前面的等式计算。P 必须是 1, 2, 4 或 8 其中的一个。写入 PSEL 位的值对应 的P 值见表 5.24。
表 5.24 PLL 分频器值 PSEL 位 PLLCFG[6:5] P 值
00 1 01 2 10 4 11 8
表 5.25 PLL 倍增器值 MSEL 位 PLLCFG[4:0] M 值
00000 1 00001 2 00010 3 00011 4 ... ...
11110 31 11111 32
- - 153 5. PLL 设置举例
例如系统要求Fosc=10MHz,cclk=60MHz。
根 据 这 些 要 求 , 可 得 出 M=cclk/Fosc = 60MHz/10MHz = 6 。 因 此 , M-1 = 5 写 入 PLLCFG4:0。
P 值可由 P=Fcco/(cclk*2)得出,Fcco 必须在 156MHz~320MHz 内。假设 Fcco 取最低频 率156MHz,则 P=156MHz/(2*60MHz)=1.3。Fcco 取最高频率可得出 P=2.67。因此,同时 满足Fcco 最低和最高频率要求的 P 值只能为 2,见表 5.24。所以,PLLCFG[6:5]=01。
5.4.10 VPB 分频器 1. 描述
VPB 分频器决定处理器时钟(cclk)与外设器件所使用的时钟(pclk)之间的关系。VPB 分频器有两个用途,第一个是通过VPB 总线为外设提供所需的 pclk 时钟以便外设在合适的 速度下工作。为了实现此目的,VPB 总线可以降低到 1/2 或 1/4 处理器时钟速率。由于 VPB 总线必须在上电后正常工作(并且如果由于VPB 分频器控制器位于 VPB 总线上而使上电时 VPB 总线不工作,其时序就不能改变),VPB 总线在复位后默认的状态是以 1/4 速度运行。
VPB 分频器的第二个用途是在应用不需要任何外设全速运行时使功耗降低。
VPB 分频器与振荡器和处理器时钟的连接见图 5.18。由于 VPB 分频器连接到 PLL 输出,
PLL 在空闲模式下保持有效(如果 PLL 处于运行状态)。
(Fosc) PLL
VPB 分频器
(cclk)
(pclk)
晶振或外部时钟源 处理器时钟
VPB 时钟
图 5.18 VPB 分频器连接 2. VPBDIV 寄存器(VPBDIV - 0xE01FC100)
VPB 分频器寄存器描述见表 5.26。VPBDIV[1:0]两个位可以设定 3 个分频值,详见表 5.27。XCLKDIV 在 LPC2210/2212/2214 中有效。
表 5.26 VPBDIV 寄存器映射
地址 名称 描述 访问
0xE01FC100 VPBDIV 控制 VPB 时钟速率与处理器时钟之间的关系 R/W 表 5.27 VPBDIV 寄存器
VPBDIV 功能 描述 复位值
1:0 VPBDIV VPB 时钟速率如下:
00:VPB 总线时钟为处理器时钟的 1/4。
01:VPB 总线时钟与处理器时钟相同。
10:VPB 总线时钟为处理器时钟的 1/2。
11:保留。将该值写入 VPBDIV 寄存器无效(保留原来的设定)。
0
- - 154 接上表
VPBDIV 功能 描述 复位值
3:2 保留 保留,用户软件不要向其写入1。从保留位读出的值未被定义。 0 5:4 XCLKDIV 这些位仅用于LPC2210/2212/2214(144 脚封装)中,它们控制着
A23/XCLK 脚上的时钟驱动,取值编码方式与 VPBDIV 相同。由 PINSEL2 寄存器中的一位来控制选择引脚用作 A23 还是 XCLKDIV 选择的时钟功能。
注:如果XCLKDIV 和 VPBDIV 取值相同,则 VPB 和 XCLK 使用 相同的时钟。(这在处理VPB 外设的外部逻辑时可能有用。)
0
7:6 保留 保留,用户软件不要向其写入1。从保留位读出的值未被定义。 0
5.4.11 功率控制 1. 描述
LPC2114/2124/2210/2212/2214 支持两种节电模式:空闲模式和掉电模式。
a) 在空闲模式下,指令的执行被挂起直到发生复位或中断为止,但系统时钟cclk 一 直有效。外设功能在空闲模式下继续保持并可产生中断使处理器恢复运行。空闲模 式使处理器、存储器系统和相关控制器以及内部总线不再消耗功率。
b) 在掉电模式下,振荡器关闭,这样芯片没有任何内部时钟。处理器状态和寄存器、
外设寄存器以及内部 SRAM 值在掉电模式下被保持。芯片引脚的逻辑电平保持静 态。复位或特定的不需要时钟仍能工作的中断可终止掉电模式并使芯片恢复正常运 行。由于掉电模式使芯片所有的动态操作都挂起,因此芯片的功耗降低到几乎为零。
掉电或空闲模式的进入是与程序的执行同步进行。通过中断唤醒掉电模式不会使指令丢 失、不完整或重复。从掉电模式唤醒将在5.4.12 小节中作进一步讨论。
外设的功率控制特性允许独立关闭应用中不需要的外设,这样进一步降低了功耗。
2. 寄存器描述
功率控制功能包含两个寄存器,如表5.28 所示。
表 5.28 功率控制寄存器
地址 名称 描述 访问
0xE01FC0C0 PCON 功率控制寄存器。该寄存器包含 LPC2114/2124/2210/2212/2214
两种节电模式的控制位。 R/W
0xE01FC0C4 PCONP 外设功率控制寄存器。该寄存器包含使能和禁止单个外设功能的
控制位。该寄存器可使未被使用的外设不消耗功率。 R/W
功率控制寄存器(PCON – 0xE01FC0C0)
PCON 寄存器包含两个位。置位 IDL 位,将会进入空闲模式;置位 PD 位,将会进入掉 电模式。如果两位都置位,则进入掉电模式。PCON 寄存器描述见表 5.29。
表 5.29 功率控制寄存器
PCON 功能 描述 复位值
0 IDL 空闲模式-当该位置位时,处理器停止执行程序,但外围功能保持工作
状态。外设或外部中断源所产生的任何中断都会使处理器恢复运行。 0
- - 155 接上表
PCON 功能 描述 复位值
1 PD 掉电模式-当该位置位时,振荡器和所有片内时钟都停止。外部中断所
产生的唤醒条件可使振荡器重新启动并使PD 位清零,处理器恢复运行。 0 7:2 保留 保留,用户软件不要向其写入1。从保留位读出的值未被定义。 NA
外设功率控制寄存器(PCONP – 0xE01FC0C4)
PCONP 寄存器允许将所选的外设功能关闭以实现节电的目的。有少数外设功能不能被 关闭(看门狗定时器、GPIO、引脚连接模块和系统控制模块)。PCONP 中的每个位都控制 一个外设。每个位所对应的外设编号见5.3.3 小节的 VPB 外设映射部分。
由于LPC2210/2212/2214 具有 EMC 模块,而 LPC2112/2114 没有,所以它们的 PCONP 寄存器有点区别,见表5.30 和表 5.31。
表 5.30 LPC2112/2114 外设功率控制寄存器
PCONP 功能 描述 复位值
0 保留 保留,用户软件不要向其写入1。从保留位读出的值未被定义。 0
1 PCTIM0 该位为1 时,定时器 0 使能。为 0 时,定时器 0 被关闭以实现节电。 1 2 PCTIM1 该位为1 时,定时器 1 使能。为 0 时,定时器 1 被关闭以实现节电。 1 3 PCURT0 该位为1 时,UART0 使能。为 0 时,UART0 被关闭以实现节电。 1 4 PCURT1 该位为1 时,UART1 使能。为 0 时,UART1 被关闭以实现节电。 1 5 PCPWM0 该位为1 时,PWM0 使能。为 0 时,PWM0 被关闭以实现节电。 1
6 保留 用户软件不要向其写入1。从保留位读出的值未被定义。 0
7 PCI2C 该位为1 时,I2C 接口使能。为 0 时,I2C 接口被关闭以实现节电。 1 8 PCSPI0 该位为1 时,SPI0 接口使能。为 0 时,SPI0 接口被关闭以实现节电。 1 9 PCRTC 该位为1 时,RTC 使能。为 0 时,RTC 被关闭以实现节电。 1 10 PCSPI1 该位为1 时,SPI1 接口使能。为 0 时,SPI1 接口被关闭以实现节电。 1
11 保留 用户软件写入0 来实现节电。 1
12 PCAD 该位为1 时,A/D 转换器使能。为 0 时,A/D 转换器被关闭以实现节能。 1 31:13 保留 保留,用户软件不要向其写入1。从保留位读出的值未被定义。 NA
表 5.31 LPC2210/2212/2214 的外设功率控制寄存器(PCONP – 0xE01FC0C4)
PCONP 功能 描述 复位值
0 保留 保留,用户软件不要向其写入1。从保留位读出的值未被定义。 0
1 PCTIM0 该位为1 时,定时器 0 使能。为 0 时,定时器 0 被关闭以实现节电。 1 2 PCTIM1 该位为1 时,定时器 1 使能。为 0 时,定时器 1 被关闭以实现节电。 1 3 PCURT0 该位为1 时,UART0 使能。为 0 时,UART0 被关闭以实现节电。 1 4 PCURT1 该位为1 时,UART1 使能。为 0 时,UART1 被关闭以实现节电。 1 5 PCPWM0 该位为1 时,PWM0 使能。为 0 时,PWM0 被关闭以实现节电。 1
6 保留 用户软件不要向其写入1。从保留位读出的值未被定义。 0
7 PCI2C 该位为1 时,I2C 接口使能。为 0 时,I2C 接口被关闭以实现节电。 1 8 PCSPI0 该位为1 时,SPI0 接口使能。为 0 时,SPI0 接口被关闭以实现节电。 1 9 PCRTC 该位为1 时,RTC 使能。为 0 时,RTC 被关闭以实现节电。 1 10 PCSPI1 该位为1 时,SPI1 接口使能。为 0 时,SPI1 接口被关闭以实现节电。 1
- - 156 接上表
PCONP 功能 描述 复位值
11 PCEMC 该位为1 时,外部存储器控制器被使能。为 0 时,EMC 被关闭以实现节电。 1 12 PCAD 该位为1 时,A/D 转换器使能。为 0 时,A/D 转换器被关闭以实现节能。 1 31:13 保留 保留,用户软件不要向其写入1。从保留位读出的值未被定义。 NA
注意:若当前运行的是片外存储器中的程序,不要设置 PCEMC 为 0,否则由于 EMC 关闭,会导致 程序运行错误。