《系列ARM简介及GPIO驱动开发.ppt》由会员分享,可在线阅读,更多相关《系列ARM简介及GPIO驱动开发.ppt(30页珍藏版)》请在三一办公上搜索。
1、LPC2000系列ARM硬件结构,Lpc21xx硬件结构及GPIO,4.1 LPC2000系列简介,LPC2000系列微控制器基于ARM7TDMI-S CPU内核。支持ARM和Thumb指令集,芯片内集成丰富外设,而且具有非常低的功率消耗。使该系列微控制器特别适用于工业控制、医疗系统、访问控制和POS机等场合。,简介,LPC2000系列ARM产品,LPC2100系列 LPC2200系列 LPC2300系列 LPC2400系列 LPC2800系列 LPC3000系列(new)LPC1700系列(new)LPC1100系列(new)LPC4074FBD80(cortex-m4),LPC2000系列
2、ARM器件信息,LPC2000系列ARM器件信息,4.1 LPC2100/2200系列简介,器件信息,关于LPC2000其它器件的介绍请登录,芯片内部结构,LPC2000系列微控制器包含4大部分:,4.2 引脚描述,LPC2000系列芯片外形,LPC2210/2220/2212/2214,LPC2114/2124,LQFP-48 LQFP-64 LQFP-144,LPC2xxx系列常见封装,LPC2000系列芯片大小,64PIN,48PIN,144PIN,LPC2000系列芯片大小,引脚配置,引脚功能选择使用示例,LPC2000系列微控制器的引脚一般是多个功能复用,但是同一引脚在同一引脚在同一
3、时刻只能使用其中一个功能,这可以通过设置PINSELx寄存器来选择,详细介绍见“引脚连接模块”小节。,通过PINSEL0控制引脚功能,4.7 引脚连接模块,概述,LPC2000系列微控制器的大部分管脚都具有多种功能,即管脚复用,但是同一引脚在同一时刻只能使用其中一个功能,通过配置相关寄存器控制多路开关来连接引脚与片内外设。,01,10,11,P0.0默认为GPIO功能,P0.0选择TXD0功能,配置对应位为01,P0.0选择PWM1功能,配置对应位为10,P0.0选择保留功能,配置对应位为11,4.7 引脚连接模块,LPC2000系列微控制器具有三个32位宽度PINSEL寄存器,其中PINSE
4、L0和PINSEL1控制端口0,PINSEL2根据芯片的不同控制的端口数量也不同。,寄存器描述,PINSEL2寄存器与外部总线,PINSEL25:4与数据总线和控制线的关系列表,PINSEL227:25与地址线的关系列表,4.7 引脚连接模块,4.7 引脚连接模块,应用示例,PINSEL0=0 x05 16;,要求将P0.8、P0.9设置为TxD1、RxD1 通过查阅PINSE0寄存器设置表,得到P0.9和P0.8的控制位为PINSEL019:16,当该域设置为0101(0 x05)时选择 RxD1和 TxD1。,为了不影响别的管脚连接设置,通常选择下面的设置方法。,PINSEL0=(PINS
5、EL0,GPIO的使用,LPC2000系列ARM硬件结构,GPIO:General Perpose Input&Output通用目的的输入和输出,LPC的GPIO是标准双向端口,4.8 GPIO,引脚描述,LPC2114/2124微控制器具有两个端口P0和P1,可以作为GPIO使用的引脚数为46个。LPC2210/2212/2214微控制器还包含另外两个端口P2和P3,这个两个端口与外部存储器总线复用,当它们全部作为GPIO使用时,GPIO引脚数多达112个。,GPIO与控制寄存器的关系,引脚,GPIO相关寄存器描述,PINSELx,IOxDIR,IOxCLR,IOxPIN,IOxSET,in
6、,out,1,0,GPIO相关寄存器描述IOxPIN,该寄存器反映了当前引脚的状态。IOxPIN中的x对应于某一个端口,如P1口对应于IO1PIN。所以芯片存在多少个端口,就有多少个IOxPIN分别与之对应。写该寄存器会将值保存到输出寄存器,具体使用稍后介绍。注意:无论引脚被设置为输入还是输出模式,都不影响引脚状态的读出。,PINSELx,IOxDIR,IOxCLR,IOxPIN,IOxSET,in,out,1,0,GPIO相关寄存器描述IOxDIR,当引脚设置为GPIO输出模式时,可使用该寄存器控制引脚的方向。向某位写入1使对应引脚作为输出功能,写入0时作为输入功能。作为输入功能时,引脚处于
7、高阻态。,PINSELx,IOxDIR,IOxCLR,IOxPIN,IOxSET,in,out,1,0,GPIO相关寄存器描述IOxSET,当引脚设置为GPIO输出模式时,可使用该寄存器从引脚输出高电平。向某位写入1使对应引脚输出高电平。写入0无效。从该寄存器读回的数据为GPIO输出寄存器的值。该值不反映外部环境对引脚的影响。,PINSELx,IOxDIR,IOxCLR,IOxPIN,IOxSET,in,out,1,0,GPIO相关寄存器描述IOxCLR,当引脚设置为GPIO输出模式时,可使用该寄存器从引脚输出低电平。向某位写入1使对应引脚输出低电平。写入0无效。注意:读取该寄存器无效,不能读
8、回输出寄存器的值。,4.8 GPIO,使用GPIO注意要点,引脚设置为输出方式时,输出状态由IOxSET和IOxCLR中最后操作的寄存器决定;大部分GPIO输出为推挽方式(个别引脚为开漏输出),正常拉出/灌入电流均为4mA(短时间极限值40mA);复位后默认所有GPIO为输入模式。,#define PINSEL0(*(volatile unsigned long*)0 xE002C000).PINSEL0.,C代码:,PINSEL0,IO0DIR,IO0CLR,IO0PIN,IO0SET,in,out,1,0,GPIO应用示例设置P0.0输出高电平,P0.0,.uint32 PinStat;P
9、INSEL0.,C代码:,PINSEL0,IO0DIR,IO0CLR,IO0PIN,IO0SET,in,out,1,0,GPIO应用示例读取P0.0引脚状态,P0.0,IO0PIN,#define DataBus 0 xFF PINSEL0.,使用IOxSET和IOxCLR实现:,GPIO应用示例输出多位数据至IO口,在需要将多位数据同时输出到某几个IO口线时,通常使用IOxSET和IOxCLR来实现,在某些情况下也可以使用IOxPIN寄存器实现。后者可以在多个IO口上直接输出0和1电平。本例将8位无符号整形变量Data的值输出到P0.0P0.7。,数据输出线:,#define DataBus
10、 0 xFF PINSEL0.,GPIO应用示例输出多位数据至IO口,在需要将多位数据同时输出到某几个IO口线时,通常使用IOxSET和IOxCLR来实现,在某些情况下也可以使用IOxPIN寄存器实现。后者可以在多个IO口上直接输出0和1电平。本例将8位无符号整数变量Data的值输出到P0.0P0.7。,使用IOxPIN实现:,数据输出线:,2.2 ARM7TDMI,简介,ARM7TDMI是基于ARM体系结构V4版本的低端ARM核。其弥补了ARM6很难在低于5V电压下稳定工作的不足,还增加了后缀所对应的功能:,注意:“ARM核”并非芯片,ARM核与其它部件如RAM、ROM、片内外设组合在一起才能构成现实的芯片。,