您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 第2章 LPC1700系列微控制器硬件体系结构
第二章LPC1700系列微控制器硬件体系结构•1.处理器简介•2.LPC1768芯片引脚介绍•3.时钟管理•4.功率控制•5.引脚连接模块本章内容第一节LPC1700系列微控制器简介•概述LPC1700系列芯片是恩智浦推出的基于ARMCortex-M3内核的微控制器,用于处理要求高度集成和低功耗的嵌入式应用。LPC1700系列微控制器的操作频率可达100MHz。LPC1700系列微控制器的外设组件包含:高达512KB的Flash存储器、64KB的数据存储器、以太网MAC、USB主机/从机/OTG接口、8通道DMA控制器、4个UART、2条CAN通道、2个SSP控制器、1个SPI接口、3个I2C接口、2输入和2输出的I2S接口、8通道的12位ADC、10位DAC、LPC1700系列微控制器的外设组件包含:电机控制PWM、正交编码器接口、4个通用定时器、6输出的通用PWM、带有独立电池供电的超低功耗RTC多达70个的通用IO管脚。表2-1LPC1700系列器件选型列表第二节LPC1768芯片引脚介绍•概述要了解控制器必须先从其引脚分布入手,在LPC1700系列微控制器中,LPC1768是功能相对最全的一款微控制器,一共100个引脚,大部分引脚都有第二,第三和第四功能。LPC1768处理器的全部引脚描述见P17-P26表2-1所示所有100个引脚可以分为5类:1.电源引脚电源引脚主要分为数字电源VDD(3V3)和数字地VSS、模拟电源VDDA和模拟地VSSA、ADC部分参考电压VREFP和VREFN、调节器电源VREG(3V3)、RTC电源引脚VBAT。这些引脚应该接对应的电源电压,模拟电源和数字电源应该独立供电。2.复位引脚复位引脚主要有两个,一个是RESET,用于外部复位输入,该引脚为低电平时将器件复位,并使I/O口和外设恢复默认状态,处理器从地址0开始执行。另一个是RSTOUT,该引脚上的低电平表示LPC1700系列微控制器处于复位状态。所有100个引脚可以分为5类:3.时钟引脚时钟引脚主要有两类:一个是主振荡器的时钟引脚:XTAL1和XTAL2;另一个是RTC振荡器的时钟引脚:RTCX1和RTCX2。还有一个引脚CLKOUT和P1.25复用,可以输出处理器内部的各种时钟,方便用户调试使用。4.仿真引脚仿真引脚也是分成了三类:一类是常用的JATG接口,使用TDO、TDI、TMS、TRST、TCK和RTCK这几个引脚;一类是SWD接口,使用SWO、SWDIO和SWDCLK这三个引脚;一类是跟踪接口,使用TRACEDA[3]、TRACEDA[2]、TRACEDA[1]、TRACEDA[0]和TRACECLK这几个引脚。所有100个引脚可以分为5类:5.GPIO引脚对于LPC1768芯片而言,一共有70个GPIO引脚,通常和其他外设功能共用,分成了P0、P1、P2、P3和P4等5组。其中P0.29和P0.30作为USB的数据口,在作为普通的GPIO接口时,其方向只能设置为同向,要么同时为输出方向,要么同时为输入方向,不能单独设置。注意:在LPC1700微控制器中,一共有三个I2C接口,其中I2C0为标准的的I2C总线接口(开漏引脚),而I2C1和I2C2则使用的标准的GPIO引脚。因此当用户要将I2C0的两个引脚(SDA0引脚P0.27和SCL0引脚P0.28)作为GPIO使用时,必须要外接上拉电阻,否则无法输出高电平。第三节时钟管理•概述时钟是计算机系统的脉搏,处理器核在一拍接一拍的时钟驱动下完成指令执行、状态变换等动作。外设部件在时钟的驱动下进行着各种工作,比如串口数据的收发、A/D转换、定时器计数等。所以时钟对于一个计算机系统是至关重要的,通常时钟系统出现问题也是最致命的,比如振荡器不起振、振荡不稳、停振等。LPC1700系列的时钟系统结构图整个系统时钟包含三个独立振荡器,分别为主振荡器、内部RC振荡器和RTC振荡器。复位后,处理器自动选择内部RC振荡器作为系统的时钟源,这使得系统能在没有外部晶振的情况下运行。用户可以通过软件方式修改时钟源选择寄存器,从而选择3种振荡器中的一种作为系统主时钟源。注意:在切换前必须保证即将使用的时钟源已经可用。•三个时钟源主振荡器(外部晶体振荡器)可作为CPU的时钟源(不管是否使用PLL0)或者USB模块的时钟源。主振荡器工作在1MHz~25MHz下。该频率可通过主PLL(PLL0)来提高至CPU操作频率的最大值。主振荡器的输出称为OSC_CLK。PLL0输入引脚上的时钟称为PLLCLKIN,ARM处理器的工作时钟频率称为CCLK,当使用主晶振提供时钟并不激活PLL时,PLLCLKIN和CCLK的值直接相等。•主振荡器由于芯片操作总是从内部RC振荡器开始,且主振荡器在某些应用中并没有使用,因此主振荡器只能由软件请求来启动。通过把SCS寄存器的OSCEN置位可实现这种操作。SCS寄存器提供了一个状态标志(SCS寄存器中的OSCSTAT位),程序可据此得知振荡器何时可用。待确定振荡器运行稳定后,软件可控制切换为主振荡器模式使其作为系统时钟源。在启动主振荡器之前,频率范围必须通过配置SCS寄存器中的OSCRANGE位来选择。•主振荡器配置•系统控制和状态寄存器(SCS)内部RC振荡器(IRC)可用作看门狗定时器的时钟源,也可以用作驱动PLL0和CPU的时钟源。如果使用USB功能或者CAN通信模块的通信波特率高于100Kbit/s时,IRC的精度达不到要求,因使用外部晶体振荡器作为系统时钟源。IRC的频率为4MHz,在上电或任何片上复位时,处理器自动选择IRC作为时钟源。此后,软件可将其切换为另一种可用的时钟源。•内部RC振荡器1、LPC1700系列微控制器有三个时钟源,分别是内部RC振荡器、主振荡器和RTC振荡器,这三个时钟源都可以来驱动PLL0从而给CPU和片内外设提供时钟。只有当PLL0断开连接时,系统才可以安全的切换时钟源。2、提供给USB的时钟源可以是内部RC振荡器、主振荡器和RTC振荡器,可以通过PLL0或者PLL1(只能为主振荡器)配置频率。3、看门狗定时器的时钟可以由片内外设时钟PCLK,RTC振荡器或者主振荡器或者片内RC振荡器提供。•综上所述:•PLL0时钟源选择寄存器(CLKSRCSEL)LPC1700系列微控制器内部有两个锁相环模块,分别为PLL0和PLL1。其中PLL0接受输入的时钟范围是32kHz~50MHz,而PLL1仅支持10MHz~50MHz范围的输入时钟频率,主要提供给USB使用。•锁相环模块•概述•锁相环位置示意图•锁相环功能框图•PLL的锁定过程CCO的输出频率受到“相位频率检测”部件的控制,输出所需频率的过程不是一蹴而就的,而是一个拉锯反复的过程。时间(t)输出频率(f)预期频率锁定CCO的输出频率在高低起伏一段时间后渐渐稳定在了预期的频率值输出频率稳定后即“锁定”成功•锁相环计算公式从上图我们可以看到,当整个闭环控制系统达到稳定后“相位频率检测”部件的两路输入信号可以近似看成一样,因此可以得到下面这个等式:FPLLIN/N=FCCO/2M(2.1)式中FPLLIN表示锁相环的输入时钟频率,FCCO表示电流控制振荡器(CCO)的输出频率,N和M分别是分频和倍频系数。•锁相环模块寄存器描述与PLL相关的寄存器有四个,其中三个为控制寄存器,还有一个是状态寄存器。名称描述访问PLLCONPLL控制寄存器。最新的PLL控制位的保持寄存器。写入该寄存器的值在有效的PLL馈送序列执行之前不起作用。R/WPLLCFGPLL配置寄存器。最新的PLL配置值的保持寄存器。写入该寄存器的值在有效的PLL馈送序列执行之前不起作用。R/WPLLSTATPLL状态寄存器。PLL控制和配置信息的读回寄存器。如果曾对PLLCON或PLLCFG执行了写操作,但没有产生PLL馈送序列,这些值将不会反映PLL的当前状态。读取该寄存器提供了控制PLL和PLL状态的真实值。ROPLLFEEDPLL馈送寄存器。该寄存器使能装载PLL控制和配置信息,该配置信息从PLLCON和PLLCFG寄存器装入实际影响PLL操作的映像寄存器。WO•PLL0控制寄存器(PLL0CON)PLL0CON寄存器可以用于使能和连接PLL0,使能PLL0锁定到当前倍频器和分配器值设定的频率上,连接PLL0将使处理器和大多数片内功能都根据PLL0的输出来工作。对PLL0CON的更改只有在执行了正确的PLL馈送序列后才生效。•PLL0控制寄存器(PLL0CON)•PLLC和PLLE的四种组合PLLCPLLEPLL功能00PLL被关闭,并断开连接。01PLL被激活但是尚未连接。可以在PLOCK0置位后连接。10与00组合相同。避免PLL已连接,当还没有使能的情况。11PLL已经使能,并连接到处理器作为系统时钟源。•PLL0配置寄存器(PLL0CFG)PLL0CFG寄存器包含PLL0倍频和分频值。对PLL0CFG寄存器的更改只有在执行了正确的PLL馈送序列后才生效。•PLL0配置寄存器(PLL0CFG)•PLL0状态寄存器(PLL0STAT)PLL0STAT寄存器提供了当前生效的PLL0的工作参数和状态,这是一个只读寄存器。PLL0STAT可能与PLL0CON和PLL0CFG中的值不同,这是因为对PLL0CON和PLL0CFG寄存器的更改只有在执行了正确的PLL馈送序列后才生效。•PLL0状态寄存器(PLL0STAT)•PLL0馈送寄存器(PLL0FEED)必须将正确的馈送序列写入PLL0FEED寄存器才能使PLL0CON和PLL0CFG寄存器的更改生效。馈送序列:先写入0xAA,再写入0x55。•时钟分频设置PLL0的输出经过分频后供CPU和USB子系统使用(如果使用PLL1,可通过PLL1配置USB的时钟)。USB子系统总是需要占空比为50%的48MHz时钟。•CPU时钟配置寄存器(CCLKCFG)功能:PLL0输出时钟必须要经过分频才能提供给CPU使用,PLL0输出的分频由CCLKCFG寄存器进行控制。当PLL0被旁路时,相当于1分频。当PLL0正在运行时,输出必须经过分频以使CPU时钟频率(CCLK)工作在限定的范围内。•CPU时钟配置寄存器(CCLKCFG)•USB时钟配置寄存器(USBCLKCFG)功能:USBCLKCFG寄存器控制对PLL0输出时钟的分频,然后提供给USB子系统使用。PLL0的输出必须被分频以使USB的时钟频率为48MHz,占空比为50%。注意:该寄存器仅在PLL1禁止时使用。如果PLL1使能,则PLL1的输出自动用作USB时钟源,且必须配置PLL1为USB子系统提供正确的48MHz时钟。•USB时钟配置寄存器(USBCLKCFG)•PLL0频率的计算在PLL0计算的过程中主要涉及以下几个参数:•计算步骤(1)确定应用是否需要USB口,并且USB是否由PLL0提供时钟,USB需要一个准确的50%占空比48MHz的时钟信号,这就意味着FCCO必须是48MHz的整倍数并且FCCO要相当准确;(2)确定处理器的时钟频率CCLK,这可以根据对处理器的整体要求来确定,外围器件的时钟频率一般低于处理器的频率,大多数情况取四分之一的处理器频率;•计算步骤(3)选择PLL输入频率FIN的值;(4)计算M和N的值,以产生一个有效且精确的FCCO的频率。选取原则:先根据FIN的值以及FCCO的范围确定的FCCO值,尽量选取最小的FCCO,以便降低系统的功耗。然后一般从一个较小的N值开始,试算M值,要求得到的N和M值应该是整数,这样才能保证输出频率的准确性。最后将所需的M值减1(即M-1)写入PLL0CFG寄存器的MSEL0字段,将所需的N值减1(即N-1)写入PLL0CFG寄存器的NSEL0字段。•相关计算公式由式2.1我们可以推导出PLL0的输出频率公式为:FCCO=(2×M×FIN)/N(2.2)其中:FCCO的范围:275MHz~550MHz;FIN的范围:32kHz~50KHz;可通过
本文标题:第2章 LPC1700系列微控制器硬件体系结构
链接地址:https://www.777doc.com/doc-3616188 .html