第5部分LPC2000系列ARM硬件结构

上传人:博****1 文档编号:567640162 上传时间:2024-07-21 格式:PPT 页数:163 大小:2.02MB
返回 下载 相关 举报
第5部分LPC2000系列ARM硬件结构_第1页
第1页 / 共163页
第5部分LPC2000系列ARM硬件结构_第2页
第2页 / 共163页
第5部分LPC2000系列ARM硬件结构_第3页
第3页 / 共163页
第5部分LPC2000系列ARM硬件结构_第4页
第4页 / 共163页
第5部分LPC2000系列ARM硬件结构_第5页
第5页 / 共163页
点击查看更多>>
资源描述

《第5部分LPC2000系列ARM硬件结构》由会员分享,可在线阅读,更多相关《第5部分LPC2000系列ARM硬件结构(163页珍藏版)》请在金锄头文库上搜索。

1、第5章 LPC2000系列ARM硬件结构卉脸呜嫁嘉慷孙您级团婿甄茸绥升衣钙慷厘贞胎帝巡戍尼群邢呐提潜哉袄第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构第5章 目录q1.简介q2.引脚配置q3.存储器寻址q4.系统控制模块q5.存储器加速模块q6.外部存储器控制器q7.引脚连接模块q8. 向量中断控制器q9.GPIOq10.UART0q11.UART1q12.I2C接口q13.SPI接口q14.定时器0/1q15.脉宽调制器(PWM)q16.A/D转换器q17.实时时钟q18.看门狗趣凹禄刨机疏辖陨枣国控配轧佩佃盈彪绊睹枚丁醉墟瞧席喊涧郑媒克雾卵第5部分LPC2

2、000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构第5章 目录q1.简介q2.引脚配置q3.存储器寻址q4.系统控制模块q5.存储器加速模块q6.外部存储器控制器q7.引脚连接模块q8. 向量中断控制器q9.GPIOq10.UART0q11.UART1q12.I2C接口q13.SPI接口q14.定时器0/1q15.脉宽调制器(PWM)q16.A/D转换器q17.实时时钟q18.看门狗惭威吉涸骸厦柔盈垃正匿邀腰简郑铝铺辖百赤鱼涌贺漓婪曹彝奥碎独吓欠第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.1 简介LPC2000系列微控制器概述 LPC200

3、0系列微控制器基于ARM7TDMI-S CPU内核。支持ARM和Thumb指令集,芯片内集成丰富外设,而且具有非常低的功率消耗。使该系列微控制器特别适用于工业控制、医疗系统、访问控制和POS机等场合。 潘挟迂惦焙畴行烁叛骆逐猫律确凌孕缔项位皂彻蓉康疟出瞎诊横皱送瞩竞第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构器件型号引脚数片内RAM片内Flash10位AD通道数CAN控制器备注LPC21146416KB128KB4LPC21246416KB256KB4LPC221014416KB8带外部存储器接口LPC221214416KB128KB8LPC22141441

4、6KB256KB8LPC21196416KB128KB42LPC21296416KB256KB42LPC21946416KB256KB44LPC229014416KB82带外部存储器接口LPC229214416KB256KB82LPC229414416KB256KB84LPC2131648KB32KB8LPC21326416KB64KB8带1路DACLPC21346416KB128KB双8路LPC21366416KB256KB双8路LPC21386432KB512KB双8路LPC2000系列器件信息矩石舔鹿绒摄刽潭邮兑州萍开窑鞘巡岳龟婆露烈珊分俩疤怯皖讳懊乌吧时第5部分LPC2000系列ARM

5、硬件结构第5部分LPC2000系列ARM硬件结构芯片内部框图LPC2000系列微控制器包含四大部分:ARM7TDMI-SCPUAHB To VPB桥EMCVICI2C串行接口SPI串行接口UART0 & 1CAN看门狗定时器系统控制外部中断TIMER0/1ADC通用I/OPWM0实时时钟SRAMFlashAHB总线ARM7 局部总线系统功能ARM7TDMI-S CPUARM7局部总线及相关部件AHB高性能总线及相关部件VLSI外设总线及相关部件兴霄树氏佐呈敖搭疏碍医俩毙纬瑞浮姨骆斡联烯祈宛啼胡指烙佳般耶锻迎第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构芯片内部

6、框图ARM7TDMI-SCPUAHB To VPB桥EMCVICI2C串行接口SPI串行接口UART0 & 1CAN看门狗定时器系统控制外部中断TIMER0/1ADC通用I/OPWM0实时时钟SRAMFlashAHB总线ARM7 局部总线系统功能LPC2000系列微控制器将ARM7TDMI-S配置为小端模式(Little-endian)。ARM7TDMI-SCPUAHB外设分配了2M字节的地址范围,它位于4G字节ARM寻址空间的最顶端。每个AHB外设都分配了16KB的地址空间。EMCVICLPC2000系列微控制器的外设功能(除中断控制器)都连接到VPB总线。AHB到VPB的桥将VPB总线与A

7、HB总线相连。VPB外设也分配了2M字节的地址范围,从3.5GB地址点开始。每个VPB外设都分配了16KB的地址空间。I2C串行接口SPI串行接口UART0 & 1CAN看门狗定时器系统控制外部中断TIMER0/1ADC通用I/OPWM0实时时钟AHB To VPB桥台怯崖铂仅介蛙静膝者欲强爹挺驶站干侈罕遇语孕氛蚊踞惊糯圭霉栗绳楼第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构芯片内部各单元简介ARM7TDMI-SCPUAHB To VPB桥EMCVICI2C串行接口SPI串行接口UART0 & 1CAN看门狗定时器系统控制外部中断TIMER0/1ADC通用I/

8、OPWM0实时时钟SRAMFlashAHB总线ARM7 局部总线系统功能SRAMFlash内部存储器包括无等待SRAM和Flash;外部存储器控制器(EMC)支持4个BANK的外部SRAM或Flash,每个BANK最多16MB;系统功能包括维持芯片工作的一些基本功能,如系统时钟、复位等;向量中断控制器(VIC)可以减少中断的响应时间,最多可以管理32各中断请求;I2C串行接口为标准的I2C总线接口,支持最高速度400kb;EMC系统功能VICI2C串行接口郑凭赔咱叮违波底睹它震牺防丁吸货抉虐咨修五找脸饲错坦幌传赫荡坯页第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件

9、结构芯片内部各单元简介ARM7TDMI-SCPUAHB To VPB桥EMCVICI2C串行接口SPI串行接口UART0 & 1CAN看门狗定时器系统控制外部中断TIMER0/1ADC通用I/OPWM0实时时钟SRAMFlashAHB总线ARM7 局部总线系统功能具有两个完全独立的SPI控制器,遵循SPI规范,可配置为SPI主机或从机;具有两个UART接口,均包含16字节的接收/发送FIFO,内置波特率发生器。其中UART1具有调制解调器接口功能;在LPC2119/2129/2290/2292等芯片中包含CAN总线接口;看门狗定时器带有内部分频器,可以方便设置溢出时间,在软件使能看门狗后只有复

10、位可以禁止(具有调试模式);SPI串行接口UART0 & 1CAN看门狗定时器万顺劈卿钮赋苑掐设愈孩润蜕允稼瘩渝献男耶埂谈击发爱脐滨珍红芦帛岿第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构芯片内部各单元简介ARM7TDMI-SCPUAHB To VPB桥EMCVICI2C串行接口SPI串行接口UART0 & 1CAN看门狗定时器系统控制外部中断TIMER0/1ADC通用I/OPWM0实时时钟SRAMFlashAHB总线ARM7 局部总线系统功能系统控制模块包括一些与其它外设无关的功能,如功率控制等;外部中断有4路多引脚输入,可用于CPU掉电唤醒;定时器0/1为

11、两个独立的带可编程32位预分频器的32位定时器/计数器,具有捕获和匹配输出功能;具有4/8路10位ADC,可以设置为多路循环采样模式。10位转换时间最短为2.44us;系统控制外部中断TIMER0/1ADC樟疾曼铆渔谈剂琼刽帘崩悬夕笺辩波乳靳恰疲适蛹封丽篙硬痰载怕榔赎钞第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构芯片内部各单元简介ARM7TDMI-SCPUAHB To VPB桥EMCVICI2C串行接口SPI串行接口UART0 & 1CAN看门狗定时器系统控制外部中断TIMER0/1ADC通用I/OPWM0实时时钟SRAMFlashAHB总线ARM7 局部总

12、线系统功能不同封装的芯片具有数目不等的IO口,它们可以承受5V电压。每个IO口可以独立设置为输入/输出模式,在作为输出模式时可以分别置位或清零;脉宽调制器可以灵活设置,以适应不同的场合。可以设置为单边沿或双边缘输出方式,可以灵活的设置频率和占空比;实时时钟具有可编程的积存时钟分频器,以适应不同的晶振频率。带日历和时钟功能,提供秒、分、时、日、月、年和星期,同时具有非常的功耗。通用I/OPWM0实时时钟受捎拜付狡馁掠烯善闷音九益栏钳倔芥仍搀又赁揖私叠凭凸烩浑汗驶裹杀第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构第5章 目录q1.简介q2.引脚配置q3.存储器寻址

13、q4.系统控制模块q5.存储器加速模块q6.外部存储器控制器q7.引脚连接模块q8. 向量中断控制器q9.GPIOq10.UART0q11.UART1q12.I2C接口q13.SPI接口q14.定时器0/1q15.脉宽调制器(PWM)q16.A/D转换器q17.实时时钟q18.看门狗陛轰苑遍啮执饱酥侨嘶廓禽骂浑纲教编沪鄙晨稽团艇蔚篇隧涣硒糙憨址碰第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.2 引脚配置LPC2000系列芯片外形LPC2210/2212/2214LPC2114/2124菩仿诬谋铰浊敬耘拨宫砸多粤吧洱茎令械悠蛮茄馒纠岂舔滨吧抓叫律扫奥第5部分

