您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业财务 > 第二次课_lpc系列ARM简介及GPIO驱动开发
LPC2000系列ARM硬件结构Lpc21xx硬件结构及GPIO4.1LPC2000系列简介LPC2000系列微控制器基于ARM7TDMI-SCPU内核。支持ARM和Thumb指令集,芯片内集成丰富外设,而且具有非常低的功率消耗。使该系列微控制器特别适用于工业控制、医疗系统、访问控制和POS机等场合。•简介LPC2000系列ARM产品•LPC2100系列•LPC2200系列•LPC2300系列•LPC2400系列•LPC2800系列•LPC3000系列(new)•LPC1700系列(new)器件型号引脚数片内RAM片内Flash10位AD通道数CAN控制器备注LPC21146416KB128KB4--LPC21246416KB256KB4--LPC221014416KB-8-带外部存储器接口LPC221214416KB128KB8-LPC221414416KB256KB8-LPC21196416KB128KB42-LPC21296416KB256KB42-LPC21946416KB256KB44-LPC229014416KB-82带外部存储器接口LPC229214416KB256KB82LPC229414416KB256KB84LPC2131648KB32KB8--LPC21326416KB64KB8-带1路DACLPC21346416KB128KB双8路-LPC21366416KB256KB双8路-LPC21386432KB512KB双8路-LPC2000系列ARM器件信息子系列芯片型号管脚数目说明LPC210xLPC2101/2102/2103/2104/2105/210648快速GPIOLPC211xLPC2114/2119642119带2路CANLPC212xLPC2124/2129642129带2路CANLPC213xLPC2131/2132/2134/2136/213864单电源供电LPC214xLPC2141/2142/2144/2146/214864USB2.0Device(FULL),单电源供电,快速GPIOLPC219xLPC2194644路CANLPC2210LPC2210/2212/2214144总线开放LPC2220LPC2220144总线开放LPC2290LPC2290/2292/2294144总线开放,带2/4路CANLPC2000系列ARM器件信息4.1LPC2100/2200系列简介•器件信息器件引脚数片内RAM片内Flash10位AD通道数备注LPC2101482KB8KB8LPC2102484KB16KB8LPC2103488KB32KB8LPC21146416KB128KB4-LPC21246416KB256KB4-LPC221014416KB-8带外部存储器接口LPC222014464KB-8LPC221214416KB128KB8LPC221414416KB256KB8关于LPC2000其它器件的介绍请登录看门狗定时器系统控制外部中断TIMER0/1ADC通用I/OPWM0实时时钟SRAMFlashAHB总线ARM7局部总线系统功能VPB总线•芯片内部结构LPC2000系列微控制器包含4大部分:支持仿真的ARM7TDMI-SCPU1与片内存储器控制器接口的ARM7局部总线2与中断控制器接口的AMBA高性能总线(AHB)3连接片内外设功能的VLSI外设总线(VPB)44.2引脚描述•LPC2000系列芯片外形LPC2210/2220/2212/2214LPC2114/2124LQFP-48LQFP-64LQFP-144LPC2xxx系列常见封装LPC2000系列芯片大小64PIN48PIN144PINLPC2000系列芯片大小GPIOTXD0PWM1输出P0.0引脚配置•引脚功能选择使用示例LPC2000系列微控制器的引脚一般是多个功能复用,但是同一引脚在同一引脚在同一时刻只能使用其中一个功能,这可以通过设置PINSELx寄存器来选择,详细介绍见“引脚连接模块”小节。通过PINSEL0控制引脚功能4.7引脚连接模块•概述LPC2000系列微控制器的大部分管脚都具有多种功能,即管脚复用,但是同一引脚在同一时刻只能使用其中一个功能,通过配置相关寄存器控制多路开关来连接引脚与片内外设。引脚P0.0GPIOTXD0PWM1输出保留PINSELx引脚连接寄存器PINSELx1:000011011P0.0默认为GPIO功能P0.0选择TXD0功能,配置对应位为01P0.0选择PWM1功能,配置对应位为10P0.0选择保留功能,配置对应位为114.7引脚连接模块LPC2000系列微控制器具有三个32位宽度PINSEL寄存器,其中PINSEL0和PINSEL1控制端口0,PINSEL2根据芯片的不同控制的端口数量也不同。•寄存器描述寄存器LPC2100LPC2200PINSEL0P0[0:15]PINSEL1P0[16:31]PINSEL2P1[16:31]P1[0:1]、P1[16:31]、P2[0:31]、P3[0:31]•PINSEL2寄存器与外部总线PINSEL2[5:4]与数据总线和控制线的关系列表PINSEL2[27:25]000001010011100101110111地址线宽度无地址线A3:2A5:2A7:2A11:2A15:2A19:2A23:2PINSEL2[27:25]与地址线的关系列表PINSEL2[5:4]数据总线宽度P2.27:15P2.15:8P2.7:0P3.31P3.30P3.29:28P1.1P1.01032位D[31:16]D[15:0]D[7:0]BLS0BLS1BLS3:2OECS00116位PINSEL2[20;22]控制D[15:0]D[7:0]BLS0BLS1PINSEL2[6;7]控制OECS0008位GPIOD[7:0]BLS0GPIOOECS011无GPIOGPIOGPIOGPIOGPIOGPIO4.7引脚连接模块4.7引脚连接模块•应用示例PINSEL0=0x0516;要求将P0.8、P0.9设置为TxD1、RxD1通过查阅PINSE0寄存器设置表,得到P0.9和P0.8的控制位为PINSEL0[19:16],当该域设置为[0101](0x05)时选择RxD1和TxD1。为了不影响别的管脚连接设置,通常选择下面的设置方法。PINSEL0=(PINSEL0&0xFFF0FFFF)|(0x0516);GPIO的使用LPC2000系列ARM硬件结构GPIO:GeneralPerposeInput&Output通用目的的输入和输出,LPC的GPIO是标准双向端口4.8GPIO•引脚描述LPC2114/2124微控制器具有两个端口——P0和P1,可以作为GPIO使用的引脚数为46个。LPC2210/2212/2214微控制器还包含另外两个端口——P2和P3,这个两个端口与外部存储器总线复用,当它们全部作为GPIO使用时,GPIO引脚数多达112个。GPIO与控制寄存器的关系PINSELxIOxDIRIOxCLRIOxPINIOxSETinout10引脚PINSELxIOxDIRIOxCLRIOxPINIOxSETinout10PINSELxIOxDIRIOxCLRIOxPINIOxSETinout10通用名称描述访问类型复位值IOPINGPIO引脚值寄存器,不管方向模式如何,引脚的当前状态都可以从该寄存器中读出只读NAIOSETGPIO输出置位寄存器。该寄存器控制引脚输出高电平读/置位0x00000000IOCLRGPIO输出置位寄存器。该寄存器控制引脚输出低电平只清零0x00000000IODIRGPIO方向控制寄存器。该寄存器单独控制每个IO口的方向读/写0x00000000•GPIO相关寄存器描述PINSELxIOxDIRIOxCLRIOxPINIOxSETinout10•GPIO相关寄存器描述——IOxPINIOxPIN描述复位值31:0GPIO引脚值。IOxPIN[0]对应于Px.0…IOxPIN[31]对应于Px.31引脚未定义该寄存器反映了当前引脚的状态。IOxPIN中的x对应于某一个端口,如P1口对应于IO1PIN。所以芯片存在多少个端口,就有多少个IOxPIN分别与之对应。写该寄存器会将值保存到输出寄存器,具体使用稍后介绍。注意:无论引脚被设置为输入还是输出模式,都不影响引脚状态的读出。PINSELxIOxDIRIOxCLRIOxPINIOxSETinout10•GPIO相关寄存器描述——IOxDIRIOxDIR描述复位值31:0方向控制位。IOxDIR[0]对应于Px.0…IOxDIR[31]对应于Px.31引脚0当引脚设置为GPIO输出模式时,可使用该寄存器控制引脚的方向。向某位写入1使对应引脚作为输出功能,写入0时作为输入功能。作为输入功能时,引脚处于高阻态。PINSELxIOxDIRIOxCLRIOxPINIOxSETinout10•GPIO相关寄存器描述——IOxSETIOxSET描述复位值31:0输出置位。IOxSET[0]对应于Px.0…IOxPIN[31]对应于Px.31引脚0当引脚设置为GPIO输出模式时,可使用该寄存器从引脚输出高电平。向某位写入1使对应引脚输出高电平。写入0无效。从该寄存器读回的数据为GPIO输出寄存器的值。该值不反映外部环境对引脚的影响。PINSELxIOxDIRIOxCLRIOxPINIOxSETinout10•GPIO相关寄存器描述——IOxCLRIOxCLR描述复位值31:0输出清零。IOxCLR[0]对应于Px.0…IOxCLR[31]对应于Px.31引脚0当引脚设置为GPIO输出模式时,可使用该寄存器从引脚输出低电平。向某位写入1使对应引脚输出低电平。写入0无效。注意:读取该寄存器无效,不能读回输出寄存器的值。4.8GPIO•使用GPIO注意要点引脚设置为输出方式时,输出状态由IOxSET和IOxCLR中最后操作的寄存器决定;大部分GPIO输出为推挽方式(个别引脚为开漏输出),正常拉出/灌入电流均为4mA(短时间极限值40mA);复位后默认所有GPIO为输入模式。#definePINSEL0(*((volatileunsignedlong*)0xE002C000))...PINSEL0&=0xFFFFFFFC;IO0DIR|=0x00000001;IO0SET=0x00000001;...C代码:PINSEL0IO0DIRIO0CLRIO0PINIO0SETinout10•GPIO应用示例——设置P0.0输出高电平P0.0(1)设置引脚连接模块,P0.0为GPIO(2)设置P0.0口方向,设置为输出(3)设置P0.0口状态,输出高电平1...uint32PinStat;PINSEL0&=0xFFFFFFFC;IO0DIR&=0xFFFFFFFE;PinStat=IO0PIN;...C代码:PINSEL0IO0DIRIO0CLRIO0PINIO0SETinout10•GPIO应用示例——读取P0.0引脚状态P0.0(1)设置引脚连接模块,P0.0为GPIO(2)设置P0.0口方向,设置为输入(3)从IO0PIN读取引脚状态IO0PIN#defineDataBus0xFFPINSEL0&=0xFFFF0000;IO0DIR|=DataBus;IO0CLR=DataBus;IO0SET=Data;...使用IOxSET和IOxCLR实现:•GPIO应用示例——输出多位数据至IO口(1)设置引脚连接模块,P0.0~7为GPIO(2)设置P0.0口方向,设置为输出(3)清零8位IO口的输出状态在需要将多位数据同时输出到某几个IO口线时,通常使用IOxSET和IOxCLR来实现,在某些情况下也可以使用IOxPIN寄存器实现。后者可以在多个IO口
本文标题:第二次课_lpc系列ARM简介及GPIO驱动开发
链接地址:https://www.777doc.com/doc-3599380 .html