2020年初,随着Ti的16位单片机MSP430FR6972价格猛增,而且采购经常打电话抱怨芯片交期太长,让再找供应商。在网上联系到的几家新供应商要不就是需要加价才能供货,要不就是交期在半年以上,眼看仓库的单片机库存越来越少,主管拍着桌子骂道,“妈的,太给他们面子了,换国产的,统统往国产单片机上靠。”就这样,我们开启了半年,或者说至今都在对国产单片机FM33G048的探索路上。
先说之前为啥用Ti的MSP430FR6972,Ti的MSP430系列的单片机对低功耗部分做的相当出色,对于电池供电的产品来讲,功耗决定了产品的使用寿命,也决定了产品的市场竞争力。最初,公司电池供电的设备都是用的MSP430FXX系列(Flash型)的,但是随着NB产品的兴起,要求设备支持远程进行升级程序功能,MSP430FR系列(铁电型)单片机,凭借其对信息存储部分灵活的调用、修改等优势,被越来越多的需要升级功能的产品选用。生成的代码文件.txt中,有信息段部分,用户可以直接打开.txt,找到参数信息对应的位置进行手动修改。还可以对信息段中数据进行部分或全部删除,实现信息段部分覆盖升级和信息段不覆盖升级,对于需要升级代码段,又不想改变信息段存储数据的产品,在使用开发维护起来十分方便。
再来说说为啥选用了复旦微的FM33G048。其实,在这之前,我们也考虑过其他的国产品牌,比如华大、东软等等,我们都考虑过。主要的决定条件有以下几种:1.要求稳,因为公司每年要出去300多万台产品,基数大,芯片出问题的概率就不容忽视,一但出现问题,要有技术支持能帮在较短时间内定位和解决,因为产品种类多,换芯片的代价太大。这就要求芯片厂商在国内有一定的基础和实力,售后体系比较完善,我们才敢合作。其实,之前我们比较忠于用华大,可是后来它被美国盯上后,我们怕供货出现问题,就放弃了。2.要求功耗低。公司产品绝大多数都是电池供电的,所以对功耗方面要求较高,虽然知道可能找不到像Ti那样低的功耗,但还要尽可能的选用功耗低的。3.芯片价格要求低。每年出货产品较多,一个芯片能剩下1块钱,对于公司来讲,都会提高很大的利润空间。4.要求支持单片机自编程,这个主要是为了便于开发升级功能。近两年,我们的设备做上升级功能后,极大的减少了现场进行售后维护的工作量。我们在公司一但测试发现什么问题,或是客户反馈问题,我们查明原因后,需要通过升级程序优化产品功能的,我们都会远程进行升级,实现一个动态的更新和维护功能。另外,一些退回的产品或是呆滞的产品,我们可以通过升级,改制成其他产品进行售卖,降低了呆滞率。我们已经尝到了升级功能带来的甜头,不支持升级功能的我们不能接受。综合以上几点因素,我们选用了资历雄厚的半导体厂家复旦微。
为啥用选用FM33G048这个型号,其实是在我们提出我们产品对串口数量、RTC、功耗等方面的要求后,厂家技术给我们推荐的几个满足要求的型号之一,考虑到它是ARM Cortex-M0+内核,之前公司不少工程师都用过ST的ARM核的MCU,这样更便于工程师们上手,我们就选用了这个型号。
“为啥咱们不用那个80pin的,LQFP80的比LQFP64的大不了多少,而且引脚功能还多点。”我挠着头问着领导,“这个引脚的出货量最大,供货稳定。”,领导答道。从此,我才明白,对元件的选取,不能光看哪个参数最好,还要考虑供货周期等实际问题,这样才能保证自己的产品稳定生产,稳定交期。
接下来,便是长期的掉头发的日子了,从官方提供的库函数,用着之前做ST时的KEIL编译器,一点点把产品做了起来。期间,从铁电搬到Flash时,那种对数据存储不能随意的摆弄的不快,还是很让人怀念MSP430FR6972,但总得克服。期间,也遇到了难解决的问题,复旦微技术专程从上海跑来,和我们一起熬夜查找问题。第一个产品半年后,终于出来了,日平均功耗21.6mA,比之前的使用Ti的MCU时,日均功耗22.4mA还要低,这样,我们的产品就又可以多坚持1~2年的寿命。我们原以为Ti的低功耗MCU就是业界内最好用,功耗最低的MCU,但我们努力向着优秀靠近,熬过了一个又一个深夜,攻克了一个又一个问题,攀上山顶的那一个,我们竟然看到了意味的风景。我们都笑了。
就这样,一个又一个的产品被附上了这颗复旦微芯,从流水线被交到了一个又一个用户的手上。这颗国产芯支配着数亿个电子,在设备的回路中有序的轮回着,为散布在城市各个角落中的那份安宁,守候着。