STM32MP1系列教程连载-硬件设计篇1:初识STM32MP1系列微处理器
一、与一只蝴蝶的邂逅
时间退回至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在中国市场的成功推广,离不开论坛与百万坛友的推广支持,最为熟悉的莫过于阿莫论坛(https://www.amobbs.com/forum.php)与21IC中国电子网(二姨:https://bbs.21ic.com/),其它的就不再举例。在早期学习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),具有以下特点:
- 采用ST(意法半导体)全新的STM32MP157AAA3(LFBGA448-18*18)微处理器为主控平台,该平台具有先进灵活的架构,支持3D图形处理单元。FS-MP1A开发板接口资源丰富,可全功能开发STM32MP157AAA3外设资源。
- 提供Arm®双核ARM Cortex A7/ 650MHz和 Cortex®-M4/209MHz两种内核的异构架构开发,在复杂的多任务处理与运算同时,兼顾硬实时性。
- STM32系列生态系统成熟,并具备经过验证的软件、工具和技术支持,使用户在该平台上能够提高开发效率,缩短上市时间 。
- STM32MP1微处理器系列芯片稳定供货周期长达10年,包含多种封装与型号。FS-MP1A开发板既可以作为开发平台进行学习,也可作为产品控制核心,免除因技术迭代更新,而造成技术过时或断货情况。
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系列微处理器的应用会越来越广泛,至少笔者是相信的。
南风
2020.08.31