本帖最后由 guoyuli 于 2019-12-17 16:24 编辑
2 LPC17xx的基本使用介绍
在LPC17xx 的编程过程中最基本的要注意的有两方面,一方面是系统配置,另一方面是外围基础配置。系统配置包括系统时钟,功耗管理,睡眠模式等等。外围的基础配置包括所使用模块的功耗管理(LPC17xx 出于降低总功耗的原因对每一个外设都有一个使能方式的功耗管理,默认复位后有一些外设是默认开启的有一些是默认关闭的,具体参见手册的第四章计时和功率控制的4.8.9外设功率控制寄存器PCONP)、时钟配置(外设时钟选择参见第4章计时和功率控制的4.7.4 节外设时钟选择寄存器PCLKSEL0 和PCLKSEL1 的对应位)、管脚配置(由于每一个管脚有多种功能因此有专门的寄存器参见第8 章引脚连接模块)等。
关于系统初始化:
在前面的介绍中我们知道LPC17xx 只要有3 个时钟源,分别是内部RC 振荡器、主晶振(1-24M)、RTC 晶振,主晶振、RTC、内部RC 都可以来驱动PLL0 从而给CPU 和片内外设提供时钟,当PLL0未连接时系统才可以安全的切换时钟源。时钟源的选择需要配置
时钟选择寄存器:
时钟源选择寄存器 (CLKSRCSEL,0x400FC10C)
锁相环PLL0
PLL0 接受输入的时钟范围是32KHz-50MHz。时钟源由CLKSRCSEL寄存器选择,输入频率可以倍频到一个较高的频率上,之后可以通过分频为CPU、外设以及可选的USB 子系统提供精确的时钟。值得注意的是USB 子系统又有自己专用的PLL。PLL0 可以产生最高至CPU 允许的最大100M 的频率。PLL0 的输入频率通过一个预分频器分频成为PLL 内部频率,预分频的值用变量N 表示,范围1-256 之间,然后通过一个电流控制振荡器(CCO)倍频到范围275-550M 之间,倍频器的值用M 表示,CCO 频率在通过CPU 频率设置寄存器分频成为提供给CPU 的CCLK 时钟。PPL 的使能是由PLL0CON 寄存器控制,PLL0 倍频器和分频器的值都是由PLL0CFG 寄存器控制。为了防止PLL0 参数发生意外改变或PLL0 失效,对这两个寄存器进行了保护。当PLL0 提供芯片时钟时,由于芯片的所有操作,包括看门狗定时器在内都依赖于它,因此PLL0 的设置的意外改变将导致CPU 执行不期望的操作。
管脚输出配置:
引脚连接模块使得微控制器的大部分引脚具有1 个以上的功能。配置寄存器控制多路开关以实现引脚与片内外设之间的连接。外设应优先连接到适当的引脚,再激活,需要的话使能相关中断。任何一个没有映射到相关功能引脚的使能外设,都将被认为是未定义的。当选择了引脚上的一个功能时,该引脚上其它可用功能无效。
涉及的寄存器有:PINSEL0-PINSEL10;PINSEL 寄存器控制器件引脚的功能。这些寄存器的每一组位对应着特定的器件引脚功能。
仅当引脚选择 GPIO 功能时,GPIO 寄存器中的方向控制位才有
效。对于其它功能来说,方向是自动控制的。每个外围器件通常有不同的引脚配置,因此每个引脚可能有不同的功能组合。
引脚模式选择寄存器
PINMODE 寄存器控制所有端口的工作模式。这包括使用片内上拉/下拉电阻的特性和特定的开漏操作模式。除过用于IIC0 接口的IIC 引脚和USB 引脚。不管该引脚选择用作何种功能,都可以为每一个端口引脚选择片内上拉/下拉电阻。使用三个位来控制端口引脚的模式,其中二个位位于 PINMODE 寄存器中,另一个位于PINMODE_OD 寄存器中。在 PINSEL 寄存器中未使用的引脚看作为保留位。
|