很荣幸能够获得LPCXpresso1549的开发板平台进行体验使用。经过近半个月的学习,几乎每天下班、周末都在bug和debug开发板的代码、开发环境,对datasheet,usermanual等文档翻来覆去的查看。终于实现了几个想了解熟悉的功能比如SWM、SCT等。并将以前开发过的万能红外遥控代码移植到了LPC15xx芯片上。 总结自己的经验,在此提出一些看法和感受。 一、LPC15xx系列芯片的外设功能很有特色且比较方便, (1)SWM;在其他厂商(比如ST、TI)都是提供一些固定的引脚功能复用、NXP推出的SWM就可以除了一些对引脚硬件条件比较要求比如I2C的开漏输出与上拉、模拟输入、USB等要求比较严格的必须是固定或者有一定要求的, 其余的几乎所有的功能IO都可以复用到任意的引脚上。 本人曾经为了ST的芯片功能引脚分配,做了N多个表格对比,结果第二次做硬件升级的时候,选用的芯片又需要第二次对比分配引脚,而NXP的引脚复用SWM就可以很好的实现软件引脚配置。 (2)SCT;SCT的定时器其实是以event为中心,围绕着event配置事件触发条件、触发后执行的动作等。尤其是有高达16个比较/捕获寄存器,可以做成多路的PWM,最适合多维度的电机控制了。这也是LPC15xx定义的主要的目标市场。 二、入门文档与第三方开发板、开发资料不足 (1)开发板少,本地技术讨论气氛低落。 作为一个ARM Cortex-M系列芯片的资深使用者,大概都会倾向于使用ST,主要是ST的市场推广做得好,国内做开发板的,似乎以ST的最多,比如正点原子、野火等。他们的开发板、入门教程,外围模块都非常丰富,而且中文化做的非常成熟。反观NXP,似乎国内就周立功、embest等推出了对应的中文文档、应用笔记和开发板,而且用户数目似乎也不多,关键的是这种大公司做事情,一般没有小公司或者个人开发者做的跟工程师论坛在线互动、技术支持等来的全面。 (2)教程匮乏。 最主要的,我用正点原子的入门教程来做说明。NXP官方的文档除了DS就是UM,这是权威文档不错,寄存器定义、用法都在里面。从未接触过LPC系列芯片的工程师,很难直接从UM就能知道怎么去做。即使是有经验的工程师,知道功能是啥,仍然需要一页一页的仔细揣摩(注意,是揣摩,不是查看就能用)文档,对照着demo-code一个寄存器一个bit的看。
教程与Manual的对比 (左:正点原子的教程中对ST-Manual的解读, 右:NXP的manual的IOCON部分) 从我个人感受而言,如果工程师直接看Usermanual,在没有全面掌握这个IOCON之前,对如何通过寄存器设置是比较模糊的。而有了第三方教程的解读,那么不需要全面看几遍Usermanual,自己揣摩理解之后也可以立即上手。上手之后再去深入阅读,那么就很快就能掌握该功能。 (3)demo-code的凌乱 对一个例程而言,用户首先需要了解是做什么,用到了那些外设,然后是怎么做。这也是第三方教程的一个重点特色。然而NXP给出的LPCOpen,除了一个readme,连解释例程做什么的几乎都没有,更别说详细介绍如何利用某某外设实现功能。而且从论坛上来看,大多数人的分享帖子好几个都是如何跑例程,这就说明例程如何跑这个文档说的还是有很大不足。 (4)开发板外设少 官方提供的是LPXpresso,其实就是一个集成调试器的最小系统。外设、模块什么的都需要自己准备。这样的一个开发板,有心的用户才回去自己搭建。而抱着尝试、体验特别是评估新平台的用户,可能就相对而言,体验力度比较少。也无法完全体验到芯片的功能和方便。 三、意见和建议 NXP的芯片功能、技术、集成度、适用性我认为是绝对不输给ST的。然而NXP如果想大力推广自己芯片,就应该从市场上发力。大力协助第三方开发者。比如开展一些开发板DIY活动、样片申请、创意大赛。 我记得ST为了感谢正点原子等人的开发板对ST芯片形成的推广助力,其中国区销售总监还专门跑到正点原子的工作室进行感谢。这种市场推广力度确实应该是NXP需要学习的。
|