最近看到很多硬件工程师在抱怨工作中的困难和烦恼。作为一个有经验的人,我也深有体会。很多硬件工程师一开始工作就没有话语权。在这里,我给大家分享一下我早期工作中遇到的一些事情。
职业生涯之初,我从事的是低功耗的硬件设计(一般工业产品的硬件设计和软件设计是分开的,面对生产事故,做硬件的人往往很难也很容易负担)。
印象最深的是有一次耗电不达标。作为一个没什么经验的硬件工程师,他立马拿到了人生的第一个锅;当时年纪小,很不服气,认为自己没什么问题,只是涉猎了软件部分,然后就想着按照软件工程师给的逻辑,自己再做一遍软件。后来发现在单片机进入睡眠模式之前,IO没有很好的匹配。
我在进入睡眠模式之前,从代码开始逐一配置单片机上的所有IO,就没有这个问题了。所以问题找到了,不能为了偷懒把多个io配置在一起。软件工程师犯了一个错误:睡觉前没有重新配置所有IO,导致IO功耗低的BUG。
在另一种情况下,在客户中发现的约50%的产品在一段时间后电池耗尽。R&D大惑不解。多次查代码没有发现问题,之前也没有死机(死机后低功耗无法实现,功耗太高)。我在工厂花了很多时间进行测试,同时另一组人去了客户的现场进行测试。经过测试,我发现一个IO零件产品的产量很高。导致电流增加约1mA。原因是客户上电时做了秒脉冲输出,产品断电后由电池供电。客户在断电前没有配置off秒脉冲输出,断电后程序没有配置IO回来,导致IO输出高的概率为50%。
每一个问题的出现和解决,都是付出大量时间和金钱换来的痛苦经历。而这些都是软件问题,但当功耗问题出现时,领导往往会先求助硬件工程师。“你设计的产品功耗高,电池不耐用。你必须迅速处理,看看出了什么问题”。
当硬件厂商拿不出代码的时候,软件工作者在编程的时候往往不会承认自己的配置有问题。如果他们把其他厂商开发的模块外包出去,第一句话就是“我做软件这么多年了。开发了这么多产品,这么简单的产品怎么会出问题?是你自己的产品没做好。备受压力的硬件工程师别无选择,只能自己找出问题所在。最后软件也不一定会承认自己的程序有问题。最多只会说两个人没沟通好。
硬件工程师前期真的很辛苦,没经验很容易背锅;只有你能有丰富的知识和技能,你才能在前期抵御这些伤害。硬件工程师必须熬过前期的积累阶段。当我们有了6年以上的经验,我们的话语权就开始增加,也不用担心35岁会遇到职业瓶颈。硬件工程师越老越吃香。他们越有经验,工资就越高。
想学习单片机编程的同学可以继续关注华为单片机编程,和我们一起成长。如果你喜欢,可以关注我们!
