本帖最后由 xtoolbox 于 2019-3-16 10:56 编辑
我还在学校的时候,接触得最多的就是A记和P记的单片机。凭着在学校折腾的小玩意,谋得了一份搞研发的差事。
甫入公司,便赶上公司要换代一款产品。当时初来乍到,寻思着一定要在公司做点事情,不能让别人小瞧了去,就硬着头皮接下了这个项目。
接下项目后,老大对我说:“我对换代有三个要求:成本,成本,还是成本!”
我说:“老大,不对啊,这里只有一个要求,就是成本啊。”
老大高深地看了我一眼:“小伙子,产品研发要投入,这叫研发成本。产品要采购器件并生产,这叫物料成本。产品上市后要升级换代,这叫维护成本。”
我若有所思的点点头,心想老大果然是老大,这都能掰扯出个子丑寅卯来。
老大说:“这里有一块代理商送来的开发板,你研究一下先,看看能不能用来替换老产品上的芯片。”
接过老大给我的开发板,板子上的芯片印有STM32F103几个字,就这样,我懵懵懂懂走进了ST MCU的大门。
输入STM32F103后,搜索引擎将我带到了ST MCU的娘家,st.com。先扫了一眼芯片的数据手册,看见了几个关键字:72MHz,64K Flash,20K RAM,USB。
72M的运行速度,印象中的单片机都是几M十几M的运行频率,有点不敢相信这是单片机的速度。
64K Flash,起初我以为单位是bit,看了手册才知道单位是byte,64K Byte的Flash,这得写多少代码才能填满。
20K的RAM,这个太奢侈了,要知道以前我在学校用的单片机多的也才几K字节,用这个搞点算法什么的再也不用扣扣索索的了。
USB功能正好是老产品需要的功能,之前都是用的一个USB转串口芯片来做的,这下可以用一个芯片解决了。
看着这些参数,想着以前在学校用的单片机,那感觉就像是刘姥姥进大观园。随着了解的深入,更是惊喜不断。
读完芯片数据手册之后,我发现一个问题,我还是不知道怎么使用这个芯片。
ST将芯片手册分为了数据手册和参考手册。数据手册主要是介绍芯片电气参数,引脚定义。参考手册中是对芯片各功能的以及寄存器配置的详细说明。
打开参考手册后,直接傻眼了,这么多的功能模块,这么多的寄存器,那得看到什么时候才是个头。
ST考虑到了这种情况,为方便使用芯片,提供了外设库和例程,不用去啃天书般的手册。
老产品上需要ADC,USB通讯以及一些IO功能,我在相关例程基础上稍做修改,便在开发板上运行了起来。
令人惊喜的是,这款芯片竟然支持断点调试,能够一步一步的看到执行的过程。
调试的过程中搜索资料来到了21ic的ST论坛,许多工程师在这不吝分享他们的经验,让我避开了很多的坑。
我原以为要花很长时间来熟悉开发环境和测试功能,不曾想竟然很快就完成了任务,赶紧去给老大汇报成果。
汇报的时候心理还是有一点点的骄傲,毕竟这么快就在新片子上把功能摸底工作给做完成了。
老大看出了我的得意之色,淡淡的说了句:“代理商的小李说这芯片上手快,看来没有忽悠我。这板子是代理送我的,我就送给你吧。”
我随手上网搜了下这板子,才不到200元,难怪老大顺手就给我了,那个时候有些芯片的调试器都不止这个价了。
资源评估完成后,接下来就是紧张的开发工作了。由于是工作中的第一个项目,更是格外的小心对待。
得益于便捷的在线调试功能,开发过程中的问题都能快速定位并解决,迎来了功能演示的那一天。
老大看了我的演示后说:“不错,可以做样机了。不过你得换一个脚少的芯片,不是开发板上的这款。”
听完老大的话,我心里一紧,干嘛不早点说,我都在这个芯片上花了这么多时间了,现在还得换到另一款上去。
拿着手册对比了两款芯片之后,长出了一口气,开发板上的是STM32F103VBT6,产品上希望用STM32F103C8T6。
这两块芯片除了引脚数不一样,Flash不一样外,其它都一样,可以通用的。
ST MCU的每个系列,根据需求不同,可以选不同的内存大小和引脚数量,完全根据实际需要来选择片子。而这些片子之间的代码是完全兼容的,几乎没有移植的工作量。
这可给我省了大事,以后老大要我加功能,弄更复杂的算法,我都能以这个片子为基础,以不变来应万变。
一天,老大把我叫到了他的办公室,通知我通过了试用期,转正了。虽然早已知道结果,但是听到老大说了之后还是激动了一下。
他从桌子上拿了一块新做的板子,说这就是用来给老产品换代的。让我在这上面调试新的代码。新板子看起来比老产品的简单许多。
老大说:“这板子的BOM比以前那个便宜不少,我们降低成本的目标,基本算是完成了。不过客户反馈希望我们的产品能再进一步,增加一个A功能。”
我说:“加A功能得换脚更多的片子,这个系列有一款R8T6的片子,脚比C8T6多一点,刚好能满足A功能的需求。”
老大点了点头说:“是的,当初让你研究这款片子,就是想着以后扩展方便。这不换代的事情还没完,新的需求就已经提过来了。”
听罢我回到了工位,投入到了A功能的研究中。之前的代码完全不用修改,只需要加上A功能相关内容就能适配在新片子上。
脑海中突然响起了老大在我接手这个项目时说的话:“我对换代有三个要求:成本,成本,还是成本!”
原来老大早已看穿了这一切,这一款芯片正好满足了换代的要求,提升了处理能力,降低了研发成本和物料成本,还为将来的扩展升级预留了空间。姜,还是老的辣。
光阴荏苒,岁月如梭,刚入行的小伙变成了大叔,STM32家族也添了不少新丁。
在工作的磨砺中,我从一个茫然无知的学生变成了工程师,在公司也学着像当年老大那样,指点着新人。
在市场的洗礼中,STM32系列也越来越茁壮,从当年F1的一颗幼苗,长成了参天大树,撑起嵌入式的一片天空。
时代的车轮滚滚向前,我与ST MCU的故事还将继续上演。
|