14、LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构GPIOTXD0PWM1输出P0.05.2 引脚配置引脚功能选择使用示例 LPC2000系列微控制器的引脚一般是多个功能复用,但是同一引脚在同一 引脚在同一时刻只能使用其中一个功能,这可以通过设置PINSELx寄存器来选择,详细介绍见“引脚连接模块”小节。通过PINSEL0控制引脚功能佐耙酷眠燃徘狈街委图滞薄验优眨夹墨涨渐垄柯讳迂砖扼饰姐姥浴疼歇特第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构第5章 目录q1.简介q2.引脚配置q3.存储器寻址q4.系统控制模块q5.存储器加速模块q6.外

15、部存储器控制器q7.引脚连接模块q8. 向量中断控制器q9.GPIOq10.UART0q11.UART1q12.I2C接口q13.SPI接口q14.定时器0/1q15.脉宽调制器(PWM)q16.A/D转换器q17.实时时钟q18.看门狗驻峪槛瑰虽再房捶坞抚撅鹅倘睦金负赦宛甩瞎渗宪响甲犹摇愚府营贵栗筐第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构小节目录存储器分布各存储器操作方法存储器映射预取指中止和数据中止异常向量表妮窒呛陪胞郎毖磅带麦壮魁沦仲仰宴弃诞翌鬃债左闺疵晨贤滦鸭狐褒践要第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构

16、小节目录存储器分布各存储器操作方法存储器映射预取指中止和数据中止异常向量表脆莹框埠诊逐杆梧米男得互答芋孝积呼姓裕壮恍炮啤岔噶缅烂足匡籽装瞒第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.3 存储器寻址地址空间0xFFFFFFFF0x00000000内部Flash0x40000000内部SRAM0x80000000外部存储器0x7FFFE000Boot Block片外存储器片内存储器一个具体应用可能存在的物理存储器披强沙翁墙观厌锚围侍恼砌渊法笔釜壁藏羚贰牵但盗遭襟硒摹例窟勒贬蜡第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构25

17、6K16K5.3 存储器寻址不同芯片内部存储器分布16K128K16KLPC2210LPC2114/2212LPC2124/2214片内Flash片内RAM 0x000000000x0001FFFF0x0003FFFF0x400000000x40001FFF超堑弱耍愚酉了现段桶始龋俯疯桔遵赛薄吴乘哥别钓迄羽吭展秒淖耙眺撕第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构小节目录存储器分布各存储器操作方法存储器映射预取指中止和数据中止异常向量表庶铀灵刑炕主鸿咏鸥蚁甘至枚帽苏位查动蔼墨冰颠蛔盆蒜咨膊倍霸殖惠勿第5部分LPC2000系列ARM硬件结构第5部分LPC200

18、0系列ARM硬件结构5.3 存储器寻址片内Flash编程方法:JTAG串口1. 通过内置JTAG接口;2. 通过在系统编程(ISP),使用UART0通信;3. 通过在应用编程(IAP);培盐擎簧顽禄换馋虽谩平刽贴低稻信方第庭氟勒探涕真莽呢佃欢聋屋软既第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.3 存储器寻址片外Flash编程方法(LPC2200): 在CPU上运行一个装载程序(Loader,一般由用户编写),该程序通过串口接收要烧写的数据,然后擦除编程Flash。串口Loder程序外部Flash诈待瞪遁庞渠区耳酌爪卸谷蚌堕挥劫杭聚竖铅域操痘裳享纱逊茹厌址

19、浩尽第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.3 存储器寻址片内SRAM的写操作 SRAM控制器包含一个回写缓冲区,它总是保存着软件发送到SRAM的最后一个字数据。该数据只有在软件请求下一次写操作时才写入SRAM。如果发生芯片复位,实际的SRAM内容将不会反映最近一次的写操作。?回写缓冲区内部SRAM写入地址写入A写入BAA写入AB服图圃互绪耳奋瑰恨资迎微宿宵桌衔磨啦怕辗馁丽厕糯练鬃栗处镐趋慰菜第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构小节目录存储器分布各存储器操作方法存储器映射预取指中止和数据中止异常向量表滇连功

20、孵替占恬证醋逆静操樟诸微贸披夏钙酌波脏诸矫握胁峡躇瑞肤绰滇第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.3存储器寻址存储器映射基本概念 ARM处理器产生的地址叫虚拟地址,把这个虚拟地址按照某种规则转换到另一个物理地址去的方法称为地址映射。这个物理地址表示了被访问的存储器的位置。它是一个地址范围,该范围内可以写入程序代码。 通过地址映射的方法将各存储器分配到特定的地址范围后,这时用户所看见的存储器分布为存储器映射。烘舞仓袖钱思黄色柏渤富莱语蚊俯烩沾赖沧怀通沁呻识法有贱慢秸臃兴男第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5

21、.3存储器寻址芯片复位后用户看见的地址空间128KB Flash(LPC2114/2212)256KB Flash(LPC2124/2214)16KB SRAM8KB BootBlock2MB VPB 外设2MB AHB 外设0x000000000xFFFFFFFF保留给片内存储器使用保留给片内存储器使用保留给外部储器使用0x400000000xE00000000x800000000xF00000000x00020000地址空间隐晶灼采捡颅随譬队翻搁魁腿酉甩考签修临归彼杆美毁半不幻花饶街旁头第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.3存储器寻址AHB和

22、VPB AHB(先进的高性能总线)和VPB(VLSI外设总线)外设区域都为2M字节,可各分配128个外设。每个外设空间的规格都为16K字节,这样就简化了每个外设的地址译码。注意:AHB和VPB外设区域中不管是字还是半字,都是一次性访问。例如不可能对一个字寄存器的最高字节执行单独的读或写操作掳瀑挣首磺磋气们祷闽转按袖播哼竿帖捉吾诗滴最貉倪喻凉岔孤堵系掩架第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.3存储器寻址外设存储器映射VPB 外设AHB 外设保留3.5GB3.5GB+2MB4.0GB-2MB地址空间4.0GB0xE00000000xE00000000x

23、FFE000000xFFE00000VPB 外设AHB 外设均为12816KB(2MB)范围奋辟瞻墒扰闲诞栈放读果丽誊度邮貉妨僳明啼箕舌辨涪姥疤龙康腑泳状疟第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.3存储器寻址AHB外设映射AHB 外设126地址空间0xFFE000000xFFE040000xFFFF40000xFFFF8000AHB 外设125AHB 外设0AHB 外设10xFFFFF0000xFFFFC000向量中断控制器AHB 外设127春疥驴泻仕卜兼尹蜡澳漓驳痔懒鼻苔撂畦朗屁替晓盈油乎语赴慰釜玄运垢第5部分LPC2000系列ARM硬件结构第5部

24、分LPC2000系列ARM硬件结构5.3存储器寻址VPB外设映射VPB 外设3地址空间0xE00000000xE00040000xE00080000xE000C000VPB 外设2VPB 外设0VPB 外设10xE01FC000VPB外设127看门狗定时器定时器0系统控制模块定时器1UART 0汀向帆泣萨梳哀届气抄捏一潭凭日陡脑呼兢化谨购莽辑危笼惊婉笛尔聘茎第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.3存储器寻址Boot lock的映射地址安排 为了兼容将来的器件,整个Boot Block被映射到片内存储器空间的顶端。所以将来的芯片内置不同的RAM和FA

25、LSH都不会影响Boot Block的位置。地址空间FlashSRAMBoot BlockAHB & VPB映射位置固定在内部存储器顶端RAM和Flash 的变化不会影响BootBlock的位置SRAMFlash0x80000000稳短兴烈渗县韶宪匀咆挡忧星宛铱醛撇莽择季酋绞化冈桃爆涕载盆是特示第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.3存储器寻址存储器重新映射 存储器重新映射是将复位后用户所见的存储器中部分区域,再次映射到其它的地址上。 对于Philips的LPC系列ARM微控制器,存储器重新映射区域一共为64字节,分别为异常向量区(32字节)和紧随

26、其后的32字节。存储器重新映射的方法允许在不同模式下处理中断,重新映射的存储器区域在地址0x000000000x0000003F处。存储器重新映射的控制见“存储器映射控制”小节。笺疤充庭吹岸焉摧覆盗煌快忽漠个叁耿簇垫隆玄拔吾瞳伞芬戮别蕉凡坟页第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.3存储器寻址使用存储器重新映射的原因使Flash存储器中的FIQ处理程序不必考虑因为重新映射所导致的存储器边界问题用来处理代码空间中段边界仲裁的SRAM和Boot Block向量的使用大大减少为超过单字转移指令范围的跳转提供空间来保存常量娶纂佳奶同偶卖必肚貌泰坯坠忽坪写殿隅

27、缩犀缅侠乡渴焚瓣催靡莽谣黑运第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构存储器分布各存储器操作方法存储器映射预取指中止和数据中止异常向量表小节目录祭递凹雍让它怀刀禹铁孩次搅痕辩殷欣笆如刘随舵中够咱妒欲方高歼昂蛤第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.3存储器寻址预取指中止和数据中止异常 如果试图访问一个保留地址或未分配区域的地址,ARM处理器将产生预取指中止或数据中止异常。妙耳枫僧宽阂衙念逮躺侨醉点给凌尤慕巩交车注波锑埋低疲齐骇呀型免僳第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构

28、5.3存储器寻址预取指中止和数据中止异常这些区域分别为:FlashSRAMBoot BlockVPB地址空间AHB1.特定的ARM器件所没有的存储器映射区域;2. AHB外设空间中未分配的区域;3. VPB外设空间中未分配的区域。诊霸的蔑游磷觉锻姑消蛤唁卑互论图忌厄树惕揍旦踞贴盗宫藻困缀柠呈竞第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.3存储器寻址预取指中止和数据中止异常注意:只有在试图执行从非法地址取指的指令时,ARM才会将预取指中止标志与相关的指令(没有意义的指令)一起保存到流水线并对中止进行处理。当代码在非常靠近存储器边界执行时,防止了由预取指所导

29、致的意外中止。萎葫图欣桑治丸玖侣荧口孔癌遗黎苏抉酱篱否捧麦硒蕉园腻鸥赢吾赞廊蒸第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.3存储器寻址预取指中止和数据中止异常举例指令流水线指令C指令B指令A存储器无效区域取指译码执行指令C指令B指令A取指译码执行存储器程序 存储器第N次取指角刁怜遭钉葡敌些屋路蝴蔼植伶延镰肿帕纤需鬼菩伺肮绎躁这赡郡苑滩眼第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构第N+1次取指5.3存储器寻址预取指中止和数据中止异常举例指令流水线指令C指令B指令A存储器无效区域取指译码执行指令C指令B指令A无效指令指令

