2LPC800哪吒的诞生
能否象8位单片机一样启动?
GPIO操作能否更加迅速?
外设能否更加小巧、灵活?
封装要小;
PCB布线要简单;
要满足中国客户希望串口多的需求;
。。。
针对不同应用可以有不同类型的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下载:
有兴趣的读者也可以登录www.nxpic.org论坛,与广大工程师们进行技术交流,分享相关的知识和经验,以求共同提高。也可以从NXP公司网站http://www.nxp.com/lpc800上获得更多资料。
6致谢
前后大约花了两年时间才断断续续地写完了所有内容,在本书的写作和校验过程中得到了很多同事的帮助,尤其要感谢周荣正、王朋朋、蒋文卫的大力支持,还有张扬、张启鹏、谢愉、牛晓东、武元伟等同事为保证内容的准确性,在百忙之中进行了试读和实验验证,在此表示衷心的感谢,你们的帮助让我对整体内容的正确性有了更多的信心。
接下来的数周里,我将按内容概况逐步更新,由于本人的经验和水平有限,书中的错误和不妥之处在所难免,恳请广大读者批评指正。
END
更多恩智浦AI-IoT市场和产品信息,邀您同时关注“NXP客栈”微信公众号
NXP客栈
恩智浦致力于打造安全的连接和基础设施解决方案,为智慧生活保驾护航。
长按二维码,关注我们
恩智浦MCU加油站
长按二维码,关注我们
原文标题:LPC800的前世今生大揭秘
文章出处:【微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。
-
mcu
+关注
关注
146文章
17135浏览量
351017 -
恩智浦
+关注
关注
14文章
5857浏览量
107342
原文标题:LPC800的前世今生大揭秘
文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论