加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

程序员“趣”事一箩筐 | 做个勇敢的小马,亲自探探河水的深浅

2015/01/30
1
  • 1评论
阅读需 11 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

 

有位同事曾经说过这样一句话:“事情没有难或者不难,只有你会和不会”。难题也许没有那么难,简单的问题或许是一个陷进,而且深不见底。

在我刚刚从事电子工程师的职业时,在一家农业设备生产公司工作。领导让我参与一个简单的项目。项目功能非常简单。就是使用MCU驱动一个继电器,继电器输出一个干接点,向外部提供闭路和开路控制信号,采购方出是一家国营企业,要货量很大,订单额让老板喜笑颜开,于是他很高兴地承接了这个项目,对方要求EMC实验一定要在正负4kV,并且程序120秒能稳定工作。

这个要求对我们来说不是大问题,因为我们以前的产品都可以满足这项要求,而且我们的项目负责人对此类实验非常熟悉。由于我从事电子工程师的职业时间很短,所以安排我编写软件

当然软件也确实没什么工作量,我一个上午就编写完成了。单位在此类硬件设计上积累了比较丰富的经验,项目负责人已经安排了实验。当客户开始催着交货时,我们仿佛看到了钞票飞进来了。

但是,不巧的是这个项目出问题了。为了减轻产品重量我们采用了一家公司生产的AC-DC电源,EMC实验中正负2kV没有任何问题,正负4kV会出现继电器接触点跳动。事情就从这里开始了,项目负责人赶紧查找问题,并且反复实验,但是问题始终没有找到。于是项目负责人联系了AC-DC的生产厂家,厂家的答复是他们的电源质量很可靠。并且在工业环境中使用案例非常多。

因为与对方合作已经非常时间了,他们的答复我们还是很相信的。可是问题还是找不出来。

——————插播广告———————

 

【征稿启事】:我遇到的“猪”一样的队友

欢迎来稿吐槽,有稿费呦!

 

 

 

因功能非常简单,我对自己写的程序还是蛮有信心,后来项目负责人建议降低工作频率。我按照他的意见改写了程序,情况并没有明显改善。项目负责人当时也是抱着试试看的想法,他也没有认为软件可以解决这个问题,一连两天在硬件上下工夫,增加电源前端的电容容量和耐压,在电源的后端加电感,非但问题没有改善,有时候会更加糟糕。几天下来,全组的人都要崩溃。

这是一个大项目,公司不愿意轻易放弃。于是总工亲临指导了,方法还是增加电容、增加电感,经过一天奋斗依然没有进展。实在没办法了,总工建议在220V的交流线增加磁环,问题确实解决了,可以肯定一定电源导致MCU复位的了。

但是,如果增加磁环成本会增加,这是可以接受的,但是体积和重量都会增加,这点客户不允许。问题就在这里,一开始大家都认为简单的问题,现在变得复杂了。总工的意见是,可能是AC-DC有问题,过滤干扰的能力不够,还是换公司传统的电源方案,220V进变压器,然后采用电桥整流,然后应该能解决问题。但是变压器太重,不满足用户对重量的要求。

老板和客户沟通多次,结果是用户对重量、体积、抗干扰的技术不作出丝毫的让步。这时问题变得复杂起来。这个简单的电路板好像和我们几个人作对一样。我们开始怀疑这个项目是不是要放弃了!?老板当然不会轻易放弃,于是找出他能找到的外援,但是只有结论没有办法。结论是由于电源引起MCU复位,我们更换好几家的AC-DC电源,问题依旧。


因为我当时刚入行不久,在老板眼里是一个新手,水平一般,所以这些问题都轮不到我来解决。因此在全公司都在为这个问题头疼的这段时间里,我反倒置身事外了。于是我趁机开始学习电路设计基础,通过一个月的学习,我没有发现除过AC-DC以外电路设计存在问题。接着我开始学习单片机入门,在这个过程中我仍然没有找到解决问题的办法。最后我将200页MCU的说明书细读了一边。

本来计划最多一个月解决的问题,现如今已经一个半月了。问题还是原来的问题,并且已经成了项目负责人的噩梦。