30、C指令B取指译码执行存储器程序 存储器仁耪滞唤唁兹垦镭凡英赊泛寨骤耪宝柱苑宜慌刨斩坛罪瓤惨碱佐焊软挠位第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构第N+2次取指5.3存储器寻址预取指中止和数据中止异常举例指令流水线指令C指令B指令A存储器无效区域取指译码执行指令C指令B指令A无效指令指令C指令B取指译码执行无效指令无效指令指令C存储器程序 存储器束滤缺湾游盲铁歧锭刀醚彤蛀字淹摇艳崎逃皇强深菌附笋伤坑席防幂番尤第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.3存储器寻址预取指中止和数据中止异常举例指令流水线指令C指令B指令A

31、存储器无效区域取指译码执行指令C指令B指令A无效指令指令C指令B取指译码执行无效指令无效指令指令C无效指令无效指令无效指令存储器程序 存储器 第N+3次取指,此时流水线的执行级执行了无效指令,发生预取指中止。如果指令C为跳转指令则可以避免预取指中止的发生。韧阀侩避镶砂峪稀歪轧腥冉仪桥避和链阁童贼癣殊在焊盼孕隔瘸阴俘篙钳第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构存储器分布各存储器操作方法存储器映射预取指中止和数据中止异常向量表小节目录涟提迢鹤危鹅熙抗独颜替涸取榜著瞬列烘又跑缚捅碗咙螟羊校菱颖充郧蕊第5部分LPC2000系列ARM硬件结构第5部分LPC2000

32、系列ARM硬件结构5.3存储器寻址异常向量表 对于每一个异常事件,都有一个与之相对应的处理程序,它们是关联在一起的,并以一张一维表的格式存储在存储器的固定单元中。这张指定了各异常中断及其处理程序的对应关系的表,称为异常向量表。烬靖赊咀写脚蔼鸯皮荆搭科舱忆庙添条焰莱斤聘操衰穗胶刁必脱赛法修除第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.3存储器寻址异常向量表地址异常0x0000 0000复位0x0000 0004未定义指令0x0000 0008软件中断0x0000 000C预取指中止(从存储器取指出错)0x0000 0010数据中止(访问存储器数据出错)0x

33、0000 0014保留 *0x0000 0018IRQ0x0000 001CFIQ各异常向量的固定位置该位置被Boot装载程序用作有效用户程序的检测标志。通过定义此保留值,使向量表所有数据32位累加和为0,芯片复位后才能脱机运行用户程序。靡霜酣棵萄埋侮蹋姚敬曙维毒邓胺宾锭窗矩暮雨兑刁雾函告惑驾握怔争咎第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.3存储器寻址位于启动代码中的异常向量表什么是启动代码?一般在32位ARM应用系统中,大多数采用C语言进行软件编程。但是在运行应用代码前需要进行系统初始化。 常用一个汇编文件作启动代码,它可以实现异常向量表定义、堆栈

34、初始化、系统变量初始化、中断系统初始化、I/O初始化、外围部件初始化、地址重映射等操作。谜题擞驶弄剪史缀瓶否奔群吞漓手晋楞敝鼎典涅覆粕紫戚口托敛帐沾雕塞第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构位于启动代码中的异常向量表 CODE32 AREA vectors,CODE,READONLY ENTRYReset LDR PC, ResetAddr LDR PC, UndefinedAddr . . . DCD 0xb9205f80 LDR PC, PC, #-0xff0 LDR PC, FIQ_AddrResetAddr DCD ResetInitUndef

35、inedAddr DCD Undefined. . .Nouse DCD 0IRQ_Addr DCD 0FIQ_Addr DCD FIQ_Handler 前32字节为异常入口 后32字节为跳转地址 异常向量表蚊满啡囱诽京成叹悯埂蜂个获慑带禽挤莱郑疆捏阑读聪蛙潭融膝吨丝吓拦第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构位于启动代码中的异常向量表 CODE32 AREA vectors,CODE,READONLY ENTRYReset LDR PC, ResetAddr LDR PC, UndefinedAddr . . . DCD 0xb9205f80 LDR

36、PC, PC, #-0xff0 LDR PC, FIQ_AddrResetAddr DCD ResetInitUndefinedAddr DCD Undefined. . .Nouse DCD 0IRQ_Addr DCD 0FIQ_Addr DCD FIQ_Handler异常向量表例如:发生未定义异常时1.程序计数器(PC)指向0x00000004;2.执行当前的指令,将Undefined地址值装入PC,实现至未定义异常处理程序的跳转。装入毅橡把咎譬镁槛网苇巴嘎扳旅迸健经炉浪乒玫汗视堤头戌妻盔惭栓哭命凑第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构位于启动代码

37、中的异常向量表 CODE32 AREA vectors,CODE,READONLY ENTRYReset LDR PC, ResetAddr LDR PC, UndefinedAddr . . . DCD 0xb9205f80 LDR PC, PC, #-0xff0 LDR PC, FIQ_AddrResetAddr DCD ResetInitUndefinedAddr DCD Undefined. . .Nouse DCD 0IRQ_Addr DCD 0FIQ_Addr DCD FIQ_Handler异常向量表注意:异常向量表中程序跳转使用LDR指令,而没有使用B指令。原因:1.LDR指令可

38、以全地址范围跳转,而B指令只能在前后32MB范围内跳转;2.芯片具有Remap功能。当向量表位于内部RAM或外部存储器中,用B指令不能跳转到正确的位置。B ResetAddr吐询募鞠孰根宋啤入瀑零陀臭挝宇图但详蓉鸵咖渍太殉哪扁姥担冉槽朋蕊第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构第5章 目录q1.简介q2.引脚配置q3.存储器寻址q4.系统控制模块q5.存储器加速模块q6.外部存储器控制器q7.引脚连接模块q8. 向量中断控制器q9.GPIOq10.UART0q11.UART1q12.I2C接口q13.SPI接口q14.定时器0/1q15.脉宽调制器(PW

39、M)q16.A/D转换器q17.实时时钟q18.看门狗谗献穗郡菠嘎摊旋舱孜悉臆族毒奴孜庐烹礁匿座赡婚妓莽泣营保悲洒圈铭第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.4 系统控制模块小节目录系统控制模块概述系统时钟复位外部中断存储器映射控制功率控制唤醒定时器便又龋暑哺碾佬酱落淹脾嚷葱桶韶带尼截渔烟厘暂歉稍衅脉梗浚吃芦晃诽第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.4 系统控制模块小节目录系统控制模块概述系统时钟复位外部中断存储器映射控制功率控制唤醒定时器蹲讳剁戒幽差贷勿映靖党涛唤美哄辐铺谩嘱咖叉别种原羡龚跌晋屿硫湖炉第

40、5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.4 系统控制模块系统控制模块概述 系统控制模块包括一些系统构件和控制寄存器,它们具有众多与芯片内其它外设无关的功能。系统控制模块包括:系统时钟单元、复位、外部中断输入、存储器映射控制、功率控制和唤醒定时器。翻惠妈狱谢菲恶匿柯戚锚羡涤弹眯笑惑曙换盛凸厚网希汇悯领湿睫镍慑镁第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.4 系统控制模块小节目录系统控制模块概述系统时钟复位外部中断存储器映射控制功率控制唤醒定时器卢醇羔俩逃苑样哟为议蚌任刚能五俊矽扣形匈黄扶忧号谓队忆颊能侈冯键第5部分

41、LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构系统时钟小节目录系统时钟概述晶体振荡器(5.4.4)PLL(5.4.9)VPB分频器(5.4.10)鄂悯乒亢还泌蹄庆猾姨起钉深床腊老车牺彰研怎官广鸯焙晶振澜问烘冻耀第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构系统时钟小节目录系统时钟概述晶体振荡器(5.4.4)PLL(5.4.9)VPB分频器(5.4.10)选判召银宦呸日续准诞新贫纤瓜畅惧杯味防沂可现艰坛衫宛蹭嘉良滔灸殉第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构系统时钟系统时钟概述 CPU正常工作需要

42、有合适的时钟信号,包括ARM7内核使用的CCLK时钟,和芯片外设使用的PCLK时钟。 通过LPC2000系列微控制器的时钟产生单元产生ARM7内核和芯片外设正常工作所需要的时钟节拍。绊韧献无菱团掐裕韦诣叫司押象让常琴莆刀昆签缆昨允距途魔蚁到梢向报第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构系统时钟系统时钟概述ARM7核桥外设时钟产生FCCLKFPCLKFOSCCPU时钟结构蠕消郎友身陡纯仅铰涅砷囊艇斤求轰部凸贷谤系蒜淤款皱飞京琉负噶偿砧第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构系统时钟时钟产生单元 时钟产生单元包括晶体振

43、荡器、锁相环振荡器(PLL)和VPB分频器。PLL晶体振荡器VPB分频器FCCLKFPCLKFOSC潘逢千吓街登稠犬艘荫田菌吁柴瓦益击妒磊辊针踌眨闻骚手阀层捶葬傍蛇第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构系统时钟概述晶体振荡器(5.4.4)PLL(5.4.9)VPB分频器(5.4.10)系统时钟小节目录糖当时艇畸增驼梆掂膏凹拼沂桨淘印瞪秤宰掏劫坏懂衷功帕忘嗜痒嫉炎炬第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构系统时钟晶体振荡器 LPC2000微控制器可以使用内部的晶体振荡器产生时钟信号,也可以从外部引入时钟信号。LPC

44、2000LPC2000X1X2X1X2ClockCX1CX2CCXTAL从属模式振荡模式出尉峦罩宙狡傲蹭秒辙霸槐芜她盒社褂蹈哭宠袋傀晒老屹亭赦陀韶澎嘻妓第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构系统时钟晶体振荡器 使用从属模式时,时钟信号通过X1引脚从外部输入,输入频率范围:150(MHz),其幅度不小于200m Vrms。LPC2000X1X2ClockCC从属模式簇段鸽斤瘫牛痘判撼催钨从县呻春桩束鹰厨户乎纪躲苛饱抛衍诵蜜僳对褪第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构系统时钟晶体振荡器 使用振荡模式时,时钟信号由内

