十条准则助你顺利转型MPU
近期,主频为800兆赫的STM32MP1旗舰型重磅发布,与2019年推出的主频为 650MHz STM32MP1 入门级系列全引脚兼容,持续扩展MPU产品系列。
STM32MP1 是STM32的首款MPU,以其创新的异构系统架构,将MPU与MCU合二为一,兼顾运算处理能力和实时控制性能,令产品更实用。新的旗舰型产品系列,功能更强大,满足工业级产品需求,占空比为 100%,结温范围从 -40 ºC to 125 ºC,非常适合24/7(7天24小时)的不间断应用。这意味着STM32MP1系列可以服务于更多更广的应用场景,即使在恶劣工作环境,也能正常工作。
STM32的规模化应用,很重要的原因是因为生态做得好。因而,我们不应该只关注硬件的性能指标,还需要在STM32大生态中,更深入地学习了解软件开发工具,更大范畴地与生态合作伙伴碰撞交流,这样我们在使用MP1设计产品时,才能更高效更有针对性。
我们将经验归纳为十条准则,与开发者分享,在项目立项或开始之时,应多考量前四条准则,而要想成功交付项目,就需要遵循后六项准则。这十条准则将帮助MCU开发者或者团队向MPU转型;而对于传统 MPU 用户,我们可以通过提供垂直应用解决方案为他们独辟蹊径。
1、不要低估软件的重要性
很多以往采用MCU进行开发设计的公司,在使用MPU之后,都会有新的认知,调整开发过程中的优先级,来发扬光大MPU的运算处理优势。以往, MPU的开发团队常常高投入软件部分,约占整个项目的60%至80%,而MCU开发者通常更关注硬件。为什么在MPU项目中,更应该注重软件?MPU的不同技术类型可能采用不同的开发路径,但并不影响在不同的开发平台上使用相同的代码库,这样可以很好地分摊成本,时间成本、人力成本等等。此外,在硬件部分设计完成后,往往软件端还有很多基础性工作,需要维护和更新。但软件的好处在于开发团队可以复用代码库,更轻松地移植到其他硬件平台上运行。
2、不能忘记你的软件
在采用 MPU 开发产品时,软件起着至关重要的作用。代码库不仅仅是开发团队的成熟经验积累,代码库的移植复用会为团队带来很高的经济效益。例如,对于采用STM32MP1进行开发设计的公司来说,在优化软件的同时,还能够通过软件移植快速推出产品。采用 MPU进行开发的公司可以通过软件快速更新其产品应用程序,也就是说,开发团队先行推出产品验证市场,然后快速优化,从而更快地降低成本、更迅速地改善用户体验。因此,工程师在项目之初,必须认真规划产品快速更新的路线图。
3、不应低估您的PCB设计
基于MCU的PCB设计,我们通常需要处理二到六层,虽然这样的定制设计并不简单,但至少是可行的;而MPU的PCB设计则要复杂得多。开发团队往往需要处理八层或更多层,还要应付那极为复杂的电源管理IC,处理难度颇高的高速外部RAM。实际上,对 DDR 模块进行采样,同时并行处理多达 32 路信号,以及由此带来的开发难度,即使是最资深的老炮儿工程师,也要面临非常大的挑战。
ST最新提供DDR工具可以自动输出特定的配置参数,这个自动配置功能是我们为尽力降低MPU开发难度而设计的。与此同时,我们与系统级模块(SoM)供应商和系统级封装(SiP)合作伙伴通力合作,确保工程师获得有效帮助来解决这一难题。来自MCU世界的工程师必须明白MPUPCB设计是一个完全不同的怪兽。STM32MP1 有助于降低 PCB 成本,同时由于其0.5 mm / 0.8 mm 间距,通过避免过孔来减少 PCB 层数。
4、了解工程师做好开发的前提
▲ STM32MP157A-EV1
决策者应该明白,MPU 比硬件规范更重要,制造商、文档和开源社区等围绕器件而产生的实用程序对于项目的成功交付也至关重要。ST在2019年更新了STM32CubeMX、STM32CubeProgrammer和STM32CubeIDE,以确保开发人员可以使用这些熟悉的实用程序为STM32MP1创建工程。此外,我们为用户提供了一个维基网站,帮助用户解决一些技术疑难。适用的文档、有价值的开源社区和恰当的工具可以决定你的项目成功与否。因此,公司对MPU的选型不能停留在数据手册上,需要从其他很多方面综合考虑,比如生成制造能力。
5、不能忽视您的SoM和SiP合作伙伴
STM32MP1 有许多非常独特的优势,其中之一就是系统级模块(SoM)厂商和系统级封装(SiP)合作伙伴支持MP1模组的生产制造,可提供出色的开发解决方案。来自 MCU 领域的许多公司和团队,有时会过快地取消这些服务,认为如果内部处理设计操作,可以节省资金。然而,设计一个类似SOM的产品,由于需要DDR调谐并适配板级支持包,这样复杂的PCB设计周期可能需要4-6名工程师至少4至6个月的时间。即使不计算相关验证和生产费用,这样的运营方式将大幅推高成本。
某些团队可能不愿意与SoM或SiP供应商合作,仅仅因为觉得会产生高额的初始成本。但是在大多数情况下,通过雇佣一家公司来处理解决MPU固有的硬件复杂性,比从零开始设计制作PCB和开发板级支持包有更大的回报,我们要相信精细化分工。选择"系统级模块"的开发者,将获得更多的技术灵活性,以及本地支持,因为这样的设计经过了批量验证。选择"系统级封装"的开发者,通常原因是产品需要适合空间受限的应用环境。两种情况,最直观的受益是降低PCB设计生产成本,并允许进行四层板设计。因此,与SiP或SoM合作伙伴合作,团队得以专注于软件和独特功能的开发,这是项目规划实施的重中之重。
6、不要延迟产品发布
▲ STM32MP157C-DK2
公司可能的最大陷阱之一是没完没了地推迟产品发布。延迟发布的影响通常比人们预期的更具灾难性。惯常情况下,产品延迟发布,要么是因为开发团队没有避开以前开发过程中踩过的坑,要么是没有正确地分配项目投入。采用 MPU开发的初始成本有时高于集成MCU 的成本,但在策略方面,首次在市场上为客户提供新解决方案更为重要。再者,MPU开发的软件复用会容易得多,即使调整了硬件平台,构建用户群持续更新设计也相对简单;MPU项目通常在初始启动后,能够更快地获得投资回报,硬件和软件的迭代更新也非常显著。尽管开发周期有挑战,任务艰巨,但回报更为直接。
7、不应忽视Linux社区
很多时候,公司在进行 MPU 项目开发时,会误判 Linux 版本的重要性。实际开发中,操作系统至关重要,而我们提供的OpenSTLinux版本可以满足大量的开发和工程需求,该版本中针对各种例程的三个软件包,为开发者带来极大的便利。Linux经过近三十年的发展,它的灵魂就是开源,也因此吸引了极为广泛的开发群体,名目多样的开源社区不仅可供开发者讨论交流技术问题,其中的开源代码也可以帮助开发者实现快速移植。2019年,我们还发布了STM32MPUAndroid版本,让开发者能够快速开发基于Android移动操作系统的三方应用程序,熟悉Android的开发者将因此节省大量开发时间。
我们为 Linux 开源社区贡献了大量代码,也因此脱颖而出,我们还将保证广泛的内核支持。Linux 社区验证了STM32MPU的所有驱动程序,我们支持类似 Yocto的项目,这类项目对在嵌入式系统上使用 Linux非常有帮助。另外,我们同时支持两个 Linux 内核。虽然当前的长期支持版本仍在修复和修补程序过程中,我们仍会通过升级和修复支持下一个 LTS 版本。这意味着每个LTS内核至少获得两年的支持,这样公司就可以毫无后顾之忧地更新其操作系统内核,而不必担心报错时的安全缺陷或缺乏支持。
8、不要放弃你的技术社区意识
MPU 的成功是因为开源的灵魂、团队协作的智慧,而提高效率的一个最佳方式就是与专家协作。因此,一个好的MPU开发商必须有很多合作伙伴来帮助工程师完成各种任务。2019 年,意法半导体的授权合作伙伴从 8 个增加到 27 个,在ST 合作伙伴计划中,也有大量团队协助设计人员使用 STM32MP1。例如,我们的一些合作伙伴提供模块来加速硬件开发阶段,而另一些合作伙伴在图形用户界面做了很多工作,极大地简化了在STM32MPU上创建图形界面的门槛,还有些合作伙伴为用户提供工程服务和培训。项目经理在评估MPU或者选型时,都应该考量这款产品聚合的社区生态及质量,而我们日益庞大的社区用户和越来越多的合作伙伴将坚定你选用STM32MPU的信心。
9、不要只埋头设计,更要理解市场
当我们展望新技术的未来时,会发现屏幕越来越普及,蓬勃增长的屏幕数量和种类正在改变这个行业。即使是最简单的白色家电或工业系统也开始有一个酷炫的显示器,并需要一个可以媲美手机流畅度的触摸界面。嵌入式系统中的 GUI 应用也呼之欲出,比以往任何时候都更加常见,逐渐成为电子产品的标配。而伴随着机器学习在边缘端应用的兴起,用户对联网产品有了更多期待。微处理器应用在小型系统上并不是新鲜事,但既要满足更强大的图形功能和更多的AI应用,同时仍保持低功耗,开发者必须考虑采用 MPU来实现。
▲ 触摸处处有屏的新世界
STM32MP1 最为出色的特点之一便是其 3D 图形 IP,可为人机界面(HMI)应用程序创建流畅、复杂的高品质图形环境系统。采用我们的面向用户界面设计开发的合作伙伴方案,可以令开发过程简单明了、工程师获得有价值的回报,同时也满足了最终用户的需求。
10、不要放弃MCU的起源
有一些公司开发微控制器解决方案已经很多年,对于向MPU应用迁移有很多顾虑,会觉得自己是外行,这样的转型会失去以往在MCU方面的经验和技术积累。STM32MP1可以化解这类用户的焦虑,MP1并不要求开发者放弃 MCU。得益于STM32MP1的独创异构系统架构,除了两个A7内核,还有一个Cortex-M4内核,它可以运行RTOS,开发团队可以复用电机控制等应用程序,只需将已在其他MCU上运行的电机策略和算法快速移植过来即可。而MPU带来的高计算吞吐量、大DDR 内存以及Linux 开发环境,与惯用的 MCU 应用程序同时呈现,开发者可以更为顺畅地适应这种转型。