0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

LPC800的前世今生大揭秘

恩智浦MCU加油站 来源:未知 2023-09-07 08:50 次阅读

1
前言

在此之前,NXP已经推出了基于Cortex-M0内核的LPC1100(2009年),代号“吸血鱼”(亚马逊河中的一种小鱼,据称能进入在河中洗澡的人体内),意为小而极具攻击性。
LPC800的开发代号“哪吒”,意为小而勇敢。为什么要在LPC1100推出3年之后,又推出LPC800系列?“哪吒”的背后,有什么鲜为人知的故事?

2LPC800哪吒的诞生


“哪吒”项目的策划始于2009年初,LPC1100刚刚发布不久,LPC团队就提出了一个大胆的想法:能否让32位MCU跟8位单片机一样简单易用?很快,团队列出了几条“简单易用”的准则:

  • 能否象8位单片机一样启动?

  • GPIO操作能否更加迅速?

  • 外设能否更加小巧、灵活?

  • 封装要小;

  • PCB布线要简单;

  • 要满足中国客户希望串口多的需求;

  • 。。。


Rob Cosaro是LPC的首席架构师(现在他是NXP Fellow,去年曾经来深圳给工信部开过讲座,是位名副其实的技术“网红”),他提出了各种创新的点子,让LPC800的思路愈发清晰了:

  • 外设要去除“大而全”,变得灵活、轻便。为此,重新设计了UARTI2C、SPI等外设IP;

  • 针对不同应用可以有不同类型的Timer。为此,设计了SCT和MRT;

  • 支持8位单片机小封装。LPC800支持TSSOP20/16小封装,甚至还为“发烧友”准备了DIP8封装;

  • 特别地,LPC800提供了独一无二的开关矩阵(SWM)模块,能够将数字外设功能映射到任意一个GPIO引脚上,从而大大简化了PCB设计,成了硬件工程师的最爱;

  • 另外,内部Flash改至32位宽,工艺从0.18um改至0.14um,减少芯片面积的同时也极大地改善了芯片的功耗;

  • 一开始选择了Cortex-M0内核,后来切换到Cortex-M0+。

随着芯片规划的不断完善,对IP和芯片的设计提出了各种新的要求。宝剑锋从磨砺出,从“哪吒”项目提出到第一颗LPC800问世,花了整整三年。想起神话故事中的哪吒三太子,其母怀胎三年方才生产,不生则已,一生惊人。LPC中国团队给项目取名“哪吒”,寓意LPC800也像哪吒一样,经历了出生的磨难,却变得更加骁勇善战,在32位替代8位的战场上,方兴未艾。LPC800能够象哪吒一样大闹中国MCU之海。

接着,设计的任务交给了当时由我领导的LPC中国设计团队。在2009年的某一天,当我踏入时任LPC MCU产品线总经理的Geoff Lees(没错,就是现在NXP MICR业务部的老大)的办公室时,就被墙上的白板吸引住了--上面写满了LPC800的规划思路。Geoff告诉我,LPC800必须按照中国市场的需求来定义和设计,这令我激动万分。

后来,每次去美国,LPC团队都会在那块白板上不断改进我们的设计。在之后的一年多里,那面白板就没有被擦掉过。

3LPC800的发展历程


LPC800系列的发展经历了三个阶段:

  • 2012年11月,NXP发布了业界第一颗基于Cortex-M0+的LPC81x,支持16K Flash,并于次年7月正式量产;

  • 2014年10月,LPC82x正式量产,支持32K Flash;

  • 2016年8月,推出了经过简化的LPC83x;

  • 2016年12月,与Freescale合并后的NXP正式宣布了新的LPC800路线图,计划于2017年相继推出支持64K Flash的LPC84x和精简设计的LPC80x。


如上所述,新的LPC800路线图预示着这个精悍的产品线,将会迎来一个爆发式的成长,为了更好地推广这一既是新产品又是传统产品系列,2017年领导布置了一个任务,让我来写一个“LPC800Cookbook”。

领到这个任务之后,就开始琢磨这是个什么样的“文档”呢。首先,从字面上讲Cookbook就是食谱、菜谱,查下字典Cookbook还有烹饪手册的意思。真正翻看一份(本)食谱可以看到,内容是从食材、配料、刀工、厨具、火候等,一步步引领着如何做出一道菜来。

