一、与一只蝴蝶的邂逅
时间退回至2007年9月,对于刚进入学院的笔者而言,微控制器的涵义仅仅局限于文字。而在同年的6月意法半导体(以下简称ST)在上海首发全球首款采用ARM Cortex-M3内核的处理器STM32F3,并选用一只蝴蝶作为产品的logo,在此后的十几年,STM32这只“蝴蝶”成功的掠过千山万水,不仅振动了整个MCU市场,也成功培植出了千万工程师。然而当初ST在中国通用MCU市场占有率仅为2%左右,排10名以外。
笔者接触到微控制是在2008年假期期间,当时中学普遍采用Atmel的AT89S52,芯片容积很大(封装DIP40),8K字节Flash,256字节RAM,2路16bit定时器/计数器,1路全双工并口,32路可编程I/O,6路中断源,主频最大24MHz。相对现今的微控制而言,片上资源简直惨不忍睹。但在当时而言,这款芯片绝对是校园主流控制芯片,记忆最深的是洞洞板、IC烧录座以及钎焊(某些学霸的点焊可谓工艺品)。
当年除89C51系列单片机雄霸校园外,还有性能稍强、外设稍为丰富一些的微控制器,例如Atmel的AVR,Microchip的PIC,TI的MSP430(16位,低功耗)、凌阳SPCE061A(16位,语音功能)、TI的TMS320(DSP)等,这些单片机在当时可以称为主流(可能不够严谨,但在笔者的学院确实是事实),在各种电子设计大赛作品中,无论是国赛、省赛或则校园赛,总是才能发觉它们身影。
2009年当时出席了亚太大学生机器人大赛国内选拔赛,我们的主控方案采用AVR+CPLD的方式,AVR(ATMEGA128)单片机负责传感数据采集、控制逻辑以及简单算法,CPLD负责处理码盘反馈数据。之所以采用CPLD(EPM570T100)是因为空心杯直流减速电机的码盘反馈数据量太大,单纯借助AVR的中断采集或捕获,无法达到满意疗效。比赛前的时间总是过得很快,也很充实,那时在创新创业基地可以调试熬夜,也不会感觉太困,因为总是有这么一群志同道合的同学在周围陪着你一起玩,充满乐趣,充满着自豪。当真正的步入选拔赛,止步于16强时,才晓得自己懂的太少,牛气的团队、牛气的人太多太多,北京科技大学机器人的速率、哈尔滨工业大学(冠军)的技术、东北大学的设计等等,在视察交流中,他们的控制平台很难找到8位机作为主控,ARM、DSP、CPLD、FPGA等方案早已应用到控制系统中,这对当时的我们而言,感觉到的是巨大的差别与反省。比赛结束回到中学,基地的老师给我一块红色的学习板,让自己熟悉一下,看后续是否还能用到,也就是在那时,第一次真正的接触ST。
拿到开发板的资料后,第一时间就是安装环境,下载开发类库,看实验现象。那时STM32中文版资料并不是好多,《STM32中文用户手册》、《STM32不完全手册》应当是在1年后的事情了,当时比较好的英文资料是《Cortex-M3权威手册》(宋岩老师翻译)、《Cortex-M3技术参考指南》,剩下的就是官网下载的数据指南以及参考指南。当把STM32的英文版参考指南打开后,丰富的外设以及诸多寄存器,看的很头大。开发板配套的程序代码是基于寄存器操作,嗯,能够想像到当时做这个学习板与类库的人也一定是一个高手级人物。
二、遍地开花
ST在中国市场的成功推广,离不开峰会与百万坛友的推广支持,最为熟悉的莫过于阿莫峰会()与21IC中国电子网(二姨:),其它的就不再举例。在初期学习STM32时,泡峰会是最为重要的学习途径之一,也就是在这个时侯(大约2009年),各种STM32技术问题、有意思的项目以及开发板开始在峰会渐渐增多,能够记得住名子的,像火牛、红牛、金牛、神州、正点(精英、战舰、阿波罗、北极星)、野火、安富莱、硬石等等各类开发板琳琅满目,你总能找到一款是你喜欢的开发板,或许做设计的人员给开发板取一个拽拽的名子是最为重要的,至少笔者是被成功的带打滑了。
其实在2009还有几家也是做Cortex-M3内核的单片机,比如流明诺瑞(luminary micro),使用她们家的芯片是因为出席“IEEE标准电脑鼠走迷宫”竞赛,当时的电脑鼠是由广州致远电子有限公司(周立功)提供,当时流明诺瑞由她们进行国外的推广,之所以能记得住,是因为当时的赛事奖品太特殊了,18套TinyM0 开发工具,我想是因为周老师也负责NXP的Cortex-M0与Cortex-M3推广吧(以至于后来Cortex-M0的芯片首选就用NXP的了)。后来流明诺瑞像陡然消失一样,很少有人提到与使用了,或许在电脑鼠大赛中能够遇见吧。
时至明日,STM32早已弄成ST的一个代名词,是ST在国外推广成功的标志,当然,MCU市场只是ST主营业务的一部分微处理器与外设大学教程,据统计,2020年第二季度ST个产品部产值贡献率微控制器和数字IC产品部(MDG)占总营收的35.1%,而模拟元件、MEMS和传感产品部(AMS)占到了29.9%,汽车和分立元件产品部(ADG)以及其它则贡献了总营收的另外35%。
三、下个六年
物联网、人工智能、5G应用是近来几年热点,在智能硬件、智能家居、智慧城市、智能工业等领域,安全、网络联接、云服务、AI是主要技术切入点,使MCU未来的发展须要更高的性能、更强的物联和更安全的能力。
ST早在2016年就推出了STM32 H7 高性能MCU,基于Cortex-M7 @ 400 MHz 和 Cortex-M4 @ 240 MHz的四核设计,除了高达400MHz的显存与1MB RAM之外微处理器与外设大学教程,还可以外扩SDRAM的。STM32 H7的性能很强悍,虽然可以流畅的运行各类RTOS、文件系统、网络协议栈以及用户界面,但我们仍然希望ST才能将MCU的生态模式也应用至MPU上,补全ST在Linux应用领域的小短腿。
ST凭着多年积累的ARM Cortex研制经验扩大了STM32 MCU的功能,2019年推出该公司首款多核微处理器STM32MP1。STM32MP1是一款通用型微处理器(双核Cortex-A7+单核Cortex-M4),具有以下特性:
STM32MP1微处理器的介绍就先写到这儿吧,其实自己并不擅长写文章,写这篇文章的目的是后续想将FS-MP1A开发平台的硬件部份设计记录出来,因为在设计这个板子的时侯并没有太多的英文参考文档,主要来源是官方网站资料与参考学习板,开发平台如下所示:
FS-MP1A开发板的硬件设计篇目前预计总共包含11部份,主要涉及电源、时钟、引导模式、DDR、EMMC、以太网、LCD、音频、WiFi/BLE以及DCMI等部份,如下所示:
对于STM32MP1系列处理器的Cortex-M4内核、Cortex-A7内核的裸机开发部份、Linux驱动移植、应用开发以及项目应用会逐渐进行连载。
下个六年,我们希望STM32MP1系列处理器才能像STM32在MCU市场的成功一样,让Linux系统与MPU的设计与应用不在这么的神秘,相信凭着ST在市场推广的力度以及决心,STM32MP1系列微处理器的应用会越来越广泛,至少笔者是相信的。