chapter 7 LPC2378硬件介绍 嵌入式课件.ppt_第1页
chapter 7 LPC2378硬件介绍 嵌入式课件.ppt_第2页
chapter 7 LPC2378硬件介绍 嵌入式课件.ppt_第3页
chapter 7 LPC2378硬件介绍 嵌入式课件.ppt_第4页
chapter 7 LPC2378硬件介绍 嵌入式课件.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、LPC2378硬件介绍,系统结构 系统主要电路 系统时钟 存储分配 中断向量,系统结构,系统结构,系统结构,引脚功能 见,系统主要电路,电源电路,时钟电路,存储器地址分配,存储分配,0 xC000 0000,0 x8100 FFFF,3.0GB,0 x8100 0000,0 x8000 FFFF,0 x8000 0000,2.0GB,0 x7FE0 3FFF,0 x7FE0 0000,0 x7FD0 1FFF,0 x7FD0 0000,0 x4000 8000,0 x4000 7FFF,0 x4000 0000,1.0GB,0 x0008 0000,0 x0007 FFFF,0 x0000 0

2、000,0.0GB,外围设备存储器映射,0XFFFF FFFF,0XFFE0 0000,0XFFDF FFFF,0XF000 0000,0XEFFF FFFF,0XE020 0000,0XE01F FFFF,0XE000 0000,4.0GB-2MB,3.75GB,3.5GB+2MB,3. 5GB,APB 外设和基地址,存储器映射,存储器映射基本概念,ARM处理器产生的地址叫虚拟地址,把这个虚拟地址按照某种规则转换到另一个物理地址去的方法称为地址映射。这个物理地址表示了被访问的存储器的位置。它是一个地址范围,该范围内可以写入程序代码。 存储器映射的基本概念是:每个存储器组在存储器映射中都有一个

3、“物理上的”位置,它是一个地址范围,该范围内可写入程序代码每一个存储器空间的容量都永久固定在同一个位置,这样就不需要将代码设计成在不同地址范围内运行,芯片复位后用户看见的地址空间,256KB Flash (LPC2292/2294),16KB SRAM,8KB BootBlock,2MB VPB 外设,2MB AHB 外设,0 x00000000,0 xFFFFFFFF,保留给片内存储器使用,保留给片内存储器使用,0 x40000000,0 xE0000000,0 x80000000,0 xF0000000,地址空间,0X0003FFFF,保留给片外存储器使用,片内总线,AHB和VPB,AHB

4、(先进的高性能总线)和VPB(VLSI外设总线)外设区域都为2M字节,可各分配128个外设。每个外设空间的规格都为16K字节,这样就简化了每个外设的地址译码。,注意:AHB和VPB外设区域中不管是字还是半字,都是一次性访问。例如不可能对一个字寄存器的最高字节执行单独的读或写操作,外设存储器映射,均为12816KB(2MB)范围,AHB外设映射,每个外设空间的规格 都是16KB,VPB外设映射,Boot lock的映射地址安排,为了兼容将来的器件,整个Boot Block被映射到片内存储器空间的顶端。所以将来的芯片内置不同的RAM和FALSH都不会影响Boot Block的位置。,地址空间,映射

5、位置固定在内部存储器顶端,RAM和Flash 的变化不会影响BootBlock的位置,SRAM,Flash,0 x80000000,存储器重新映射,存储器重新映射是将复位后用户所见的存储器中部分区域,再次映射到其它的地址上。 对于Philips的LPC系列ARM微控制器,存储器重新映射区域一共为64字节,分别为异常向量区(32字节)和紧随其后的32字节。存储器重新映射的方法允许在不同模式下处理中断,重新映射的存储器区域在地址0 x000000000 x0000003F处。存储器重新映射的控制见“存储器映射控制”小节。,ARM异常向量位置,下图所示为重新映射后的片内存储器。,LPC2300存储器