此时联想起在这么多年的实际工作中,处理和解答过的很多问题,除一部分是因为没有好好看文档之外,很大部分是因为更深层次的问题,不少人把在MCU上写程序作为一个单纯的软件问题,而没有详细了解在程序代码背后,硬件是如何工作的,软件和硬件是如何相互配合一起工作的。

4内容介绍


基于这样一个思考,我决定从MCU及其各基础模块出发,从解析各部分的内部构造和配置原理出发,再结合具体的代码演示例程,展示LPC800各部分的用法。这实际上也是我多年工作中,在理解使用一款新产品时所用的基本思路,因此希望能把这种思维方式提供给读者,引领读者不但知其一而且知其二,能够把每一行代码与底层的硬件配置结合在一起考虑,做到举一反三,这样以后可以用同样的方法,在用到其它陌生的MCU时,能够快速地熟悉上手,迅速地掌握其精髓。

在本书内容的编排上,引入了一些新的特色。

对于例程代码,尝试突破传统的行注释,使用了PPT中对话气泡的方式更加方便灵活地注解代码,展现行与行和程序块之间的逻辑关系。对于一些不易理解的模块,例如SWM、DMA、SCT等,都配有模拟的内部构造图,再结合对应的寄存器位,让读者可以更深入系统地理解这些模块的功能和用法,当理解了这些原理之后,即使以后忘记了它们的用法,只需回头看看这些构造图就可以很快地找到原来的感觉。

思路理清了,内容的呈现方式也就清晰了。首先这篇“文章”会是一本书的方式,就是您现在看到的这本书:

在书里面会先从介绍LPC800各个系列的基本概况入手(第1章),比较子系列间的区别,并特意抽出一些特色功能进行说明。然后将逐一展示各子系列的基本系统框图(第2章),从这里可以解读出很多有用甚至关键的信息;很多有经验的工程师可以从一款产品的系统框图,很快建立起一些关于这款产品的定位、性能级别、操作灵活性等基本概念,并对是否适合自己需求的一个基本判断。

第3章介绍了Arm为Cortex-M处理器配套的嵌套式中断控制器(NVIC), 这里解答了常见的中断优先级和中断嵌套的概念,并设计了一个演示例程以进一步体会优先级与嵌套的流程;这章里还以示意图的形式,直观地讲解了NVIC的几个特色的功能,让读者可以深入体会它的优势。当然第3章还介绍了NVIC的使用方法和可以调用的函数。

第4章是本书所有例程和配套项目文件的基本介绍,并给出了书中所有例程与项目文件的对照关系,读者在动手实验时,可以随时翻看这里,找到对应的项目代码并运行体会。

第5-8章关于LPC800的一些核心的基础部件,包括负责时钟配置、外设模块复位、低功耗配置及外部引脚中断等部分的系统配置模块(SYSCON),负责把内部功能信号与外部引脚对接的开关矩阵(SWM),设置外部引脚特性的输入输出引脚配置(IOCON),以及最基本的输入输出控制器(GPIO)等。所有使用LPC800的用户都要首先接触到这些模块,所有的开发项目都会用到这些模块。

第9-13章涉及引脚中断和引脚组合逻辑、直接存储器访问(DMA)、UART、SPI和I2C,这部分都是绝大部分MCU都会有模块和基本的通信接口。特色的引脚组合逻辑或称模式匹配引擎,能够根据多个引脚的组合逻辑运算结果,产生相应的中断,与传统的一个信号触发中断的方式相比,可以显著优化对于复杂外部逻辑的相应速度。

第14-17章分别介绍了一些基本的定时器,包括状态可编程定时器(SCT)、窗口型看门狗定时器(WWDT)、多速率定时器(MRT)和系统嘀嗒时钟(SysTick)。尤其是对SCT的介绍,试图从基础原理上,全面地分析了SCT的用法,并通过多个例程展示了SCT编程及其强大的能力。

最后第18章介绍了12位ADC(模拟数字转换器)及其使用,通过例程不但展示了ADC的基本用法,还展示了实际项目中经常会用到与DMA配合使用的方法。

5参考资料


均可在nxp.com/lpc800下载

LPC8N04数据手册:LPC8N04 32-bit Arm Cortex-M0+ microcontroller

