• 正文
  • 相关推荐
申请入驻 产业图谱

嵌入式软件工程师,被深夜的硬件调试击碎了傲慢

02/13 10:40
763
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

我是老温,一名热爱学习的嵌入式工程师

春节假期后的第二天,现在已经是凌晨三点,办公室里面的日光灯管在工程师的头顶嘶鸣着,鼠标的点击声和键盘的按压声,在不断地相互辉映着。

(说好的,春节假期回来后,两周内进行产品小批量生产,然后交付给客户。)

我揉了揉疲惫的双眼,盯着示波器上扭曲的信号波形,第28次按下了Debug Tools上面的固件烧录按键,心里面期待奇迹发生。

某台样机的LCD显示屏,显示图像时依然存在撕裂现象,但作为一名饱经风雨的嵌入式软件工程师,有时候我却信奉,“硬件问题都是玄学”,。。。

“老温,用最初制作的工程样机,你的代码确实是通过了单元测试。”,硬件组的林工,他把出问题产品的硬件测试报告推到我面时说道。

“但是你看,换了试产供应商后做的样机,这颗芯片的CLK时钟线,在穿过六层板的第三信号层时,就会串扰DDR的信号。”

我看着他用手指点在那些蝌蚪般的蛇形走线上,疲倦的大脑突然意识到:阻抗信号完整性,我为啥一直没有注意到这个排查方向?!

“软件调试了数十遍,结果,问题居然出现在硬件制作工艺的差异上?”,望着窗外漆黑的天际,我苦笑一声。

作为一名嵌入式软件工程师,平时都习惯了在代码里面编织各种逻辑,却从未像此刻这般渴望,渴望窥探电路板下铜箔与树脂的微观世界。

三天后。。。

“老温,来试试这个新样板。”,林工扔来一款新的样机,焊盘在太阳的照耀下泛着金色的光芒。

我问:“林工,这次改版跟前两天调试的,有啥不一样吗?”

林工说:“我重新改进了DDR和CPU相关的布线,用了嘉立创的盘中孔工艺,并且重新进行了阻抗匹配,你再试试”。

--- 编译、烧录、按下RESET按键,一整套常规动作下来,

这一次,“奇迹”发生了,新样机运行无误,图像照片终于可以完美地显示在LCD屏幕上面。

 

“为何会如此神奇,林工,可以详细说说你的改动吗?”,我问。

林工说:“我问外包商拿了PCB源文件,发现他们Layout是用常规的BGA扇出布线方式,导致PCB上面有较多的过孔侵占布线空间。”

“他们为了省成本,还换了PCB打样的供应商,又没有注意高速信号的阻抗匹配,所以就导致了这次问题!”

林工接着说道,

“我在他们的基础上,把BGA封装的芯片改成嘉立创盘中孔了,也换了打样供应商,在嘉立创做6层板打样。”

我来兴趣了,接着问:“为啥盘中孔会有如此大的作用?”。

林工继续耐心解释:“当常规的过孔侵占了30%的布线空间,我们可以考虑用盘中孔工艺,0.2mm的树脂塞孔既能保持焊盘完整,又让阻抗连续性提升了18%”。

“噢噢,原来如此,又学到了。”,我似懂非懂地点了点头。

“那你这次又沉金又盘中孔的,岂不是成本很高?”,我接着说。

林工笑着说,“你这写代码的不懂,在嘉立创,6~32层打板时可以免费使用盘中孔+沉金加厚工艺,6层板还可以直接用免费打样券,成本又进一步降低”。

“我比较过价格,10cm*10cm的6层沉金亚黑PCB样板,在其他厂家光是沉金+盘中孔的工艺费用,就接近400!”

“反正样板便宜,我现在先多整几块给你,你多验证几遍,没问题就可以发布固件进入小批量了。”,林工最后说道。

我看着桌面上一堆金灿灿的PCB和样机,脑袋突然间陷入了思考,思考起嵌入式软件和硬件之间的哲学关联。

在嘉立创的高多层PCB设计指南里,我发现了硬件电路板与软件分层架构,有着惊人的相似性:

- 电源层采用铜块挖空技术,如同代码中的内存池管理。
- 差分信号层错位堆叠设计,堪比多线程的锁机制。
- 混合介电常数材料应用,像极了软件里的缓存分级策略。
- 盘中孔像极了代码里的“指针跳转”,绕过堆栈溢出风险;
- 六层堆叠堪比分布式系统的分层架构,让电源、信号、地各司其职;
- 沉金工艺则如同严密的异常处理机制,将氧化与虚焊的概率收敛至零。

如今,我依然保持着嵌入式软件工程师的“傲慢”,但工位上的《高速PCB设计秘籍》已经逐渐开始与往年的《C++高级编程》并驾齐驱。

我在想:“真正的嵌入式全栈工程师,应该既能用代码驯服晶体管,也能让铜箔的纹路吟诵出最优的算法。”

我转动板卡,让阳光在沉金焊盘上折射出一道金色光芒,在这个时代,最优雅的编程语言,可能就隐藏在1oz铜厚的微带线里。

感谢阅读,愿各位工程师在未来的日子里,信号完整,代码无Bug!

点赞
收藏
评论
分享
加入交流群
举报

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录