查看: 753|回复: 5

[分享] LPC800的前世今生大揭秘

[复制链接]
  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3302

    主题

    6549

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32045
    最后登录
    2024-4-29
    发表于 2023-9-12 10:27:00 | 显示全部楼层 |阅读模式
    LPC800的前世今生大揭秘

    1、前言

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

    “哪吒”项目的策划始于2009年初,LPC1100刚刚发布不久,LPC团队就提出了一个大胆的想法:能否让32位MCU跟8位单片机一样简单易用?很快,团队列出了几条“简单易用”的准则:
    • 能否象8位单片机一样启动?
    • GPIO操作能否更加迅速?
    • 外设能否更加小巧、灵活?
    • 封装要小;
    • PCB布线要简单;
    • 要满足中国客户希望串口多的需求;
    。。。

    Rob Cosaro是LPC的首席架构师(现在他是NXP Fellow,去年曾经来深圳给工信部开过讲座,是位名副其实的技术“网红”),他提出了各种创新的点子,让LPC800的思路愈发清晰了:
    外设要去除“大而全”,变得灵活、轻便。为此,重新设计了UART、I2C、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团队都会在那块白板上不断改进我们的设计。在之后的一年多里,那面白板就没有被擦掉过。


    3、LPC800的发展历程

    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年领导布置了一个任务,让我来写一个“LPC800 Cookbook”。

    领到这个任务之后,就开始琢磨这是个什么样的“文档”呢。首先,从字面上讲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 flash and 4 kB SRAM
    LPC83x数据手册:LPC83x 32-bit ARM® Cortex®-M0+ microcontroller; up to 32 KB flash and 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 flash and 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/PWM cookbook
    LPC86x数据手册:LPC86x 32-bit Arm® Cortex®-M0+ MCU - Data Sheet
    LPC86x用户手册:LPC86x User manual
    本书所有代码均基于LPC824 Example Code Bundle IAR中的例程所开发。
    有兴趣的读者也可以登录www.nxpic.org论坛,与广大工程师们进行技术交流,分享相关的知识和经验,以求共同提高。也可以从NXP公司网站http://www.nxp.com/lpc800上获得更多资料。

    6、致谢

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

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







    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 14:34
  • 签到天数: 1213 天

    [LV.10]以坛为家III

    22

    主题

    4770

    帖子

    0

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    8094

    活跃会员

    最后登录
    2024-4-28
    发表于 2023-9-12 10:51:04 | 显示全部楼层
    这本书送我一本
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    6 小时前
  • 签到天数: 1943 天

    [LV.Master]伴坛终老

    61

    主题

    1万

    帖子

    3

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    17326
    最后登录
    2024-4-29
    发表于 2023-9-12 10:57:06 | 显示全部楼层
    很不错
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    前天 16:01
  • 签到天数: 1480 天

    [LV.10]以坛为家III

    203

    主题

    2万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    92793
    最后登录
    2024-4-29
    发表于 2023-9-12 11:02:22 | 显示全部楼层
    撒一波书呗,电子版的也行啊
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-3-5 08:47
  • 签到天数: 1 天

    [LV.1]初来乍到

    91

    主题

    2930

    帖子

    2

    金牌会员

    Rank: 6Rank: 6

    积分
    7815
    最后登录
    2024-4-29
    发表于 2023-9-12 16:19:04 | 显示全部楼层
    能彻底搞明白,就觉得挺厉害的。也不知道书更新到多少了,做了好多年,发现很多地方都没理解明白,真的需要好好拜读!
    加油哦
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-22 08:52
  • 签到天数: 437 天

    [LV.9]以坛为家II

    3

    主题

    1789

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3936
    最后登录
    2024-4-11
    发表于 2023-9-12 17:30:27 | 显示全部楼层
    电子书发个呗,过节了
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-29 20:44 , Processed in 0.129115 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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