查看原文
其他

芯片短缺,如何快速上手并替换一款MCU

bug菌 最后一个bug 2022-10-14

正文


大家好,我是bug菌!

近段时间国外芯片短缺、涨价使得一些依赖性比较强的企业苦不堪言,在一个项目中重新对一款芯片的评估和选型需要花较多时间和精力,更别说软件工程师对相应芯片的熟练度的评估和芯片自身的问题了。

其实近些年来国内也加大了芯片和半导体的研发和生产,一些国产芯片也获得了较大的突破和提升,面对芯片等等长时间的交期问题,对于一些中低端产品,企业也开始了转向国产芯片的替代方案。

当然做到100%兼容一般是不太可能的,多多少少存在差异,只要芯片性能和功能上能够覆盖,对于一个合格的软件工程师替代并不是太大的难事,bug菌了解到这也是前段时间某知名企业大力招聘嵌入式软件研发工程师的原因之一。

这也就回答了一些初学MCU爱好者的疑问:我是不是只需要玩一款MCU就可以了。答案是:可以的,但是你不可以只会一款MCU,要做到一通百通,否则学习成本实在是太大了。

那如何快速上手并替换一款MCU呢?

1

对比选型 


收集好芯片的参考手册、原项目的实际需求和参数表进行资源和性能上的对比分析,包括芯片的功耗(特别是对于一些低功耗产品)、主频、RAM、ROM大小,外设的分配、性能情况,比如硬件SPI的个数、ePWM的最小分辨率等。

如果资源和性能上能够实现完全覆盖,那替换是没问题,这样往往成本可能会高一些,但是对软件和方案上改动会小很多;如果老板瞅着这点成本也没办法,可以首先在该芯片的同系列的型号下查找。

如果存在较多关键性能参数和资源差异较大且不太满足项目需求,则替换失败,这种情况基本上不会遇到,毕竟大家都是工程师,一般会选择覆盖率在50%以上的芯片来进行评估,当时也不乏有部分公司有合作关系,需要进行这块的替换方案评审,也是没办法的事。

这种是大部分人遇到的情形,因为产品的功能是可以采用多种方案来实现的,就比如说和低速IIC接口设备通信,原来的芯片有较多的IIC接口,所以我们采用硬件IIC通信,其实软件IO口模拟IIC也同样满足通信需求,这样就没有必要在IIC外设的个数上过分纠结;

再比如同价位的替代芯片IO口比较少,而原来使用的IO口并没有速度等方面的特殊要求,那我们可以在外围进行IO口扩展即可等等,这些都是在芯片评估过程中需要考虑的。

可以看出对一款芯片的评估不仅仅只是芯片本身参数性能上的对比分析,同时也非常考验工程师们对软件产品方案的设计与评估,而bug菌去过的一些公司根本没把这块当回事,这样的研发产品流程流程还是不完善的。

当然上面的考量只是冰上一角,还包括芯片的价格、成熟度、稳定性、技术支持服务力度等等都是值得考虑的。

2

快速上手 


如何快速上手对于大部分工程师并不是什么难事,一款新事物的了解无非就是对以往认知的直接投射未知的空缺填补

打个比方当我想用新款芯片的串口,在你的脑海里应该为串口附带波特率、8-N-1格式、发送和接受函数等等之类的,这些就是你以往的认知和积累,这些基本上是所有MCU都普遍具备的标签。

在新款芯片上也是这样的,似乎好像与生俱来,所以你往往也就忽略了这个过程;而到底这些参数该怎么配置、怎么使用等等这些都是未知,就需要你花时间去填补,比如查阅手册、阅读Demo等等,至于填补时间的长短就考验开发人员的素养和能力了。

所以这里也就回答了许多初学者提出的疑问:我该从51单片机入手还是从stm32单片机入手呢?

答案是都可以,该补充的知识都得补充,不管你是由简到繁,还是从繁到简。

芯片的熟悉固然重要,相应开发工具也是你开发的必需品:
1、如何创建工程 (还别说:我见过用了2年stm32的伙计不会创建工程的)。
2、如何烧录 (包括支持的烧录器类型、如何生成烧录文件bin、hex等的转化等)。
3、调试 (支持的断点个数等)。

为了达到快速替换的效果,两点需要注意:

1)暂时不必过分纠缠于底层,什么汇编指令集呀之类的,当然如果你需要移植部分汇编,那没办法老老实实研究一下,包括CPU的堆栈机制等等,但是也暂时不需要太过于刨根问底;

2)对于与本项目无关的外设功能等等暂时不需要探究,首先要明确当前的主要目的。


3

代码移植


到了移植这一步基本上算对芯片各方面比较熟悉了,这也将成为以前代码是否优良的检验标准,代码混乱、毫无设计可言,估计这个工程师们不好受,当然如果外设完全覆盖,你可以通过底层封装进行移植,上层逻辑估计不会大动作。
但是一旦存在部分方案上的修改和设计,那么一套代码就像一栋摇摇欲坠的房子,你还要对一部分拆拆改改,想想都可怕。

好了,本文就暂时跟大伙聊到这里,其实bug菌最近一直有个疑惑,对于芯片短缺这个备受热捧的现象一直冲击我的眼球,但是前段时间我也询问了一下部门采购,整体上并没有太大的价格变动,常规芯片、器件也没什么太大的供货交期压力,包括ST,TI芯片,不知道他们是否有特殊的供货途径等等,但是没有影响也不至于,确实有几个朋友有进行相应芯片方案的替换,所以这里发起一个匿名投票看看在大伙实际项目中是否有感受到芯片短缺,上涨等问题。

2、最后

   如果觉得本文还不错,记得点个赞



推荐专辑  点击蓝色字体即可跳转

☞  MCU进阶专辑 

☞  嵌入式C语言进阶专辑 

☞  “bug说”专辑 


☞ 专辑|Linux应用程序编程大全

☞ 专辑|学点网络知识

☞ 专辑|手撕C语言

☞ 专辑|手撕C++语言

☞ 专辑|经验分享

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存