6、映射模式,存储器映射控制寄存器,系统时钟,寄存器,.4 系统控制模块,系统时钟概述 晶体振荡器 PLL VPB分频器,系统时钟,5.4 系统控制模块,系统时钟概述,CPU正常工作需要有合适的时钟信号,包括ARM7内核使用的CCLK时钟,和芯片外设使用的PCLK时钟。 通过LPC2000系列微控制器的时钟产生单元产生ARM7内核和芯片外设正常工作所需要的时钟节拍。,5.4 系统控制模块,系统时钟概述,FOSC,CPU时钟结构,5.4 系统控制模块,时钟产生单元,时钟产生单元包括晶体振荡器、锁相环振荡器(PLL)和VPB分频器。,5.4 系统控制模块,锁相环(PLL),由晶体振荡器输出的时钟信号,

7、通过PLL升频,可以获得更高的系统时钟(CCLK)。 PLL接受的输入时钟频率范围为1025MHz,通过一个电流控制振荡器(CCO)倍增到1060MHz。,10MHz25MHz,10MHz60MHz,PLL,PLL内部结构,相位频率 检测,CCO,1 0,2P 分频,M 分频,0 1,0 1,FOSC,FCCO,FCLK,晶体振荡器输入时钟,对输入的两路时钟信号进行相位频率检测,将两者差值以电流形式输出,电流控制振荡器,根据输入电流控制振荡频率,对输入时钟分频,输入时钟 2选1开关,PLL内部结构,相位频率 检测,CCO,1 0,2P 分频,M 分频,0 1,0 1,FOSC,FCCO,FCL

8、K,FCCO / 2P,FCCO / (2P*M),CCO自由振荡,输出频率FCCO,根据两个输入时钟的相位偏差,控制CCO。当两个时钟相位同步时,回路锁定。,PLL相关寄存器,PLL控制寄存器(PLLCON):,PLLE:PLL使能,该位为1时将激活PLL并允许其锁定到指定的频率;,PLLC:PLL连接,当PLLE为1,并且在PLL锁定后,该位为1,将把PLL作为时钟源连接到CPU,否则直接使用振荡器时钟。,注:其中“”表示该位保留,用户不要向该位写入1,读取的值将不确定,PLLC,PLLE,PLL相关寄存器,PLL控制寄存器(PLLCON):,PLLC,PLLE,PLL相关寄存器,PLL控

9、制寄存器(PLLCON):,PLL配置寄存器(PLLCFG):,MSEL4:0:PLL倍频器值,在PLL频率计算中其值为(M-1);,PSEL1:0:PLL分频器值,在PLL频率计算中其值为P 。,PLL相关寄存器,PLL状态寄存器(PLLSETA):,MSEL4:0、PSEL1:0、PLLE、PLLC:读出反映这几个参数的设置值,写入无效;,PLOCK:反映PLL的锁定状态。为0时,PLL未锁定;为1时,PLL锁定到指定频率。,PLL相关寄存器,PLL馈送寄存器(PLLFEED):,PLLFEDD7:0:PLL馈送序列必须写入该寄存器才能使PLL配置和控制寄存器的更改生效;,PLL相关寄存器

10、,馈送序列为: 1.将值0 xAA写入PLLFEED; 2.将值0 x55写入PLLFEED。,PLL相关寄存器,PLL馈送寄存器(PLLFEED):,PLL频率计算,回路锁定后:FOSC = FCCO / (2P M) FCLK = FOSC M,FOSC:晶振频率; FCCO :CCO振荡器输出频率FCCLK:处理器时钟频率; M:PLL倍频值 P:PLL分频值,必须满足的条件: FOSC范围:10MHz25MHz; FCCLK范围:10MHz60MHz; FCCO范围:156MHz320MHz;,5.4 系统控制模块,锁相环(PLL)计算实例,系统要求:FOSC10MHz、CCLK 60

