LPC800系列总览
前面一章已经简要地介绍了LPC800的基本特性和系列中各产品之间的对比。本章将通过框图的形式,给出更详细的配置信息,并引导读者从框图中捕捉到有用的信息。
下面先展示一下LPC81x/82x的框图,然后再进行一些解读。
图1.LPC81x系统框图
图2.LPC82x系统框图
从上面两个框图中,可以得到以下一些基本信息:
LPC81x与LPC82x在系统架构上是一样的。两者都是使用Cortex-M0+CPU核心,CPU通过AHB轻总线连接片内存储器(包括Flash、SRAM和ROM),同时经AHB至APB的桥接连接访问各种片上外部设备。
GPIO模块与CPU有直接通道,CPU对它的访问不需经过AHB或APB总线。这是Cortex-M0+核心的主要特色之一,可以实现快速的GPIO访问。由于此直接通道,GPIO的最快输入输出速度可以达到CPU时钟速度的1/2,相对于Cortex-M3/M4产品,由于需要通过普通的系统总线,GPIO只能达到CPU时钟速度的1/4,有本质的区别。
框图里可以清晰准确地看出,每个系列的外设配置情况,包括外设的种类、数量、输入输出信号以及信号方向等。这里举几个例子,更详细地看看:
a.LPC81x和LPC82x都具有3个USART模块,每个USART模块都有5个输入输出信号。
b.LPC82x具有4个I2C模块,但LPC81x只有1个I2C模块。
c.LPC82x具有ADC功能,但LPC81x没有。ADC模块最多有12个输入端。
d.两个系列都有SCT定时器,但LPC82x的SCT定时器输入端具有一个“输入选择器”,而LPC81x的输入端是与外界(通过开关矩阵)直接相连。
我们知道CPU访问AHB上的设备的速度要快于访问APB上的设备,优先级也较高。从框图中可以看到所有的外设,包括系统配置(SYSCON)和输入输出配置(IOCON)寄存器组,都是连接到APB总线,而SCT定时器却是连接到AHB总线上,这样的安排是为了保证可以更快地操控SCT。
LPC82x具有DMA控制器,它连接到AHB总线上。LPC81x不具备DMA控制器。框图中灰色框所标示的设备,能够触发或请求DMA传输。
所有功能模块的对外连接,都是通过“开关矩阵”实现的。
两个系列分别有18或29个连接到开关矩阵的输入输出引脚,同时具有18或29个GPIO输入输出信号线。后面的开关矩阵(SWM)章节会详细介绍,GPIO模块的输入输出信号是如何通过开关矩阵连接到外部引脚的。
在芯片中,每一个功能模块都相对独立,它们通过一些功能信号与其它模块连接互动;这些功能信号除了供电、时钟、中断是每个模块都需要的以外,就是连接到AHB或APB总线上的总线信号(包括地址、数据和控制信号等),CPU通过总线信号访问功能模块的寄存器组,实现配置和控制以及数据交换。在框图中,每个功能模块靠近总线一侧的双箭头标志,就是该模块的总线信号。
对于具有需要连接到外部引脚的信号,框图中用单线箭头标示出该信号的方向,并标注了信号名称。对于没有连接到外部引脚的模块,框图中只画出了它们的总线信号。例如加窗看门狗定时器、多速率定时器、CRC计算器、DMA控制器等模块。
要特别提一下的是IOCON(输入输出配置)这个模块,框图中画出了它与APB总线连接的这一端,这表示CPU通过APB总线访问IOCON的寄存器组,图中没有画出的是IOCON所控制的每一个IO引脚的部分,这部分内容会在IOCON的相关章节中展示。
LPC83x的框图与LPC82x的框图非常相像,如果仔细比较就会发现以下一些差别,这些差别也反映在了上一章的对照表中:
图3.LPC83x存储器地址空间分配图(片段)
图4.LPC83x系统框图
当然,细心的读者也注意到了,LPC83x的适用工作温度范围是-40°C ~ +85°C,LPC81x/LPC82x和LPC84x的适用工作温度范围扩大到-40°C ~ +105°C。
LPC84x相较前面几个系列做了很大的扩充,整体的结构没有变,存储器变大了,增加了一些新的外设,引脚数目也增加了很多,使得她的应用范围更广,功能更灵活。
LPC84x的数据手册和用户手册中,在框图的画法上换了一种风格,这样画更强调功能性以及模块的配置。同时在这个框图中,可以比前面几个系列的框图更直观地看到AHB总线矩阵的连接方式,读者可以更清晰地了解系统运行时的性能。
图5.LPC84x系统框图(功能配置)
上图中的绿色虚线框部分就是AHB矩阵,框中的竖线是两个总线主设备,横线是总线的从设备。主从设备的区分在于,主设备能够主动发起数据传输,并且需要发出读写控制信号和驱动地址信号线,而从设备只能被动地接受地址和控制信号,发送或接收数据。
在AHB矩阵中,共有五组从设备:
默认存储执行指令的Flash闪存和ROM。
第一个8KB的SRAM,此存储区的基本功能是存放程序运行时的数据,也可以用于存储Cortex-M0+核心执行指令的追踪信息,供调试程序用。
第二个8KB的SRAM,此存储区不能用于存放追踪信息。
AHB至APB的桥。
SCT定时器、DMA控制器、CRC计算器、MTB控制器和FAIM控制器。
不同的主设备可以同时访问不在同一组的从设备,例如在CPU从Flash取指令并执行时,DMA控制器可以同时在SRAM中搬移数据;或者在CPU从第一个SRAM区存取数据的同时,DMA控制器在另一个SRAM区存取数据。
处在同一组的从设备,只能按顺序分别被访问。
读者了解了这些内部构造,可以根据自己的需要合理安排程序的执行顺序,最大限度地利用芯片内部的数据通路,实现最佳性能。
在APB总线上,挂了很多设备,图中设备的顺序是按照它们的寄存器组,在存储空间分配的地址顺序排列的。对照用户手册中的存储器地址映像表,可以知道每个APB外设的寄存器组分别占据了16KB的地址空间,看门狗的寄存器组处于所有APB外设地址空间的最低地址。
下面的框图是按照LPC81x/LPC82x/LPC83x的风格,从使用者的视角重画的LPC84x系统框图。
图6.LPC84x系统框图(程序员视角)
与其它几个系列的框图比较,我们可以看出不少新的东西:
更多的Flash和SRAM容量。
FAIM模块。FAIM用于在系统启动时,快速地配置其它模块的初始状态,包括引脚的方向和上拉或下拉,启动时的ISP端口和配置,以及为低功耗而设置的低主频启动等。
定时器CTimer。该32位定时器有四个输入捕获和四个输出匹配信号,但芯片上只引出了三个捕获和三个匹配信号,可以与外部引脚相连。
两个10位DAC模块。
电容触摸按键模块,该模块可以最多连接9个按键,或组合配置为滑条或旋转盘。
从LPC82x最多的29个输入输出引脚,大幅增加到54个引脚,而且所有引脚功能都是经过开关矩阵的配置。
STC定时器的输出信号,比LPC82x/83x增加了一个,达到7个。
模拟比较器的输入端,比LPC81x/82x增加了三个,达到5个。
与前面的框图相比,图8中还可以看到一个“JTAG测试和边界扫描接口”,和一些信号线从“时钟发生器,电源控制”模块引出,这些内容在其它系列里面也有相同的部分存在,只是没有画出来而已。
用于程序追踪调试的MTB存储器和控制接口,在其它系列里也是存在的,同样也没有画在系统框图中。
在本书即将完成之际,恩智浦又发布了一个新的子系列——LPC80x,分别有LPC802和LPC804两种配置,及多种封装形式,详见表1(见第一章)。
下面是LPC 802和LPC804的框图,此处不多做解释,读者可以结合前面几个子系列的框图,对照比较之后就能够看出区别来。
图7.LPC802系统框图
图8.LPC804系统框图
图中可以明显看出LPC804是LPC802的增强版,增加了电容触摸接口、可编程逻辑单元(PLU)、增加了10位的DAC输出、增加了一个I2C接口,存储器容量也增加了一倍,性价比更高了。
LPC86x是2023年NXP发布的新的产品系列。这里在原作者的基础上补充进来。
LPC86x针对LPC84x的基础上做了进一步的优化,针对电机应用移除了CTimer和SCT同时增加了两个FlexTimer用于电机应用,提升了ADC的采样率,优化了ADC和FlexTimer联动机制,增加了新的外设I3C,使得它的应用范围更广,功能更灵活。
LPC86x精简了Switch Matrix的功能,即FlexTimer的相关输入输出功能只能被软件分配到固定的三个外部引脚上去,其余外设的Switch Matrix功能不变。
LPC86x在LPC84x的基础上将SRAM缩减到8kB,减少了USART,I2C的数量,删除了MTB接口,删除了DAC和电容触摸等功能。
图9.LPC86x配置框图
END
更多恩智浦AI-IoT市场和产品信息,邀您同时关注“NXP客栈”微信公众号
NXP客栈
恩智浦致力于打造安全的连接和基础设施解决方案,为智慧生活保驾护航。
长按二维码,关注我们
恩智浦MCU加油站
这是由恩智浦官方运营的公众号,着重为您推荐恩智浦MCU的产品信息、开发技巧、教程文档、培训课程等内容。
长按二维码,关注我们
原文标题:LPC800前生今世 第二章-系列总览
文章出处:【微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。
全部0条评论
快来发表一下你的评论吧 !