硬件原理图,网络命名该怎么写?-燚智能硬件开发周教授
讲完了英文缩写,接下来要讲讲如何规范化命名。
规范化的原理图命名方式
规范化的原理图设计,无需看规格书,无需讲解,甚至无需看网络连接,直接看名字就能看出来元器件的pin脚定义以及网络的意义。
这个做法能够显著的提升配合工程师的工作效率,使软件工程师、硬件维修、Debug都能够一眼就看明白。
↑ 从网络名可以看出来这是什么。数据流向是从摄像头到基带数字接口,使用的是MIPI0接口。其中CAM2DBB= Camera to Digital Baseband。DATA P和DATA N分别是差分数据的正和负。
↑ 图:左侧原理图的pin脚名,详细标注了功能、电压域、GPIO编号。网络名称也详细标注了GPIO编号和功能。
如GPIO221_USBHUB_POWER_CTRL,单看这个名字,我相信没有谁看不懂:编号为221的GPIO口,用于USBHUB芯片的POWER的Control。就是电源开关。
其中标明了GPIO的编号,这个对于软件工程师来讲,绝对是个贴心之举。像这种多核ARM的CPU,GPIO数量动辄几百个,而软件工程师写代码的时候必须要知道GPIO的号码,才能去控制它。如果不标GPIO号码,软件工程师对着规格书查编号至少要查一整天的时间。
大公司通常会要求硬件工程师给出GPIO MAP,让软件工程师对着这份表格修改GPIO配置表。但小公司的硬件工程师只需要建封装的是标清楚GPIO的编号,画原理图的时候也写清楚编号和功能,软件工程师也一样可以节约很多查资料的时间。
↑ 图:原理图封装上,注明pin脚的功能,网络名写的不长,但是特意在网络上用文本标注了网络名的英文全称。例如NWEB=Nandflash Write EN。
↑ 图: PMU的电源网络上,芯片引脚标明电源的功能,网络上用文本标明这些LDO的编号,电压域的模拟/数字属性,电压,最大电流等。硬件工程师自己使用这些电源的时候无需查规格书即可知道哪些能用哪些不能用。软件工程师配置电源的时候也只需要对照原理图即可。
反面案例
好的硬件工程师是项目组中的暖男,靠着严谨的工作态度和工作方法,串联起采购、生产、软件、测试各个环节。
但是粗心的硬件工程师会挖很多坑,一不留神就坑了队友的事情比比皆是,接下来举两个实际的案例,都是网络命名惹的祸:
一,电源名称标称的不合理
典型的原理图网络命名不合理:SM2700_3V3的供电,提供给MSM01B相关的设备使用。软件工程师在调试MSM01B模块的时候,没有打开SM2700相关的供电,导致图中的开关没有打开,信号不通。
正常的做法,要么不说是SM2700,只叫做3V3,然后给软件工程师把电源拓扑图画清楚,要么就叫做SM2700_MSM01B_3V3。长就长一点吧,至少别人调试的时候不会把另一组供电给漏掉。
二,一个小错误,但折磨几十号人人足足一个月。
这是早些年我们做过的一个项目。一块XGA分辨率、MIPI接口的显示屏。上图是靠近LCD连接器部分的EMI滤波器网络,下图是靠近CPU部分的接口网络。
故障说明:屏点不亮。各种波形抓出来都是正常的。和屏的通信也是正常的,电路板飞线焊接另一块2线MIPI屏能够点亮。唯独这个4线MIPI屏点不亮,一直是花屏。
这个问题折腾了全公司上下很久,各路驱动工程师、CPU原厂FAE、LCD原厂FAE轮番上阵,搞了接近一个月还没有解决。
有兴趣的读者,可以自己看看上面两张图,找找问题。问题都在这两张图里面。
就在大家都灰头土脸的准备投降的时候,有个年轻小伙发现问题所在了:
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
有一组线连错了!
最最低级的错误,这个坑挖的够深!
千万别埋怨检查者没有检查出来,四十多页的原理图,密密麻麻的几千根走线,埋藏在平时没有人去改动的地方的错误,十几根线中间的一根的错误。的确极难被发现,谁也没想到这里会出错。
不过说实话,我自己也没想到,为什么几十号人翻来覆去就是没检查到这里呢?
总结:
规范化的画图、尽可能详细的标注、尽量保证阅读者不会出错误。
我经常跟软件工程师说,千万不要相信硬件工程师!不要相信他们画的图、他们给的数据、他们信誓旦旦拍着胸脯说的“没问题”。坑了软件工程师最深的,一定是硬件工程师。
作为硬件工程师,战战兢兢如履薄冰,不把自己变成猪队友,想办法变成项目组的顶梁柱,这才是优秀的硬件工程师。