11、MHz,1.计算M值:M CCLK / FOSC 6 ;,2.设置MSEL位:写入值为(M1)5;,3. 设置PSEL位:PFCCO/(CCLK2) (156320)/1201.32.67 所以P取整数2,PSEL写入值为2。,系统时钟,锁相环(PLL)注意要点,PLL在芯片复位或进入掉电模式时被关闭并旁路,在掉电唤醒后不会自动恢复PLL的设定; PLL只能通过软件使能; PLL在激活后必须等待其锁定,然后才能连接; PLL如果设置不当将会导致芯片的错误操作。,5.8 系统时钟,VPB分频器,VPB分频器将PLL输出的时钟信号分频后作为芯片外设的时钟。,VPB分频器,5.4 系统控制模块,VP

12、B分频器,VPB分频器决定处理器时钟(CCLK)与外设器件所使用的时钟(PCLK)之间的关系。 VPB用途1:通过VPB总线为外设提供所需的PCLK时钟,以便外设在合适的速度下工作; VPB用途2:在应用不需要任何外设全速运行时使功耗降低。,5.4 系统控制模块,VPB分频器相关寄存器,VPB分频寄存器(VPBDIV):,VPBDIV1:0:设置分频值,可以设定3个值;,XCLKDIV1:0:这些位用于控制LPC2200系列微控制器A23/XCLK引脚上的时钟驱动,取值编码方式与VPBDIV相同;,5.4 系统控制模块,VPB分频器相关寄存器,VPB分频寄存器(VPBDIV):,系统时钟初始化

13、流程,系统时钟初始化启动代码实例,/应当与实际一至晶振频率,10MHz25MHz,应当与实际一至 #define Fosc 1 /系统频率,必须为Fosc的整数倍(132),且=60MHZ #define Fcclk (Fosc * 4) /CCO频率,必须为Fcclk的2、4、8、16倍,范围为156MHz320MHz #define Fcco (Fcclk * 4) /VPB时钟频率,只能为(Fcclk / 4)的1、2、4倍 #define Fpclk (Fcclk / 4) * 1,将系统内各时钟的频率定义为宏,方便用户操作。,设置晶振频率,设置内核工作频率,设置CCO输出频率,设置外

14、设工作频率,系统时钟初始化启动代码实例,使能PLL,设置VPB 分频值,C代码分析:,PLLCON = 1; #if (Fpclk / (Fcclk / 4) = 1 VPBDIV = 0; #endif #if (Fpclk / (Fcclk / 4) = 2 VPBDIV = 2; #endif #if (Fpclk / (Fcclk / 4) = 4 VPBDIV = 1; #endif . . .,注意:在启动代码中很多地方使用了条件编译的方法,根据用户定义的宏来决定要设置的值,可以方便用户使用。,系统时钟初始化启动代码实例,设置PLL 分频值,C代码分析:,. . . #if(Fcc

15、o/Fcclk)=2 PLLCFG=(Fcclk/Fosc)-1)|(05); #endif #if(Fcco/Fcclk)=4 PLLCFG=(Fcclk/Fosc)-1)|(15); #endif #if(Fcco/Fcclk)= 8 PLLCFG=(Fcclk/Fosc)-1)|(25); #endif #if(Fcco/Fcclk)=16 PLLCFG=(Fcclk/Fosc)-1)|(35); . . .,系统时钟初始化启动代码实例,PLL馈送序列,等待PLL锁定,连接PLL,PLL馈送序列,C代码分析:,. . . PLLFEED = 0 xaa; PLLFEED = 0 x55; while(PLLSTAT ,注意:在修改PLL的控制和配置寄存器后,必须写入馈送序列,使修改生效。,频率计算,PLL 等式使用下列参数: FINPLLCLKIN频率 FCCOSYSCLK频率(PLL电流控制振荡器的输出频率) NPLL前置分频器值,来源于PLLCFG中的NSEL位。N取值范围是1到32之间的整数 MPLL倍频器值,来源于PLLCFG中的MSEL位。 FREFPL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论