LPC8N04用户手册:LPC8N04 User manual

LPC802数据手册:LPC802 Data Sheet

LPC802用户手册:LPC802 User manual

LPC804数据手册:LPC804 Data Sheet

LPC804用户手册:LPC804 User manual

LPC81x数据手册:LPC81xM 32-bit ARM Cortex-M0+ microcontroller; up to 16 kB flashand 4 kB SRAM

LPC83x数据手册:LPC83x 32-bit ARM Cortex-M0+ microcontroller; up to 32 KB flashand 4 KB SRAM; 12-bit ADC

LPC81x用户手册:LPC81x User manual

LPC83x用户手册:LPC83x User manual

LPC82x数据手册:LPC82x 32-bit ARM Cortex-M0+ microcontroller; up to 32 kB flashand 8 kB SRAM; 12-bit ADC; comparator

LPC82x用户手册:LPC82x User manual

LPC84x数据手册:LPC84x 32-bit Arm Cortex-M0+ MCU - Data Sheet

LPC84x用户手册:LPC84x User manual

应用笔记AN11538 SCTimer/PWMcookbook

LPC86x数据手册:LPC86x 32-bit Arm Cortex-M0+ MCU - Data Sheet

LPC86x用户手册:LPC86x User manual

本书所有代码均基于LPC824 ExampleCode Bundle IAR中的例程所开发。

有兴趣的读者也可以登录www.nxpic.org论坛,与广大工程师们进行技术交流,分享相关的知识和经验,以求共同提高。也可以从NXP公司网站http://www.nxp.com/lpc800上获得更多资料。

6致谢

前后大约花了两年时间才断断续续地写完了所有内容,在本书的写作和校验过程中得到了很多同事的帮助,尤其要感谢周荣正、王朋朋、蒋文卫的大力支持,还有张扬、张启鹏、谢愉、牛晓东、武元伟等同事为保证内容的准确性,在百忙之中进行了试读和实验验证,在此表示衷心的感谢,你们的帮助让我对整体内容的正确性有了更多的信心。

接下来的数周里,我将按内容概况逐步更新,由于本人的经验和水平有限,书中的错误和不妥之处在所难免,恳请广大读者批评指正。



END



更多恩智浦AI-IoT市场和产品信息,邀您同时关注“NXP客栈”微信公众号




NXP客栈


恩智浦致力于打造安全的连接和基础设施解决方案,为智慧生活保驾护航。





长按二维码,关注我们


恩智浦MCU加油站


这是由恩智浦官方运营的公众号,着重为您推荐恩智浦MCU的产品信息、开发技巧、教程文档、培训课程等内容。


长按二维码,关注我们


原文标题:LPC800的前世今生大揭秘

文章出处:【微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17135

    浏览量

    351017
  • 恩智浦
    +关注

    关注

    14

    文章

    5857

    浏览量

    107342

原文标题:LPC800的前世今生大揭秘

