请选择 进入手机版 | 继续访问电脑版
查看: 1515|回复: 3

从系统框图解读LPC800的配置与特性

[复制链接]
  • TA的每日心情
    开心
    2021-12-31 14:33
  • 签到天数: 45 天

    [LV.5]常住居民I

    48

    主题

    131

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1129
    最后登录
    2024-3-29
    发表于 2019-5-31 12:38:56 | 显示全部楼层 |阅读模式
    系统框图是快速了解MCU产品的最佳途径,当接触一个新型号的产品时,一般第一个要求就是看系统框图。


    系统框图中不但给出了芯片中功能模块的配置信息,而且读者往往可以从框图中各个模块所摆放的位置,以及它们之间的关系,解读出很多有用甚至关键的信息。


    不少初学MCU的同学,往往会忽略系统框图的解读,希望大家阅读本文之后,能够掌握这一重要的学习方法。


    LPC81x/82x


    下面先展示一下LPC81x/82x的框图,然后再进行一些解读。
    图1. LPC81x系统框图
    0.1.png
    图2. LPC82x系统框图
    0.2.png
    从上面两个框图中,可以得到以下一些基本信息:


    ① 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,有本质的区别。


    ③ 框图里可以清晰准确地看出,每个系列的外设配置情况,包括外设的种类、数量、输入输出信号以及信号方向等。这里举几个例子,更详细地看看:


    LPC81x和LPC82x都具有3个USART模块,每个USART模块都有5个输入输出信号。


    LPC82x具有4个I2C模块,但LPC81x只有1个I2C模块。


    LPC82x具有ADC功能,但LPC81x没有。ADC模块最多有12个输入端。


    两个系列都有SCT定时器,但LPC82x的SCT定时器输入端具有一个“输入选择器”,而LPC81x的输入端是与外界(通过开关矩阵)直接相连。


    ④ 我们知道CPU访问AHB上的设备的速度,要快于访问APB上的设备,优先级也较高。从框图中可以看到所有的外设,包括系统配置(SYSCON)和输入输出配置(IOCON)寄存器组,都是连接到APB总线,而SCT定时器却是连接到AHB总线上,这样的安排是为了保证可以更快地操控SCT。


    ⑤ LPC82x具有DMA控制器,它连接到AHB总线上。LPC81x不具备DMA控制器。框图中灰色框所标示的设备,能够触发或请求DMA传输。


    ⑥ 所有功能模块的对外连接,都是通过“开关矩阵”实现的。


    ⑦ 两个系列分别有18或29个连接到开关矩阵的输入输出引脚,同时具有18或29个GPIO输入输出信号线。GPIO模块的输入输出信号是如何通过开关矩阵连接到外部引脚的,以后会再做详细介绍。


    在芯片中,每一个功能模块都相对独立,它们通过一些功能信号与其它模块连接互动;这些功能信号除了供电、时钟、中断是每个模块都需要的以外,就是连接到AHB或APB总线上的总线信号(包括地址、数据和控制信号等),CPU通过总线信号访问功能模块的寄存器组,实现配置和控制以及数据交换。在框图中,每个功能模块靠近总线一侧的双箭头标志,就是该模块的总线信号。


    对于具有需要连接到外部引脚的信号,框图中用单线箭头标示出该信号的方向,并标注了信号名称。对于没有连接到外部引脚的模块,框图中只画出了它们的总线信号。例如加窗看门狗定时器、多速率定时器、CRC计算器、DMA控制器等模块。


    要特别提一下的是IOCON(输入输出配置)这个模块,框图中画出了它与APB总线连接的这一端,这表示CPU通过APB总线访问IOCON的寄存器组,图中没有画出的是IOCON所控制的每一个IO引脚的部分,这部分内容会在以后介绍IOCON时再进行展示。


    LPC83x


    LPC83x的框图与LPC82x的框图非常相像,如果仔细比较就会发现以下一些差别:


    LPC83x没有模拟比较器。


    LPC83x中配置的USART和I2C数量较少


    LPC83x的RAM容量较小


    细心的读者可以从用户手册的存储器地址空间的分配表中,看到更加详细的差别来。下面是LPC83x的存储器空间分配图的片段。


    图3. LPC83x存储器地址空间分配图(片段)
    0.3.png
    图4. LPC83x系统框图
    0.4.png
    当然,细心的读者也注意到了,LPC83x的适用工作温度范围是-40°C ~ +85°C,LPC81x/LPC82x和LPC84x的适用工作温度范围扩大到-40°C ~ +105°C。


    LPC84x


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


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


    图5. LPC84x系统框图(功能配置)
    0.5.png
    上图中的绿色虚线框部分就是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的风格,从使用者的视角画的系统框图。


    图6. LPC84x系统框图(程序员视角)
    0.6.png
    与其它几个系列的框图比较,我们可以看出LPC84x有不少新的东西:


    ① 更多的Flash和SRAM容量。


    ② FAIM模块。FAIM用于在启动时配置其它模块的初始状态,包括引脚的方向和上拉或下拉,启动时的ISP端口和配置,以及为低功耗而设置的低主频启动等。


    ③ 定时器CTimer。该32位定时器有四个输入捕获和四个输出匹配信号,但芯片上只引出了三个捕获和三个匹配信号,可以与外部引脚相连。


    ④ 两个10位DAC模块。


    ⑤ 电容触摸按键模块,该模块可以最多连接9个按键,或组合配置为滑条或旋转盘。


    ⑥ 从LPC82x最多的29个输入输出引脚,大幅增加到54个引脚,而且所有引脚功能都是经过开关矩阵的配置。


    ⑦ STC定时器的输出信号,比LPC82x/83x增加了一个,达到7个。


    ⑧ 模拟比较器的输入端,比LPC81x/82x增加了三个,达到5个。


    与前面的框图相比,图6中还可以看到一个“JTAG测试和边界扫描接口”,和一些信号线从“时钟发生器,电源控制”模块引出,这些内容在其它系列里面也有相同的部分存在,只是没有画出来而已。


    用于程序追踪调试的MTB存储器和控制接口,在其它系列里也是存在的,同样也没有画在系统框图中。


    LPC80x


    下面是LPC802和LPC804的框图,此处不多做解释,读者可以结合前面几个子系列的框图,对照比较之后就能够看出区别来。
    图7. LPC802系统框图
    0.7.png
    图8. LPC804系统框图
    0.8.png
    图中可以明显看出,LPC804是LPC802的增强版,增加了电容触摸接口、可编程逻辑单元(PLU)、10位的DAC输出、一个I2C接口,存储器容量也增加了一倍,性价比更高了。


    结束


    本文通过展示系统框图,简单地介绍了一下LPC800系列中各个子系列的功能配置情况。随后会有一系列的文章,分别介绍框图中的各个模块,敬请期待。

    END
    作者:香水橙     文章出处:恩智浦MCU加油站


    11111签到
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2021-7-5 15:45
  • 签到天数: 664 天

    [LV.9]以坛为家II

    42

    主题

    1594

    帖子

    19

    金牌会员

    Rank: 6Rank: 6

    积分
    5350
    最后登录
    2021-12-22
    发表于 2019-5-31 21:43:26 | 显示全部楼层
    本帖最后由 okwh 于 2019-5-31 23:17 编辑

    NXP极具创新精神!       膜拜 STC  FlexComm设计,,,,,

    可以出设计一款有16位DAC      一款有24位DAC的......
    建议CTimer 可使用可更新动态记数, 比如使用队列为Ctimer提供记数设置以实现任意波形/   任意触发/  多IO波形配合....

    另建议 用LPC8xx为中学生学习和训练提供  广泛系列系统支持.....   应该是可以远优于  ardiuno 的呀!!!

    话说零知开源已经在用  STM32 在做自己的 类似

    虽然 nxp板子也有Arduino接口


    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2020-3-5 09:44
  • 签到天数: 187 天

    [LV.7]常住居民III

    0

    主题

    319

    帖子

    0

    高级会员

    Rank: 4

    积分
    725
    最后登录
    2020-3-5
    发表于 2019-6-1 09:12:06 | 显示全部楼层
    谢谢分享
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 23:06
  • 签到天数: 1467 天

    [LV.10]以坛为家III

    203

    主题

    2万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    92135
    最后登录
    2024-3-28
    发表于 2019-6-1 14:04:38 | 显示全部楼层
    本帖最后由 stm1024 于 2019-6-1 14:07 编辑

    不错,支持~~~ 10.png 01.png 06.png 07.png 08.png 05.png 09.png 04.png 03.png 02.png
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-3-29 09:41 , Processed in 0.116324 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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