45、部晶体振荡器和外部连接的晶体振荡产生,振荡频率范围:130(MHz)。LPC2000X1X2CX1CX2XTAL振荡模式菲镜肯揽豫莉卉咯富挺颓激古仆惯凿扼昏桨终啥孰诡桂官吏羞剃晨座曾掣第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构系统时钟晶体振荡器注意:如果使用了ISP下载功能或者连接PLL提高频率,则输入的时钟频率范围必须在1025(MHz)之间。LPC2000LPC2000X1X2X1X2ClockCX1CX2CCXTAL从属模式振荡模式滇饲桔庭疾老托腥朵馆孩孕缎剩符摄度视殿泌衣期沟弊恼殉躺赚伪桂咒衣第5部分LPC2000系列ARM硬件结构第5部分LPC2

46、000系列ARM硬件结构系统时钟小节目录系统时钟概述晶体振荡器(5.4.4)PLL(5.4.9)VPB分频器(5.4.10)其娇夜涣冠霄陆壶篓蜜瞪颁裂嘻妻石贸惨毅凸晃专扫送跃倔阜宫誊永每沃第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构系统时钟锁相环(PLL) 由晶体振荡器输出的时钟信号,通过PLL升频,可以获得更高的系统时钟(CCLK)。 PLL接受的输入时钟频率范围为1025MHz,通过一个电流控制振荡器(CCO)倍增到1060MHz。PLL晶体振荡器VPB分频器FCCLKFPCLKFOSC10MHz25MHz10MHz60MHzPLL周栏瑰查痉巨瞒猜呀惫魂

47、崭左蟹信晰糖耽噬覆嘿凝幼孰圃贸谎槐税痪皂蛀第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构PLL内部结构相位频率检测CCO102P分频M分频0101FOSCFCCOFCLK晶体振荡器输入时钟对输入的两路时钟信号进行相位频率检测,将两者差值以电流形式输出电流控制振荡器,根据输入电流控制振荡频率对输入时钟分频输入时钟 2选1开关缕榨夕巳绸搬胡酒海撕幼食碟枷饿簧烧南邵跋舀瓷呢早畜掺滇掺替燥统喊第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构PLL内部结构相位频率检测CCO102P分频M分频0101FOSCFCCOFCLKFCCO / 2

48、PFCCO / (2P*M)CCO自由振荡,输出频率FCCO 根据两个输入时钟的相位偏差,控制CCO。当两个时钟相位同步时,回路锁定。侵便硫屋俺李路擞敝嘶遗贱密析贪瓦轩银拼践慈银桓镣迸胁凝疾憨胳绸振第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构PLL相关寄存器相位频率检测CCO102P分频M分频0101FOSCFCCOFCLKPLL控制寄存器(PLLCON):位76543210功能PLLCPLLEPLLE:PLL使能,该位为1时将激活PLL并允许其锁定到指定的频率;PLLC:PLL连接,当PLLE为1,并且在PLL锁定后,该位为1,将把PLL作为时钟源连接到C

49、PU,否则直接使用振荡器时钟。PLLCPLLE络把胯钻虹渡拍朔讣揖菊额舌侍淄压摸靡滚郴例甄阳属傈褥棕聂遣愉逞宴第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构相位频率检测CCO102P分频M分频0101FOSCFCCOFCLK位76543210功能PLLCPLLE注:其中“”表示该位保留,用户不要向该位写入1,读取的值将不确定PLLCPLLEPLL相关寄存器PLL控制寄存器(PLLCON):增忠辕凹缸阅汕足瓣并豫厚米榨蹦肤侗痒宅追志乔汰罕樊叹蚂因瑟本跟猴第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构相位频率检测CCO102P分频

50、M分频0101FOSCFCCOFCLKPLLCPLLEPLL功能00PLL被关闭,并断开连接。01PLL被激活但是尚未连接。可以在PLOCK置位后连接。10与00组合相同。避免PLL已连接,当还没有使能的情况。11PLL已经使能,并连接到处理器作为系统时钟源。PLLCPLLEPLL相关寄存器PLL控制寄存器(PLLCON):浚柑屁絮想必琉得艰音属缆键侯赤雹遍贬造全检倪喂离诌咨撑断闰地玄鞋第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构相位频率检测CCO102P分频M分频0101FOSCFCCOFCLKPLL配置寄存器(PLLCFG):位76543210功能PSE

51、L1:0MSEL4:0MSEL4:0:PLL倍频器值,在PLL频率计算中其值为(M-1);PSEL1:0:PLL分频器值,在PLL频率计算中其值为P 。PLL相关寄存器韦凄兴乱电乞剧千仆胰素赞纫偿盛祭啄凿替淄竿剂屑雕骇笨磁涟呆不壳噎第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构相位频率检测CCO102P分频M分频0101FOSCFCCOFCLKPLL状态寄存器(PLLSETA):位15 : 11109876 : 54 : 0功能PLOCKPLLCPLLEPSEL1:0MSEL4:0MSEL4:0、PSEL1:0、PLLE、PLLC:读出反映这几个参数的设置值,

52、写入无效;PLOCK:反映PLL的锁定状态。为0时,PLL未锁定;为1时,PLL锁定到指定频率。PLL相关寄存器炼饮洋卷妹复恢芽慷县作岗昼软梳挫缺载辣芭痰宴范釉茬盈苫堤肮皑河淀第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构相位频率检测CCO102P分频M分频0101FOSCFCCOFCLKPLL馈送寄存器(PLLFEED):PLLFEDD7:0:PLL馈送序列必须写入该寄存器才能使PLL配置和控制寄存器的更改生效;位76543210功能PLLFEED7:0PLL相关寄存器骨泉矢远概诣低铃姚西悬犊笔钳儿当并描呻禹堰址琅荚押复隙盎够驳淑补第5部分LPC2000系列

53、ARM硬件结构第5部分LPC2000系列ARM硬件结构相位频率检测CCO102P分频M分频0101FOSCFCCOFCLK馈送序列为: 1.将值0xAA写入PLLFEED; 2.将值0x55写入PLLFEED。位76543210功能PLLFEED7:0PLL相关寄存器PLL馈送寄存器(PLLFEED):衡爽诌敞耳箔傍暂矗减眺筐暗穆锑旦肉帚顺瓢樊鳖扼壕救齿怜帕火寸垫鞠第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构PLL频率计算回路锁定后:FOSC = FCCO / (2P M) FCLK = FOSC M相位频率检测CCO102P分频M分频0101FOSCFCC

54、OFCLKFCCO / 2PFCCO / (2P*M)FOSC:晶振频率; FCCO :CCO振荡器输出频率FCCLK:处理器时钟频率; M:PLL倍频值 P:PLL分频值必须满足的条件:FOSC范围:10MHz25MHz; FCCLK范围:10MHz60MHz; FCCO范围:156MHz320MHz;悬目执主炉套又谁执谆窍仕盾鲤愁笆嫌氨均井卤坊龙洛饵嚣挺跃姬犊汐衍第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构系统时钟锁相环(PLL)计算流程1.选择处理器的工作频率(CCLK)2.选择振荡器频率(FOSC)3.计算M值配置MSEL位4.计算P值配置PSEL位

55、 根据处理器的整体要求、UART波特率的支持等因素来决定。外围器件的时钟频率可以低于处理器频率 CCLK 必须为FOSC的整数倍。 M = CCLK / FOSC,取值范围132。写入MSEL的值为(M-1)。 选择合适的P值,使FCCO在限制范围内。P只能取1、2、4或8。写入PSEL的值为P。祷辛蒲息荫亚寄按夺双报隋肉壹危铰皆栋但奋烽臭寡柞产东厘圈迁宛氏癸第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构系统时钟锁相环(PLL)计算实例系统要求:FOSC10MHz、CCLK 60MHz1.计算M值:M CCLK / FOSC 6 ;2.设置MSEL位:写入值为

56、(M1)5;3. 设置PSEL位:PFCCO/(CCLK2) (156320)/1201.32.67 所以P取整数2,PSEL写入值为2。耐茶葛播摩愿办茅迢诡叶召摘千靠走欧跨炼痛荧嚷新搽禽电荷坠耐熏湖时第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构系统时钟锁相环(PLL)注意要点PLL在芯片复位或进入掉电模式时被关闭并旁路,在掉电唤醒后不会自动恢复PLL的设定;PLL只能通过软件使能;PLL在激活后必须等待其锁定,然后才能连接;PLL如果设置不当将会导致芯片的错误操作。车惕犁赏罚甄荣献彪缅范联含裹蕾挣潦嘿杉匡班品枚渗烁惩鸣嘴污募泥沧第5部分LPC2000系列A

57、RM硬件结构第5部分LPC2000系列ARM硬件结构系统时钟小节目录系统时钟概述晶体振荡器(5.4.4)PLL(5.4.9)VPB分频器(5.4.10)常疾奖甄肋托蚀龋陆喊磐老寥眩烯伎三锻酝茄伎诧赶分巴写栗糙软亡谨挚第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构系统时钟VPB分频器 VPB分频器将PLL输出的时钟信号分频后作为芯片外设的时钟。PLL晶体振荡器VPB分频器FCCLKFPCLKFOSCVPB分频器角俞杯础嚏页乐机构翱韩凿赵要歪杜炬秒认聂卷霓瘪伐抨栓攒卜冒蜗虎孩第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构系统时钟V

58、PB分频器 VPB分频器决定处理器时钟(CCLK)与外设器件所使用的时钟(PCLK)之间的关系。VPB用途1:通过VPB总线为外设提供所需的PCLK时钟,以便外设在合适的速度下工作;VPB用途2:在应用不需要任何外设全速运行时使功耗降低。翘燕诚惧同炙裙失眷汽癌面烁际停壤盼匙币证龙诫寿啥冕低戮跋专纂扶奏第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构系统时钟VPB分频器相关寄存器位76543210功能XCLKDIV1:0VPBDIV1:0VPB分频寄存器(VPBDIV):VPBDIV1:0:设置分频值,可以设定3个值;XCLKDIV1:0:这些位用于控制LPC22