文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    深入了解Java泛型——从前世今生到PECS原则

    本文主要介绍泛型诞生的前世今生,特性,以及著名PECS原则的由来。 在日常开发中,必不可少的会使用到泛型,这个过程中经常会出现类似“为什么这样会编译报错?”,“为什么这个列表无法添加
    的头像 发表于 11-21 11:45 141次阅读
    深入了解Java泛型——从<b class='flag-5'>前世</b><b class='flag-5'>今生</b>到PECS原则

    带你揭秘:功率放大器的前世今生~

    关于功率放大器功率放大器,作为一种可放大交直流信号,在给定失真率条件下,能产生最大功率输出以驱动某一负载的实验室仪器,在MEMS测试、超声波测试、电磁场驱动、无线电能传输、院校电子实验测试等领域都有良好应用,那么你知道功放的发展史吗?今天Aigtek就给大家分享一下~功率放大器发展史功率放大器的发展史可以追溯至20世纪初,随着电子技术的不断进步,功率放大器也
    的头像 发表于 11-07 08:00 996次阅读
    带你<b class='flag-5'>揭秘</b>:功率放大器的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>~

    揭秘共模电感漏感对使用有影响吗

    电子发烧友网站提供《揭秘共模电感漏感对使用有影响吗.docx》资料免费下载
    发表于 09-30 14:45 1次下载

    LDO噪声揭秘

    电子发烧友网站提供《LDO噪声揭秘.pdf》资料免费下载
    发表于 09-21 09:13 0次下载
    LDO噪声<b class='flag-5'>揭秘</b>

    DM368 NAND Flash启动揭秘

    电子发烧友网站提供《DM368 NAND Flash启动揭秘.pdf》资料免费下载
    发表于 08-27 09:22 0次下载
    DM368 NAND Flash启动<b class='flag-5'>揭秘</b>

    揭秘中国汽车芯片市场:主要企业有哪些?

    揭秘中国汽车芯片市场:主要企业有哪些?
    的头像 发表于 07-19 10:12 565次阅读
    <b class='flag-5'>揭秘</b>中国汽车芯片市场:主要企业有哪些?

    EMC大揭秘 PCB设计必备指南

    EMC大揭秘 PCB设计必备指南
    的头像 发表于 06-15 16:29 3062次阅读
    EMC大<b class='flag-5'>揭秘</b> PCB设计必备指南

    嵌入式系统的前世今生

    一、初始阶段(1960-1970)1960年代末:嵌入式系统的概念开始形成,最初用于专业的军事和航天应用,例如用于导弹控制的计算机系统。微处理器的诞生:1971年,英特尔推出了4004芯片,这是世界上第一个商用微处理器。它的出现标志着嵌入式系统发展的一个里程碑,使得更小型、成本更低的电子设备设计成为可能。二、发展阶段(1980年代)个人计算机(PC)的普及:
    的头像 发表于 04-12 08:11 1616次阅读
    嵌入式系统的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>

    揭秘共模电感选择技巧

    电子发烧友网站提供《揭秘共模电感选择技巧.docx》资料免费下载
    发表于 03-29 14:36 0次下载

    FPGA中竞争与冒险的前世今生

    竞争冒险:在组合电路中,当逻辑门有两个互补输入信号同时向相反状态变化时,输出端可能产生过渡干扰脉冲的现象,称为竞争冒险。那么 FPGA 产生竞争冒险的原因是什么呢? 信号在 FPGA 器件内部通过连线和逻辑单元时,都有一定的延时。 延时的大小与连线的长短和逻辑单元的数目有关 同时还受器件的制造工艺、工作电压、温度等条件的影响 信号的高低电平转换也需要一定的过渡时间 。由于以上存在的因素,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化往往会出现一些不正确的尖峰信号,这些尖峰信号称为毛刺 。如果一个组合逻辑电路中有毛刺出现,就说明该电路存在冒险 。与分立元件不同,由于 PLD 内部不存在寄生电容电感,这些毛刺将被完整的保留并向下一级传递,因此毛刺现象在 PLD 、 FPGA 设计中尤为突出 。 毛刺的累加 将会影响整个设计的可靠性和精确性 。因此判断逻辑电路中是否存在冒险以及如何避免冒险是 FPGA 设计人员必须要考虑的问题。 接下来我们就要考虑如何消除冒险 ,消除冒险的方式有一下几种: 1、利用冗余项消除毛刺 函数式和真值表所描述的是静态逻辑,而竞争则是从一种 稳态到另一种稳态的过程。因此竞争是动态过程,它发生在输入变量变化时。此时,修改卡诺图,增加多余项,在卡诺图的两圆相切处增加一个圆,可以消除逻辑冒险。但该法对于计数器型产生的毛刺是无法消除的。 2、采用格雷码 我们可以通过改变设计,破坏毛刺产生的条件,来减少毛刺的发生。例如,在数字电路设计中,常常采用格雷码计数器取代普通的二进制计数器,这是因为格雷码计数器的输出每次只有一位跳变 消除了竞争冒险的发生条件,避免了毛刺的产生。 3、采样法 由于冒险出现在变量发生变化的时刻,如果待信号稳定之后加入取样脉冲,那么就只有在取样脉冲作用期间输出的信号才能有效。这样可以避免产生的毛刺影响输出波形。 一般说来,冒险出现在信号发生电平转换的时刻,也就是说在输出信号的建立时间内会发生冒险,而在输出信号 的保持时间内是不会有毛刺信号出现的。如果在输出信号的保持时间内对其进行采样,就可以消除毛刺信号的影响。 4、吸收法 增加输出滤波,在输出端接上小电容C可以滤除毛刺 。但输出波形的前后沿将变坏,在对波形要求较严格时,应再加整形电路,该方法不宜在中间级使用。 5、延迟办法 因为毛刺最终是由于延迟造成的,所以可以找出产生延迟的支路。对于相对延迟小的支路,加上毛刺宽度 的延迟可以消除毛刺。 还可以用高频时钟来驱动一移位寄存器,待延时信号作数据输入,按所需延时正确设置移位寄存器的级数 ,移位寄存器的输出即为延时后的信号。 当然最好的就是,在设计之初,就对竞争冒险进行规避,具体规避方法有: 1、在设计中每一个模块中只用一个时钟,避免使用多时钟设计,同时避免使用主时钟分频后的二次时钟作为时序器件的时钟输入, 因为时钟偏斜会比较大 。 2、设计译码逻辑电路时必须十分小心,因为译码器和比较器本身会产生尖峰,容易产生毛刺,把译码器或比较器的输出直接连到时钟输入端或异步清除端,会造成严重的后果。 3、在设计中 应该尽量避免隐含 RS 触发器的出现。一般要控制输出被直接反馈到输入端,采用反馈环路会出现隐含 RS 触发器,其对输入尖峰和假信号很敏感,输入端有任何变化都有可能使输出值立刻改变,此时易造成毛刺的产生,导致时序的严重混乱。 4、在设计电路时 要用寄存器和触发器设计电路,尽量不要用锁存器,因它对输入信号的毛刺太敏感。如果坚持用锁存器设计必须保证输入信号绝对没有毛刺,且满足保持时间。 5、在设计中充分利用资源 ,因为 大部分 FPGA 器件都为时钟、复位、预置等信号提供特殊的全局布线资源,要充分利用这些资源。 6、在设计中 不论是控制信号还是地址总线信号、数据总线信号,都要采用另外的寄存器,以使内部歪斜的数据变成同步数据。 7、在设计中 应该尽 量避免使用延迟线,因它对工艺过程的变化极为敏感,会大大降低电路的稳定性和可靠性,并将为测试带来麻烦。 8、在设计中 对所有模块的输入时钟、输入信号、输出信号都用D触发器或寄存器进行同步处理,即输出信号直接来自触发器或寄存器的输出端。这样可以消除尖峰和毛刺信号。
    发表于 02-21 16:26

    基于 NXP LPC845 EVK 介绍

    LPC845是一款高性能低功耗的的 MCU,适用于消费类和工业类市场。本次将给大家带来以NXP LPC845M301JBD48(以下简称 LPC845)芯片为主控制器的评估方案-TTM 介绍。
    的头像 发表于 02-02 09:20 639次阅读
    基于 NXP <b class='flag-5'>LPC</b>845 EVK 介绍

    恩智浦推出基于LPC860的系列解决方案

    在恩智浦丰富的微控制器产品组合中,基于Arm Cortex-M0+的LPC800 MCU是非常有特色的一个产品系列,其不仅显著提升了性能,还极大地降低了功耗,提高了能效,加之广泛的伙伴生态合作体系支持,为嵌入式开发者提供了一个简单易用、设计灵活的解决方案!
    的头像 发表于 01-26 10:14 686次阅读

    机器人的前世今生

    机器人主要是用于代替人工作的,首先它是一个机器。对于传统的机器,被使用者设计制造出来后,它的工作步骤、路径都是确定的。机器的设计也是根据它所应用的工作而进行的。
    发表于 12-29 14:54 557次阅读
    机器人的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>

    折叠屏手机的FPC技术揭秘:它如何影响手机的重量和性能?

    折叠屏手机的FPC技术揭秘:它如何影响手机的重量和性能?
    的头像 发表于 12-27 10:08 1090次阅读

    LPC800 MCU技术资源合集:纯干货,快接住!

    作为恩智浦新一代基于Arm Cortex-M0+的微控制器,LPC800系列不仅显著提升了性能,还极大地降低了功耗,提高了能效,加之广泛的伙伴生态合作体系支持,为嵌入式开发者提供了一个简单易用
    的头像 发表于 12-27 08:10 550次阅读
    <b class='flag-5'>LPC800</b> MCU技术资源合集:纯干货,快接住!