查看: 445|回复: 0

[分享] LPC800前生今世 第二章-系列总览

[复制链接]
回帖奖励 60 NXP金币 回复本帖可获得 10 NXP金币奖励! 每人限 1 次
  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3301

    主题

    6548

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32040
    最后登录
    2024-4-28
    发表于 2023-10-10 09:23:08 | 显示全部楼层 |阅读模式
    LPC800前生今世 第二章-系列总览

    LPC800系列总览

    前面一章已经简要地介绍了LPC800的基本特性和系列中各产品之间的对比。本章将通过框图的形式,给出更详细的配置信息,并引导读者从框图中捕捉到有用的信息。

    LPC81x和LPC82x系统框图
    系统框图是快速了解MCU产品的最佳途径,当接触一个新型号的产品时,一般第一个要求就是看系统框图。系统框图中不但给出了芯片中功能模块的配置信息,而且读者往往可以从框图中各个模块所摆放的位置,以及它们之间的关系,解读出很多有用甚至关键的信息
    下面先展示一下LPC81x/82x的框图,然后再进行一些解读。
    11.png
    图1.LPC81x系统框图

    12.png
    图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系统框图
    LPC83x的框图与LPC82x的框图非常相像,如果仔细比较就会发现以下一些差别,这些差别也反映在了上一章的对照表中:

    ■LPC83x没有模拟比较器。
    ■LPC83x中配置的USART和I2C数量较少
    ■LPC83x的RAM容量较小
    细心的读者可以从用户手册的存储器地址空间的分配表中,看到更加详细的差别来。下面是LPC83x的存储器空间分配图的片段。
    13.png
    图3.LPC83x存储器地址空间分配图(片段)

    14.png
    图4.LPC83x系统框图

    当然,细心的读者也注意到了,LPC83x的适用工作温度范围是-40°C ~ +85°C,LPC81x/LPC82x和LPC84x的适用工作温度范围扩大到-40°C ~ +105°C。

    LPC84x系统框图

    LPC84x相较前面几个系列做了很大的扩充,整体的结构没有变,存储器变大了,增加了一些新的外设,引脚数目也增加了很多,使得她的应用范围更广,功能更灵活。

    LPC84x的数据手册和用户手册中,在框图的画法上换了一种风格,这样画更强调功能性以及模块的配置。同时在这个框图中,可以比前面几个系列的框图更直观地看到AHB总线矩阵的连接方式,读者可以更清晰地了解系统运行时的性能。
    15.png
    图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系统框图。
    16.png
    图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系统框图

    在本书即将完成之际,恩智浦又发布了一个新的子系列——LPC80x,分别有LPC802和LPC804两种配置,及多种封装形式,详见表1(见第一章)。

    下面是LPC 802和LPC804的框图,此处不多做解释,读者可以结合前面几个子系列的框图,对照比较之后就能够看出区别来。
    17.png
    图7.LPC802系统框图

    18.png
    图8.LPC804系统框图

    图中可以明显看出LPC804是LPC802的增强版,增加了电容触摸接口、可编程逻辑单元(PLU)、增加了10位的DAC输出、增加了一个I2C接口,存储器容量也增加了一倍,性价比更高了。

    LPC86x系统框图

    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和电容触摸等功能。
    19.png
    图9.LPC86x配置框图


    上一篇:LPC800前生今世 第一章-概述


    签到签到
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-29 04:12 , Processed in 0.137024 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表