一天下午,我和同学李某去吃饭,没想到在饭桌上看到了问题的转机。李同学在一家生产安防设备的企业工作,职务也是电子工程师。但是他一毕业就开始从事电子产品设计,工作经验比我多出六年之久。而且李同学的专业水平在他们单位也是执牛耳的,聊天中我们无意中聊到怎么提高产品的抗干扰能力上。“MCU上电启动、看门狗复位启动、电压异常复位启动,复位源的寄存器一定会不同有标志,这样就可以确定系统复位原因,如果使用铁电存储器每20毫秒将系统的运行状态参数保存一次,这样如果是异常复位就可以读取铁电存储器中保存的运行状态参数,将系统复位到上一次的断点处,如果是慢速设备就好像系统一直正常运行一样。。。”。李同学娓娓道来,像是在背一篇烂熟的小学课文。听到这儿我心里不由得颤抖,MCU的手册中有这些介绍,我有一点印象,当时还想这些有什么作用。按照李同学的说法好像也能解决我们遇到问题。我恍然大悟。

——————插播广告———————

 

【征稿启事】:我遇到的“猪”一样的队友

欢迎来稿吐槽,有稿费呦!

 

 

 

第二天,我查看了MCU手册,确实有电源异常、时钟丢失标志。我们的产品上面有一个记录产品运行时间的铁电存储器。于是我在主循环中添加了一个每隔20毫秒存储一次运行状态任务。在主程序的入口处添加了系统复位检查函数,如果是异常启动,那么就把铁电存储器中运行状态数据,系统可以从上次断点处运行。实验运行状况非常好,我心里也十分惊喜。

下午,我将生产的十个样品中3个MCU程序重新下载了一下。在办公室找到3个470uF的电容将产品上一个220uF的电容换了。第二天,项目负责人拿了一个我更改过的一个产品去做实验,继电器再也没有跳动,试验通过了。他当场惊呆了,于是又连续试验好几遍结果都一样。

他急匆匆跑进办公室,拿了五、六个样品去实验室。一个多小时后才走出实验室。下楼问我:“骆驼,470uF电容的都没问题,这个电容是不是你换的?”

“是的”我心中窃喜。
“你运气真好,换一个电容就好了,看来就是这个问题。”
“我...”
“不错,你把剩下的电容全换成470uF,试验试试。”
“好的。”

我把剩下的电容全部替换并且重新下载了程序。交给项目负责人,试验全部通过。

“问题解决了,真没想到是电容的问题!白折腾这么长时间,明天给老板汇报一下,可以给用户列出供货计划。”项目负责人非常高兴。

如果你觉得问题非常简单,那么就要注意陷阱。

我们还是来温习一下小马过河的故事吧,老牛说河水很浅,松鼠说河水很深,小马听完就矛盾了,开始认真思考:河水到底是深还是浅?我能不能过去?

我遇到的这个问题也是一样,自己能不能解决?是不是资历浅就不能解决?还是要试一试才知道。当然要先有基础,如果我没有仔细研读MCU手册,在和李同学聊天的时候也听不出问题的端倪,也找不到解决问题的方法。

遇到困难要敢于寻找解决问题的方法,做个敢于尝试的小马。

与非网原创内容,谢绝转载!

往期回顾:

之四:拖到辞职也没翻开书

摘要:小李是我们单位的资深工程师,产品量产以后,小李的工作只需要维护即可,于是日子变得清闲起来,每天网络小说度日,有一天良心发现需要学习新知识,跟上技术更新的步伐,可是迟迟不肯开始....

之三:再好的专业,技术也要扎实才行

摘要:老板的亲戚来公司上班,还是名牌大学的硕士,听说资历很深,可是不喜欢和人交流,拿出一个小项目做实践,一个很小的板子焊接了三天,后来他竟然问了这样一个问题...

之二:老板的外甥:“朝里”有人也别太任性

摘要:老板的外甥保送了西安某大学的研究生,想趁暑假来公司实习,顺便学习点实际知识,于是老板把他托付给了骆驼,结果这小子基础知识没有,还不想踏实补充基础,好高骛远,只想一下子学到真本事....

之一:技术创新更得力

摘要:一位参加工作3-5年的工程师,凭借目前的新技术,其工作能力可以达到工作30年的老工程师90%的水平甚至超越。由此可见,年轻人凭借新技术完全可以挑战权威,可见新技术的爆发力...

——————插播广告———————

 

【征稿启事】:我遇到的“猪”一样的队友

欢迎来稿吐槽,有稿费呦!

 

 

相关推荐

电子产业图谱

早年从事软件测试工作,2002年从事C语言教学。同年设计了视音频切换器,用于硬盘播出机。次年开始从事热电偶检测装置的设计。2010年从事现代农业管理机的设计。2012年从事电力行业的FTU设计与研发,成功编写了FTU软件。2013参与了塔吊安全监控设备开发。10多年来对C语言情有独钟。略懂verilog。