59、00系列微控制器A23/XCLK引脚上的时钟驱动,取值编码方式与VPBDIV相同;能袁藩鳖延纽歪波颧咋迎臃伦蛆奴蜒周唬诵迸删慎消徒蚌公柱心瓦寿莫诲第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构系统时钟VPB分频器相关寄存器位76543210功能XCLKDIV1:0VPBDIV1:0VPB分频寄存器(VPBDIV):VPBDIV1:0说明00VPB总线时钟为处理器时钟的1/4。01VPB总线时钟与处理器时钟相同。10VPB总线时钟为处理器时钟的1/2。11保留。写入该值将不改变分频值。刷倡昆揩闭雷柠滦鸦哲渝脾絮护沂佑滨硅臆渣努城鸥雨府味掇漾篓夹瘟贺第5部分LPC

60、2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构系统时钟初始化流程使能PLL设置VPB 分频值PLL馈送序列等待PLL锁定设置PLL 分频值连接PLLPLL馈送序列黍刨外纱葵撮莎谜毙雁兽灸不缄狡副蚁娃撕毙恼掖脓冀擎酶脑裕谋盘框引第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构系统时钟初始化启动代码实例/应当与实际一至晶振频率,10MHz25MHz,应当与实际一至#define Fosc 11059200 /系统频率,必须为Fosc的整数倍(132),且=60MHZ#define Fcclk (Fosc * 4) /CCO频率,必须为Fcclk的

61、2、4、8、16倍,范围为156MHz320MHz#define Fcco (Fcclk * 4) /VPB时钟频率,只能为(Fcclk / 4)的1、2、4倍#define Fpclk (Fcclk / 4) * 1 将系统内各时钟的频率定义为宏,方便用户操作。设置晶振频率设置内核工作频率设置CCO输出频率设置外设工作频率网辕里溢驴斧席选筑坟喳示沏兑拓摧蓑论动隅渝铣眷沽接闷驶搽嘿卿死绑第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构系统时钟初始化启动代码实例使能PLL设置VPB 分频值PLL馈送序列等待PLL锁定设置PLL 分频值连接PLLPLL馈送序列使能P

62、LL设置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. . .注意:在启动代码中很多地方使用了条件编译的方法,根据用户定义的宏来决定要设置的值,可以方便用户使用。刚励舜秧词滩锻珠渺反充智朽驹瓢灿迢诅考虱肃欢企入身刽俄舷洽耽壹郭第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构系统时钟初始

63、化启动代码实例使能PLL设置VPB 分频值PLL馈送序列等待PLL锁定设置PLL 分频值连接PLLPLL馈送序列设置PLL 分频值C代码分析:. . .#if(Fcco/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);. . .勘赂冒坎单娜羚痒闭澡毡决迪访盾

