最近看到许多硬件工程师在吐槽自己在工作中的不顺利,遇到的各种麻烦事情,作为过来人我也深有体会,很多硬件工程师开始工作的时候没有什么话语权,下面我和大家分享一下我早期工作时遇到的一些事情。

最开始从业的时候我是做低功耗硬件设计(一般的工业产品硬件设计和软件设计是分开的,在面对生产事故中做硬件的往往很苦逼,也很容易背锅)。

最让我印象深刻的是有一次出现了功耗不达标的情况。作为一个经验不算很足的硬件工程师马上就领到了人生中的第一个锅;当时年轻气盛很不服气,认为自己的没有问题,刚好自己对软件部分也是有所涉猎,然后自己按照软件工程师给出的逻辑自己想着把软件弄一遍。后来发现是单片机进睡眠模式前IO没配好。

我是通过在进睡眠模式前把所用的单片机上所有的IO从代码上把IO一个接一个的配置一遍就没有出现这个问题。从而找到了问题所在,不能为了偷懒多个IO一起配置。软件工程师犯了一个毛病是进睡眠前没有把所有IO重新配置一遍,所以才导致IO低功耗的BUG出现。

还有一个产品的情况是产品在客户那里发现有50%左右放了一段时间后电池耗光。研发百思不得其解,多次查看代码没发现问题,之前也没出现死机的问题(死机后会导致不能进低功耗,功耗超高)。通过自己在工厂花大量的时间去试和另一组人同时去客户现场测试,经过测试后发现一个IO部分产品输出高。导致电流多了1mA左右。原因是客户上电做了秒脉冲输出,下电后产品就用电池供电了。客户下电前没有配置关闭秒脉冲输出,程序下电后也没有把IO配置回来,导致有50%的概率IO输出高电平。

每个问题的产生和解决都是付出大量的时间+金钱换回来的惨痛心得。而且这些都是软件的问题,但是功耗问题发生时领导们往往第一个找的是硬件工程师,“你设计的产品功耗偏高,电池不耐用,你快去处理,看看是哪里出问题了”。

做硬件的又拿不到代码,软件人员往往开始不会承认自己编程时配置上有问题,如果是外包其他厂家开发的模块,他们的第一句话就是,“我做软件这么多年了。开发了这么多产品,这么简单的一个产品怎么可能出问题,是你们自己的产品没做好才出的问题”。苦逼的硬件工程师没办法,只能自己想各种办法找到出问题的地方。软件人员最后都不一定会承认是自己的程序有问题最多只会说两人没沟通好。

硬件工程师前期真的是很苦逼,经验不足容易背锅;只有自己的知识技能够丰富,才能抵挡前期的这些伤害,硬件工程师前期必须要熬过积累阶段,当我们达到6年以上的经验后我们的话语权就会开始增加,而且也不用担心35岁所会遇到的职业瓶颈问题,硬件工程师越老越吃香,越有经验工资越高。

想要学习单片机编程的同学可以持续关注华维单片机编程,与我们一起成长,喜欢的可以点个赞关注我们!