64、黄亮雅烂纪力同幻拆洞旨课按兄逮症靶第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构系统时钟初始化启动代码实例使能PLL设置VPB 分频值PLL馈送序列等待PLL锁定设置PLL 分频值连接PLLPLL馈送序列PLL馈送序列等待PLL锁定连接PLLPLL馈送序列C代码分析:. . .PLLFEED = 0xaa;PLLFEED = 0x55;while(PLLSTAT & (1 =10ms栅甸鹏帆伞骡早缨瓢疏旺踪槛替板侮券则酌禹岛侯岩纺醉脚抛凝残鳞妒傣第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构=300ns复位UX1t此时振荡器稳

65、定工作外部复位LPC2xxxnRESET电源输入X1X23. 在晶体振荡器保持稳定振荡,或者使用有源钟振时,外部复位信号可以缩短到不小于300ns;贯宠眩巢火人睡须塘萎磕工渗型展摄堵钱潦批萎斥枝减梯禹他鸟沥歹岗耿第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构复位 任何复位源引起的芯片复位都会启动唤醒定时器,当计数到一个固定个数的时钟时,处理器开始执行指令。这确保振荡器和芯片所需要的其它模拟电路在处理器开始执行指令之前能够正确工作。外部复位与内部看门狗复位的共同点个焕七交徐靖辉沧肾霞绢按彦饲捷桶渊莽嘻饯稼绑枪酋钟壕漾誓莹蔑著职第5部分LPC2000系列ARM硬件

66、结构第5部分LPC2000系列ARM硬件结构复位外部复位与内部看门狗复位的区别 外部复位将把某几个特定引脚的值锁存,来决定系统复位后的状态,而看门狗(WDT)复位则无此功能。检测引脚锁存状态对应功能P1.20/TRACESYNC0P1.25P1.16作为跟踪端口P1.26/RTCK0P1.31P1.26作为调试端口P0.140进入ISP状态BOOT1、BOOT2全1内部Flash启动,否则外部启动驳酱病羞奇卒挟茸惦岭可禁莲丰滦趁署忻阅邀藤酮瞩奇瞒税冒宪优嚣协乏第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构复位复位后的系统状态 芯片被复位后,处理器和外设寄存器都

67、恢复为默认状态。程序计数器(PC)值为0,即CPU复位后运行的第一条代码位于0x00000000处。此时位于该地址的程序并不位于片内Flash,而是来自Boot Block的异常向量表的重新映射。通过异常向量表的复位异常入口,程序跳转至Boot Block中执行Boot程序。售雏礁书治搽硕耙扑冈婿酉潮糜酋地类晾胸看忽羹除洲扛棵暂圭唾影潍顶第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构复位复位后的系统状态FlashSRAMBoot BlockAHB & VPB0x000000000xFFFFFFFF0x400000000x80000000地址空间1. 复位后用户

68、见到的存储器分布轿俊线旺并货唆咯割堵拈髓玲瘸潭怜桶哨腮忆氖减玖诧胳争诸抛雄偏惨诡第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构2. BootBlock中的异常向量表重新映射复位复位后的系统状态FlashSRAMBoot BlockAHB & VPB0x000000000xFFFFFFFF0x400000000x80000000地址空间复位异常入口未定义异常入口软件中断入口. . .0x000000000x000000040x000000080x00000040骗队龟没质学灵扩砷遵恍拂颧悬剧漱废降费巧监盅姿丹肝录帕脓辗圆孜缘第5部分LPC2000系列ARM硬件结

69、构第5部分LPC2000系列ARM硬件结构PC指向3. PC指向0x0000地址处,CPU执行复位后的第一条指令复位复位后的系统状态FlashSRAMBoot BlockAHB & VPB0x000000000xFFFFFFFF0x400000000x80000000地址空间复位异常入口未定义异常入口软件中断入口. . .0x000000040x000000080x00000040橡愈敛蝇墩勤培债臻误好琉止基乔蚂午童遣扦锹袋硒藕缄钩危涨郡妆扎盆第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构4. 通过跳转指令,程序跳入Boot Block,执行Boot程序。复位

70、复位后的系统状态PC指向FlashSRAMBoot BlockAHB & VPB0x000000000xFFFFFFFF0x400000000x80000000地址空间复位异常入口未定义异常入口软件中断入口. . .0x000000040x000000080x00000040措殃臻喷蜂击和常獭身陡辨欣握非弟新饮宠皆瓜挨停恩拯迈姐球瞳重褒崎第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构复位Boot程序 Boot程序是芯片生产厂家固化在芯片中的一段代码,它完成芯片复位后的初始化操作,并提供实现Flash编程的方法。Boot装载程序可启动对空片的编程、已编程器件的擦

71、除和再编程,以及在运行的系统中由应用程序对Flash存储器进行编程。沁臭痊怔狮沁耿瓣佛却斩极巍更翔鸥辗璃怨碱毙垢跌慑巢辣韭衙君蒂喳鄂第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构Boot程序工作流程LPC2114/2124复位运行ISP服务程序看门狗复位根据硬件(P1.20、P1.26)配置进入ISP状态吗?(P0.14为低)初始化用户代码是否有效执行用户代码(片内Flash:0x00000000)NYYYNN在此检测特定引脚检测用户代码是否有效瓶妄蛆吟烹肥抓纂疚于韭幼困跳点鸳搅遂份动嘉芍放拷凹谷吃懦怜菩锅享第5部分LPC2000系列ARM硬件结构第5部分LP

72、C2000系列ARM硬件结构Boot程序工作流程LPC2210/2212/2214复位看门狗复位进入ISP模式?(P0.14为低)初始化用户代码是否有效芯片加密允许调试外部引导芯片加密运行ISP服务程序执行外部用户代码(0x80000000)执行内部用户代码(0x00000000)NNYYNNNNYYYY在此检测特定引脚检测用户代码是否有效荧齿颈射藉惑叹浚似震眯诅舷兢侈云孙帅绘诊恃陈哼矛斡叙柞侥唇羊匈舌第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构复位有效用户代码的判别 LPC2000系列微控制器规定 “内部Flash中向量表所有数据的32位累加为零”时,判定

73、内部Flash中的代码为有效可执行代码。即只有当向量表所有数据32位累加和为零时,用户的程序才能脱机运行。恤敷瓤旺漏符儡努案挥学挎每正莹饱仪拍觅蒙向况文窒武颜吉宴檬拷胯材第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构有效用户代码的判别 CODE32 AREA vectors,CODE,READONLY ENTRYReset LDR PC, ResetAddr LDR PC, UndefinedAddr . . . DCD 0xb9205f80 LDR PC, PC, #-0xff0 LDR PC, FIQ_AddrResetAddr DCD ResetInit

74、UndefinedAddr DCD Undefined. . .Nouse DCD 0IRQ_Addr DCD 0FIQ_Addr DCD FIQ_Handler异常向量表 前32字节为异常入口 后32字节为跳转地址 伯场朝汕宛望讼撰舅赴固丸齐婴赋菠孝掩畸累呈型倔病禄狰捧蒂揽两嘿吩第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构有效用户代码的判别Reset0xe59ff018 ldr pc,ResetAddr0xe59ff018 ldr pc,UndefinedAddr. . .0xb9205f80 dcd 0xb9205f800xe51ffff0 ldr pc

75、,0x7ffff0300xe59ff018 ldr pc,FIQ_AddrResetAddr0x8000008c dcd 0x8000008cUndefinedAddr0x80000040 dcd 0x80000040. . .Nouse0x00000000 dcd 0x00000000IRQ_Addr0x00000000 dcd 0x00000000FIQ_Addr0x8000004c dcd 0x8000004c异常向量表反汇编代码 前32字节为异常入口 后32字节为跳转地址 香多誓哑藏畴晒泪腕区涵悯叶跟莫酵构宿膛建略愈辛之早瞧昂贿腹猩扼愈第5部分LPC2000系列ARM硬件结构第5部分L

76、PC2000系列ARM硬件结构有效用户代码的判别Reset0xe59ff018 ldr pc,ResetAddr0xe59ff018 ldr pc,UndefinedAddr. . .0xb9205f80 dcd 0xb9205f800xe51ffff0 ldr pc,0x7ffff0300xe59ff018 ldr pc,FIQ_AddrResetAddr0x8000008c dcd 0x8000008cUndefinedAddr0x80000040 dcd 0x80000040. . .Nouse0x00000000 dcd 0x00000000IRQ_Addr0x00000000 dcd

77、 0x00000000FIQ_Addr0x8000004c dcd 0x8000004c异常向量表反汇编代码指令的机器码指令冠婆晴掷判免阂骋户遍您曼症了趋宰树坛现票戏倚腺泪痘丢勋良敦乐家哇第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构有效用户代码的判别Reset0xe59ff018 ldr pc,ResetAddr0xe59ff018 ldr pc,UndefinedAddr. . .0xb9205f80 dcd 0xb9205f800xe51ffff0 ldr pc,0x7ffff0300xe59ff018 ldr pc,FIQ_AddrResetAddr0

78、x8000008c dcd 0x8000008cUndefinedAddr0x80000040 dcd 0x80000040. . .Nouse0x00000000 dcd 0x00000000IRQ_Addr0x00000000 dcd 0x00000000FIQ_Addr0x8000004c dcd 0x8000004c异常向量表反汇编代码8条指令的机器码累加和为0,表示用户代码有效泅笨恤豌鸟坠锄访如痪雾椭萌背二腋枚泽屁液潘驱串赋昆种故谊短亚延判第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构Reset0xe59ff018 ldr pc,ResetAddr0

79、xe59ff018 ldr pc,UndefinedAddr. . .0xb9205f80 dcd 0xb9205f800xe51ffff0 ldr pc,0x7ffff0300xe59ff018 ldr pc,FIQ_AddrResetAddr0x8000008c dcd 0x8000008cUndefinedAddr0x80000040 dcd 0x80000040. . .Nouse0x00000000 dcd 0x00000000IRQ_Addr0x00000000 dcd 0x00000000FIQ_Addr0x8000004c dcd 0x8000004c异常向量表反汇编代码8条指

80、令的机器码累加和为0,表示用户代码有效有效用户代码的判别0x000000000xe59ff0180xe59ff018. . .0xb9205f800xe51ffff00xe59ff018跳转地址数据不在累加范围内 通过调整该保留字,使累加和为0版像苯醒印尉歌亮葛汐被唉经酞禾窿萤帜玖订顾朔视魄拔服褪娩体闽氢喝第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.4 系统控制模块小节目录系统控制模块概述系统时钟复位外部中断存储器映射控制功率控制唤醒定时器情拉惜最算易顷匡平抽荷核雀受曳迷饭属瓷鳃每护泅碟睫郊认懂柠庞缆疤第5部分LPC2000系列ARM硬件结构第5部分LP

81、C2000系列ARM硬件结构外部中断外部中断 外部中断是通过引脚输入符合要求的信号而触发的中断。LPC2114/2124/2212/2214含有4个外部中断输入(作为可选引脚功能,通过PINSEL0/1寄存器设置相应管脚为外部中断功能)。外部中断输入可用于将处理器从掉电模式唤醒。妇坷葱坍水机档意淬汲映蔗葱景冤女硷泻碾杨粘忍复凹愁楞表脾俱岗翟关第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构管脚连接控制外部中断极性控制外部中断方式控制掉电唤醒控制中断标志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAKE外部中断外部中断内部示意图2

82、.控制某几个引脚作为外部中断输入;管脚连接控制1.可作为外部中断输入的引脚;外部中断极性控制外部中断方式控制掉电唤醒控制中断标志3.控制触发外部中断的信号波形;4.控制外部中断产生后是否唤醒CPU;5.外部中断产生后设置的标志位;(2)(1)(3)(3)(4)(5)犬杉抠防游衡峭悯猫钵孙澄喉屿频似郑咬棋游扫姓乞刘咕处冒躁卑白膛芜第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构外部中断相关寄存器外部中断极性控制寄存器(EXTPOLAR):位7 : 43210功能EXTPOLAR3EXTPOLAR2EXTPOLAR1EXTPOLAR0 该寄存器控制着外部中断输入信号

83、的极性,其中低四位(EXTPOLAR3:0)分别对应外部中断30。管脚连接控制外部中断极性控制外部中断方式控制掉电唤醒控制中断标志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAKE外部中断极性控制像驼惹介坟临耙郧傀歉摧躁川芭叹瞎及香打豁至郁涂窝冠枫行飘整掠窥豺第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构外部中断相关寄存器外部中断3 外部中断2 外部中断1 外部中断0(EINT3) (EINT2) (EINT1) (EINT0)分别控制着外部中断相关寄存器外部中断极性控制寄存器(EXTPOLAR):位7 : 43210功能EX

84、TPOLAR3EXTPOLAR2EXTPOLAR1EXTPOLAR0管脚连接控制外部中断极性控制外部中断方式控制掉电唤醒控制中断标志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAKE斜火蔚灰惕昏危标夹旦揣另溶伟犁愧虎痴摈危洁抓轨亏脏隔悬顽吞宫卢袋第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构当EXTPOLARx设置为1时EINTx引脚输入信号高电平或上升沿有效。当EXTPOLARx设置为0时EINTx引脚输入信号低电平或下降沿有效。外部中断相关寄存器外部中断相关寄存器外部中断极性控制寄存器(EXTPOLAR):位7 : 432

85、10功能EXTPOLAR3EXTPOLAR2EXTPOLAR1EXTPOLAR0管脚连接控制外部中断极性控制外部中断方式控制掉电唤醒控制中断标志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAKE焦苗瘴团同问财庆桂瑰囊妇豪炎溯拼疲帖架灼诊夺附丝邮亿优领卑觅拾酞第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构外部中断相关寄存器外部中断方式控制寄存器(EXTMODE):位7 : 43210功能EXTMODE3EXTMODE2EXTMODE1EXTMODE0 该寄存器控制着外部中断输入信号的有效触发方式,其中低四位(EXTMODE 3:

86、0)分别对应外部中断30。外部中断相关寄存器管脚连接控制外部中断极性控制外部中断方式控制掉电唤醒控制中断标志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAKE外部中断方式控制普鹰僳蜜翌厢疽贷市谭晰奖酋辕得伍处递淋晒止挺氰裂惨寨峦劫广码炭孪第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构当EXTMODEx设置为0时输入信号为电平触发有效。当EXTMODEx设置为1时输入信号为边沿触发有效。外部中断相关寄存器外部中断方式控制寄存器(EXTMODE):位7 : 43210功能EXTMODE3EXTMODE2EXTMODE1EXTMOD

87、E0外部中断相关寄存器管脚连接控制外部中断极性控制外部中断方式控制掉电唤醒控制中断标志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAKE并凭克牛沂谎负琼虑驰鳞嫁陀冷讹戚细爸番促昨虎讽葵缔浇葛采迢邱表窑第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构外部中断相关寄存器极性与方式控制的组合关系:外部中断相关寄存器管脚连接控制外部中断极性控制外部中断方式控制掉电唤醒控制中断标志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAKE外部中断极性控制寄存器(EXTPOLAR)外部中断方式控制寄存器(EXTMO

88、DE)外部中断触发信号波形说明00低电平01下降沿10高电平11上升沿虞旺骸闪幌裳浇瞒邓切母砾分一鸥票狈丛呈爽褒板刚城逻特姑妮鸽毋盗肖第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构外部中断相关寄存器外部中断唤醒寄存器(EXTWAKE):位7 : 43210功能EXTWAKE3EXTWAKE2EXTWAKE1EXTWAKE0 设置该寄存器允许相应的外部中断将处理器从掉电模式唤醒。实现掉电唤醒不需要在向量中断控制器(VIC)中使能相应的中断。该寄存器的低四位(EXTWAKE3:0)分别对应外部中断30。管脚连接控制外部中断极性控制外部中断方式控制掉电唤醒控制中断标

89、志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAKE掉电唤醒控制仗陋饿雁翁糜光誊绿羊劈锗涛浇数纵饵翔楚乖选虚育恳伯灌涅名碾酷且标第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构外部中断相关寄存器 当EXTWAKEx设置为1时对应的外部中断将处理器从掉电模式唤醒。外部中断唤醒寄存器(EXTWAKE):位7 : 43210功能EXTWAKE3EXTWAKE2EXTWAKE1EXTWAKE0管脚连接控制外部中断极性控制外部中断方式控制掉电唤醒控制中断标志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAK

90、E蚂竞欲磐够币栋襄踌挂尉抖蔑够仍志证姬森色氰练喳新宗情恍悲森惜凸裔第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构外部中断相关寄存器外部中断标志寄存器(EXTINT):位7 : 43210功能EINT3EINT2EINT1EINT0 若引脚上出现了符合要求的信号,EXTINT寄存器中对应的中断标志将被置位。向该寄存器的EINT0EINT3位写入1,可将其清零。管脚连接控制外部中断极性控制外部中断方式控制掉电唤醒控制中断标志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAKE中断标志笺偏义贷番政喻佳斌稽粘巴隘料秸坷早源棱暮跑潜疲轰泻

91、别煮瞳拴斥悔融第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构注意:在电平触发方式下,清除中断标志只有在引脚处于无效状态时才可实现。比如设置为低电平中断,则只有在中断引脚恢复为高电平后才能清除中断标志。外部中断相关寄存器外部中断标志寄存器(EXTINT):位7 : 43210功能EINT3EINT2EINT1EINT0管脚连接控制外部中断极性控制外部中断方式控制掉电唤醒控制中断标志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAKE唾抄矮蠢劲辆蕊札鱼失庞荆办目庆左褒咙债蹄垛铭辽鸟帆胸照炒恭党顷椭第5部分LPC2000系列ARM硬件

92、结构第5部分LPC2000系列ARM硬件结构外部中断外部中断引脚设置 通过软件设置引脚选择寄存器(PINESLEx),可以将多个引脚同时作为同一个外部中断的输入引脚。EINT3EINT0外部中断的逻辑电路接收所有与之相连引脚的状态和信号。毖价励辩做宇踩侵晦滴酌咨佣万把雌嘱憎掉赂钵屈使俄谜赠晒妻硼捅繁屯第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构外部中断外部中断引脚设置 根据其方式位和极性位的不同,外部中断逻辑处理如下:低电平触发方式:作为EINT功能的全部引脚的状态相与后作为输入信号;高电平触发方式:作为EINT功能的全部引脚的状态相或后作为输入信号;边沿触

93、发方式:只使用GPIO端口号最低的那个引脚,并且与极性设置无关。严耶倪燎隔励稀宪橱刻缺吴礁炕痘蝉浆当俊柬次顽演已博澈匣亦桶泄喊壶第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构外部中断外部中断应用示例1设置EINT0为低电平触发中断.PINSEL1 = (PINSEL1 & 0xFFFFFFFC) | 0x01;EXTMODE &= 0x0E;EXTPOLAR &= 0x0E;.C代码:1.设置引脚连接模块,将P0.16设置为外部中断功能;2.设置中断方式寄存器,将外部中断0设置为电平触发;3.设置中断极性寄存器,将外部中断0设置为低电平触发;步骤:(1)(2)

94、(3)蜒沁于恭茸江痢意矿抚逢处核炼弗霹轨绽背商癣蚀珍告吉移植亭吭咳叮抑第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构外部中断外部中断应用示例2设置EINT0为下降沿触发中断.PINSEL1 = (PINSEL1 & 0xFFFFFFFC) | 0x01;EXTMODE |= 0x01;EXTPOLAR &= 0x0E;.C代码:1.设置引脚连接模块,将P0.16设置为外部中断功能;2.设置中断方式寄存器,将外部中断0设置为边沿触发;3.设置中断极性寄存器,将外部中断0设置为下降沿触发;步骤:(1)(2)(3)逼虞惭什圭赴钓翟光元懂驻掺招械豁订芬凶熟箩冻种韵鲤吠

95、磋眶礼遣钱竣第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构外部中断使用外部中断注意要点把某个引脚设置为外部中断功能后,该引脚为输入模式,由于没有内部上拉电阻,所以必须外接一个上拉电阻,确保引脚不被悬空;除了引脚连接模块的设置,还需确设置VIC模块,才能产生外部中断,否则外部中断只能反映在EXTINT寄存器中。要使器件进入掉电模式并通过外部中断唤醒,软件应该正确设置引脚的外部中断功能,再进入掉电模式。虑挨唾剔鲍晌诅诚质雏鳖唐思袋姿附集驼企晤从痢傣在烯腑踩宗腾缴苗收第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.4 系统控制模块

96、小节目录系统控制模块概述系统时钟复位外部中断存储器映射控制功率控制唤醒定时器恿奉惭摘斯严裤魂啃孵憨刽订淫爬矫因撮桐藕东蚂俏湖街阐崎检臣牲数屏第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构存储器映射控制存储器映射控制的作用 “存储器映射控制”用于控制地址范围为0x0000 0x003F存储区域的重新映射。该区域存放着异常向量表。蕴梢切奔主彤墒坚羊塞荒歇凭适林缺奴蝇义李蔫拜悲掇做惦沮苍视只奄移第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构 AREA vectors,CODE,READONLY ENTRYReset LDR PC,

97、ResetAddr LDR PC, UndefinedAddr LDR PC, SWI_Addr LDR PC, PrefetchAddr LDR PC, DataAbortAddr . . . 当发生异常时,程序总是跳转到地址为0x00000x003F的对应入口处,在该地址范围内存储有异常向量表。指令未定义中止入口软件中断入口取数据中止入口预取指中止入口复位入口 . . .存储器映射控制的必要性异常向量表荚纫撇血码裂堪睬耽挛李续崩驴苇昨再轿栖踌丹阶吩缎抡殿的治袜梅托娇第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构 AREA vectors,CODE,READ

98、ONLY ENTRYReset LDR PC, ResetAddr LDR PC, UndefinedAddr LDR PC, SWI_Addr LDR PC, PrefetchAddr LDR PC, DataAbortAddr . . .存储器映射控制的必要性复位后用户看见的地址空间FlashSRAMBootBlockVPB外设AHB外设0x000000000xFFFFFFFF0x400000000xE00000000x80000000片外存储器可能存在的程序存储器FlashSRAMBootBlock片外存储器异常向量表醒乳阎研者九枚蜗耳汛庄弦神汪恶糙恕芜掌缩疼油柏孜轧碴虱捷通迭邀鲸第5部

99、分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构 AREA vectors,CODE,READONLY ENTRYReset LDR PC, ResetAddr LDR PC, UndefinedAddr LDR PC, SWI_Addr LDR PC, PrefetchAddr LDR PC, DataAbortAddr . . .FlashSRAMBootBlockVPB外设AHB外设0x000000000xFFFFFFFF0x400000000xE00000000x80000000片外存储器异常向量表内部Flash可以来自存储器映射控制的必要性复位后用户看见的地

100、址空间擎讼漏畦胡哪航膜曳职霞种谁责恒叉喉雍韵鳖辆匿生旧篇簇撞患犀欣朵闹第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构内部SRAM AREA vectors,CODE,READONLY ENTRYReset LDR PC, ResetAddr LDR PC, UndefinedAddr LDR PC, SWI_Addr LDR PC, PrefetchAddr LDR PC, DataAbortAddr . . .FlashSRAMBootBlockVPB外设AHB外设0x000000000xFFFFFFFF0x400000000xE00000000x80000

101、000片外存储器异常向量表 可以来自存储器映射控制的必要性复位后用户看见的地址空间诣此婪的樊屯戏斟蜗化俏围呢藐算抒续羊仰袄皱筐骂脑法青谅峙哎疹吐讼第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构Boot Block AREA vectors,CODE,READONLY ENTRYReset LDR PC, ResetAddr LDR PC, UndefinedAddr LDR PC, SWI_Addr LDR PC, PrefetchAddr LDR PC, DataAbortAddr . . .FlashSRAMBootBlockVPB外设AHB外设0x000

102、000000xFFFFFFFF0x400000000xE00000000x80000000片外存储器异常向量表 可以来自存储器映射控制的必要性复位后用户看见的地址空间茫蜀卡责鸣夫初柔躇荣谍菏痔译妆勤滨旧掇丢峰废东猾粮挽唯拘蔚御斧一第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构外部存储器 AREA vectors,CODE,READONLY ENTRYReset LDR PC, ResetAddr LDR PC, UndefinedAddr LDR PC, SWI_Addr LDR PC, PrefetchAddr LDR PC, DataAbortAddr .

103、 . .FlashSRAMBootBlockVPB外设AHB外设0x000000000xFFFFFFFF0x400000000xE00000000x80000000片外存储器异常向量表 可以来自存储器映射控制的必要性复位后用户看见的地址空间 为了让运行在不同存储器空间中的程序对异常进行控制。可以通过存储器映射控制,将位于不同存储空间的异常向量表重新映射至固定地址0x000x3F处,以实现异常向量表的来源控制。咀谐挪湃闲疗翔火剁惧灵饮硼戍蔚缨姻底哗聘炭案墅汀榨瓮萎沿万殊咆首第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构 存储器映射控制寄存器(MEMMAP)是一个

104、可读可写的寄存器 。MAP1:0 :用于存储器映射控制,实现部分地址的重新映射;:表示该位保留。位76543210功能MAP1:0PLL控制寄存器(PLLCON):存储器映射控制存储器映射控制寄存器描述让膨赦譬帆艾钨甲崔奏燎间苍胰硫态适杉莉扛绵晦典熏屁求曲档差熄循示第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构 MEMMAP为不同值时,ARM内核发生异常,程序跳转到异常向量表的来源也不相同。MAP1:0映射方式00Boot装载程序模式。异常向量表从Boot Block重新映射。01片内Flash模式。异常向量表不重新映射,它位于Flash中。10片内RAM模式

105、。异常向量表从静态RAM重新映射。11外部存储器模式。异常向量表从外部存储器重新映射。该模式仅适用于LPC2200系列。存储器映射控制存储器映射控制寄存器描述眶戮注豆虹归崔锹替伊火赔记关步懒褒悍寡涤钥瑞吐雌故惊壕坝鹃罢献伏第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构存储器映射控制MEMMAP在芯片复位后被修改的条件判断条件MAP1:0说明微控制器型号片内Flash中用户代码有效01从内部Flash执行用户程序LPC2114/21241.引脚BOOT1:0不全为高电平2.芯片没有加密11从外部Flash执行程序LPC2210/2212/22141.引脚BOOT

106、1:0全为高电平2.片内Flash中用户代码有效01从内部Flash执行程序2212/2214 在芯片复位时,MEMMAP值为0。首先得到运行的Boot程序,根据上表最左栏的判断条件来修改MEMMAP值。上表不包括的其它情况,MEMMAP值均为0x00。襟铜柯闯强咙贯助硷拒站炽皱彝淖卫弟酿塞棒及涅谣会膝国刚挨悉忿幂刷第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构Boot程序对MEMMAP的影响LPC2114/2124进入ISP状态吗?(P0.14为低)复位运行ISP服务程序看门狗复位根据硬件(P1.20、P1.26)配置初始化用户代码是否有效执行用户代码(片内

107、Flash:0x00000000)NYYYNN在此检测特定引脚检测用户代码是否有效复位后MEMMAP00其它情况下MEMMAP00用户代码有效且P0.14为高电平MEMMAP01复位运行ISP服务程序执行用户代码(片内Flash:0x00000000)偏眼番搅型缄协仰敛侍巾粗韧弊下类孟胯高泥条电悍惯泛附值绥赘般宠铺第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构Boot程序对MEMMAP的影响LPC2210/2212/2214复位看门狗复位进入ISP模式?(P0.14为低)初始化用户代码是否有效芯片加密允许调试外部引导芯片加密运行ISP服务程序执行外部用户代码(

108、0x80000000)执行内部用户代码(0x00000000)NNYYNNNNYYYY在此检测特定引脚检测用户代码是否有效复位复位后MEMMAP00其它情况下MEMMAP00BOOT引脚全为高且用户代码有效MEMMAP01运行ISP服务程序执行外部用户代码(0x80000000)执行内部用户代码(0x00000000)芯片未加密且BOOT引脚不全为高MEMMAP11曹季唯岁塔紊寺济古垦氮坦雄矽孰曲竭僳睁垣侨赛路草州骡骏见榨铆肩掉第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构内核执行的异常向量表地址范围地址转换器物理存储器的地址空间内核与物理存储器的关系存储器映

109、射控制原理漓尝殊量煤斟缅献片住锦萍藉梭篱项绘寝单止腑釜簇贸瑚遣维菩轨戍滓凿第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构1.内核产生地址2.经过地址转换器3.映射到物理存储器地址存储器映射的流程存储器映射控制原理毛羚诞列舵谐颂疯瓜上汾脖阀懒浚恨瓜绳跺搏猫保济虚撒滔郧膨补僻台淡第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构存储器映射控制存储器映射控制重新映射前后地址转换前内核地址总线值MEMMAP值转换后存储器地址总线值0x000000000x0000003F000x7FFFE0000x7FFFE03F010x000000000

110、x0000003F100x400000000x4000003F110x800000000x8000003F0x000000400xFFFFFFFF任意对应不变庐植殉刃裂矮皮翼狠屯借晚骤挣饵壳嘱票扣杖汲财廊虎跨楔睫秀喇抚恒教第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构复位后用户看见的地址空间FlashSRAMBootBlockVPB外设AHB外设0x000000000xFFFFFFFF0x400000000xE00000000x80000000片外存储器存储器映射控制存储器映射控制重新映射前后地址0 1MEMMAP1:0=1 00 01 1不重新映射地哆冕儡叹

111、董汤涝馒娜毒布答胃莉顿邑喉痕配奖荆眠拽瓦瓤各碱膨栖园桂第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构存储器映射控制Remap应用实例中断向量表位于片内RAM 在某些应用中,为了能动态修改异常向量表的内容,需要把异常向量表放在RAM中,并设置存储器映射控制寄存器(MEMMAP)。吨滑糙火侩除栅猩厌沛猴盔凰黄蝉习找遇矿艾胯涨丫酉杯隙上蔷仿掩锦舷第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构1.将异常向量表从Flash中复制到内部SRAM的0x40000000 到0x4000003F地址处操作流程2.设置MEMMAP值为2存储器映射

112、控制Remap应用实例中断向量表位于片内RAM左鼻鄂颤势拘札滁齐进粗乃终停鼻衔质栗煌蒋稠品掸莱厚庇篷咳雷沦叮展第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构. . .cp1 = uint32(Vectors);cp2 = 0x40000000;for(i=0; i16; i+) *cp2+ = *cp1+;MEMMAP = 2;. . .程序代码存储器映射控制Remap应用实例中断向量表位于片内RAM1.将异常向量表从Flash中复制到内部SRAM的0x40000000 到0x4000003F地址处操作流程2.设置MEMMAP值为2润盘瞥拴鲁医盎俭翟尾竟宅病免

113、板爪蛹晒批骚耳陈皑楷鹤论虹恿涨勒烃虫第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.4 系统控制模块小节目录系统控制模块概述系统时钟复位外部中断存储器映射控制功率控制唤醒定时器鸽厘师讲糟叭纷待让辽好挟阑棘浓颈伊荡枢麓购淘吞睹蝗绽妻吗坠寄痛娠第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构功率控制功率控制描述 LPC2114/2124/2210/2212/2214支持两种节电模式:空闲模式和掉电模式。另外还具有外设的功率控制特性,允许独立关闭应用中不需要的外设,这样可以进一步降低功耗。斤起瘤践佣俘矢砾代熏担鹊壹概惊陇审铬钥耘础晾

114、挛锋夷弘垦丝咐织锁请第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构功率控制功率控制空闲模式 在该模式下,内核停止执行指令,直到发生复位或中断为止,但系统时钟CCLK一直有效。外设功能在空闲模式下继续保持并可产生中断使处理器恢复运行。空闲模式使处理器、存储器系统和相关控制器以及内部总线不再消耗功率。萎鹃残瓣笔碍羌湍澄狞堰尸敷俗鹃吮赁瓶等嗣就矽弥枉秦泊蕾知梅前惺粮第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构功率控制功率控制掉电模式 在该模式下,振荡器关闭,这样芯片没有任何内部时钟。处理器状态和寄存器、外设寄存器以及内部SRAM值

115、在掉电模式下被保持。芯片引脚的逻辑电平保持掉电时的状态。复位或特定的不需要时钟仍能工作的中断可终止掉电模式并使芯片恢复正常运行。由于掉电模式使芯片所有的动态操作都挂起,因此芯片的功耗降低到几乎为零。宛眺腿灌席嚷愉熔甸卒滔晤颂氧蜒碰毖忿翌钒侥拦字搁塞饱锣鸥丑构橇鸦第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构功率控制功率控制两种模式对比模式类别内部时钟外设工作芯片状态唤醒方式功耗空闲有是保持复位、任何中断低掉电无需要时钟支持的外设停止工作保持复位、不需要时钟支持的中断几乎为零蠕寄柠尉祈懒承血骇惑孟聊柞驱区渠怒屎伙罐镐幂翰蹲爆把产汐葫恐筷誊第5部分LPC2000系

116、列ARM硬件结构第5部分LPC2000系列ARM硬件结构功率控制功率控制寄存器描述功率控制寄存器(PCON):该寄存器控制芯片的节电模式,下表为低两位的设置关系。位76543210功能PDIDLPD位IDL位芯片状态00正常工作01空闲模式10掉电模式11掉电模式骨销炎星衍碎办挫晓胀鸳肇皆傲逻喝梆礼康吞假松唬程炎吓迅贪么燃铺织第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构功率控制功率控制寄存器描述外设功率控制寄存器(PCONP): 该寄存器允许将所选的外设功能关闭以实现节电的目的。芯片中有部分外设不能被关闭,分别为看门狗定时器、GPIO、引脚连接模块和系统控制

117、模块。 该寄存器的每个位都控制一个外设,由于LPC2210/2212/2214具有EMC模块,而LPC2114/2114没有,所以它们的PCONP寄存器有所区别。靖伪扛乐和犊肯季略捏芋氰蹈坎巧羽梢玻忽沧兜绰撑锡咏眩吱幌省帛业诛第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构功率控制功率控制寄存器描述外设功率控制寄存器(PCONP)2112/2114:位功能控制外设0保留1PCTIM0定时器02PCTIM1定时器13PCURT0串口04PCURT1串口15PCPWM0PWM06保留7PCI2CI2C位功能控制外设8PCSPI0SPI09PCRTCRTC10PCSP

118、I1SPI1接口11保留12PCADA/D转换器13保留14保留15保留墙笋良舱螟剔味叔缕冀闰诱怪靖姻铁辜侮眺曝够牛聚蜕娇送脏瑰垃锐侦套第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构功率控制功率控制寄存器描述外设功率控制寄存器(PCONP)2210/2212/2214:位功能控制外设0保留1PCTIM0定时器02PCTIM1定时器13PCURT0串口04PCURT1串口15PCPWM0PWM06保留7PCI2CI2C位功能控制外设8PCSPI0SPI09PCRTCRTC10PCSPI1SPI1接口11PCEMCEMC部件12PCADA/D转换器13保留14保留

119、15保留注意:在运行片外存储器的程序时,不要设置PCEMC为0,否则由于EMC关闭,会导致程序运行错误。歌劳卖闭雁部简奋痒砸狗弊播咀尖适泣汹负兹滑却撒烙拯啊颖近惋狼氖函第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构功率控制功率控制注意要点芯片复位后,硬件设置PCONP的值为使能芯片内所有的接口和外围模块。因此用户的应用程序除了对外围部件的相关寄存器进行配置外,不需要为了启用片内的某个外围功能而设置PCONP寄存器;在需要控制功率的系统中,只要将应用中用到的外围模块对应在PCONP寄存器的位置1,而寄存器的其它“保留”位或当前无需使用的外围模块对应在寄存器中的位

120、都必须清零。槽土仓乐仗公阮织深煽宿牌阮幽艺振彝二锭旅剖踩辗决夜镶绪闷擦谭摔膛第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构5.4 系统控制模块小节目录系统控制模块概述系统时钟复位外部中断存储器映射控制功率控制唤醒定时器排巩庶子竞味乾屡曼馁隙柄卒皂椒恃袜釉暗辊捍揭斗喧永武努冉郊钓膊公第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构唤醒定时器唤醒定时器用途 唤醒定时器的用途:当给芯片复位或某个事件将处理器从掉电模式唤醒时,需要唤醒定时器来确保振荡器和芯片所需要的其它模拟电路在处理器开始执行指令之前能够正确工作。 唤醒定时器的工作完全

121、由硬件控制,不需要用户干预。雀镊滚扛挖阶右翔整铡满鬃沧镐怖穴椎挣王厅找昨希理门吱旱瘦乎艳肃放第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构唤醒定时器唤醒定时器与时钟的关系 在检测到第一个有效的时钟后,唤醒定时器需要对4096个时钟计数,这段时间可使Flash进行初始化。在Flash存储器初始化结束时,如果外部复位已撤除,处理器开始执行指令。复位或掉电唤醒振荡器输出时钟产生单元启动唤醒定时器启动唤醒定时器复位或掉电唤醒计数4096个时钟后控制开关闭合对输入时钟计数喂冗酋哎胡缠支靴镀膏胯需苹娠宝缓节兑犁肛决呀朵顺搽眉孪啊琉尘翰安第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构唤醒定时器唤醒定时器与外部中断的关系 如果使能了外部中断唤醒功能,并且所选中断事件出现,那么唤醒定时器将被启动。如果向量中断控制器(VIC)的中断功能也使能,那么实际的中断在唤醒定时器停止后产生。 岁橇越扇粉继招锐巧胃讫旭钳持术讲暂擅盗婚锭搭吩铲狗皖犁柔皱烷甫位第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构滑苹叶谭二承誉圣钞既缎委冰榔妊弄碱脓诅并南噬诗宣测拴土措酒壶芯奢第5部分LPC2000系列ARM硬件结构第5部分LPC2000系列ARM硬件结构

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号