广告

模拟工程师和数字工程师合力解决了一个模拟难题!

2019-08-27 14:27:29 Glen Chenier 阅读:
这个故事要讲的是一个模拟工程师与一个数字工程师携手合作,利用各自的专长技术,出人意料地解决了他们完全不熟悉的一套系统的问题。

话说我们公司的业务部门曾经代表工程部门接下一个挑战:他们承诺某个客户,表示我们能够修理好一套电信产品,但其实那种东西我们以前从没见过,所以也没有测试工具,更别说它的架构图了(原厂也已经停止支持该产品)。jrXednc

无奈之下,工程部门只好再一次使出浑身解数,力求达成使命;于是我的办公室出现了大约15片可热插拔背板的板子,准备进行初步评估并探索其内部运作。这些板子包含专有的SIMM直插式内存模块,其中有几个竟然已经坏了,暂时用其它板卡上有明显烟熏损伤的内存模块来替代。我们把它们平放在工作台上,接上电源,成功让它们起死回生了(但是我们没有测试机箱可用!)。开机后它们能通过RS232端口进行通信。jrXednc

那些内存模块内包含4颗SRAM以及4颗闪存,每颗存储器芯片分享一条8位宽的数据总线,每一对SRAM能与所选择的相同芯片一起工作。我跟老板说,我们可以专门为待测内存模块做一个小型测试夹具,进行SRAM测试,或是在有必要时重新编程闪存。jrXednc

于是坐在距我三格座位之远的一个数字/软件工程师同事,被指定跟我一起完成这个任务。他之前设计过一款使用表面贴装 PIC微控制器的PCB,能用来作为我们目前或未来所需测试夹具的通用I/O。想不到它刚好有足够的I/O线路能处理待测内存模块的地址与数据总线,而且只要我将4个独立的待测数据总线在夹具上两两成对绑起来,就还会有两条备用线路,因此我们决定就用它了。jrXednc

我订购了必要的SIMM连接器,一块电镀通孔面包板(plated-through-hole protoboard),还有一些带状电缆(ribbon cable)以及IDC插座来连接PIC电路板。间距为0.05英寸的72接脚SIMM连接器有点恼人,因为面包板必须要拥有相同的间距;其微小的0.025英寸直径小孔无法容纳0.025平方英寸的针脚,所以无法进行绕线(现在我知道谚语“Can’t fit a square peg into a round hole——格格不入”的由来了!)。jrXednc

我必须直接把带状电缆焊在面包板上,并串连一条短的30AWG线到SIMM连接器。只要保证绞缠的带状电线没有镀锡过度(overly tinned,镀锡是为了让线路能绞在一起),它们实际上能刚好穿过面包板的孔洞。jrXednc

另一个恼人的状况是SIMM连接器有塑胶做的固定片(retaining tab),会因为内存模块的重复插入而快速穿出。制造商的这样设计可能是因为通常SIMM只会在产品生命周期中替换一次,但我们是为了要测试内存模块,得重复插拔。jrXednc

幸运的是,因为预料到最后会需要方便替换,我为SIMM连接器在面包板上使用了插座式接脚条(socket pin strip)。随后我发现一个有金属固定片的连接器,供应商的在线元器件说明中并没有显示这种特殊规格,所以我得从众多机械图片中自己去找。jrXednc

夹具的第一次测试很顺利,我同事编写了一套walking-ones存储器测试程序,能立即在数个待测电路板上发现损坏的SRAM芯片,我们将之替换然后重新启动,但一直出现令人不安的“RAM损坏”提示信息。因为可用性,我们用12ns的SRAM取代原本20 ns规格SRAM,速度应该不是问题….嗯…所以可能我们需要改进测试算法。jrXednc

然后我们鼓起勇气,从正常内存模块的闪存上复制了大约五个不同版本的固件,并尝试把新固件重写入模块中。一开始完成了半开机(semi-booted),却显示“缺少应用程序载入(application loader)”的提示信息。而重载固件之后,我们甚至无法通过RS232端口与之通信,“看起来正常”的固件加载莫名其妙地搞砸了一切。而且我同事确认过,在正常模块与故障模块中的固件是一模一样的,那为何一个能开机一个不能?是速度问题吗?jrXednc

我同事继续写他的程序,并进行了walking-zeros测试。但另一件奇怪的事发生了,在数个我们认为正常的内存模块上,数据总线绑在一起的两颗SRAM发生了同样的故障——当写入7F代码,回读出来的却是FF;而且只有一对SRAM发生这种故障,另外一对SRAM一直都是正常工作。jrXednc

难道是我连错了夹具上的线吗?我们用示波器测试,结果证实还真的是这样,当我同事写入7F代码,待测SRAM与夹具传回的信息也是一样,显然他的PIC微控制器把明确的逻辑0读成了逻辑1,但只在该数据总线的第7位上。不过walking one测试成功了,第7位在测试中被正确读取为逻辑0。jrXednc

因为我对我同事的PCB布线以及PIC芯片不熟,我请他把他的KiCAD板布线文件发给我。我已经知道那里没有电源/接地平面(power/ground plane),却没料到看见了部分接地引脚连接迂回进出,而它们本应全部集结在PIC芯片之下。jrXednc

他部分的Vdd连接甚至没有连到Vdd覆铜上,而是依赖芯片内的连接;他的耦合电容相距1英寸远,增加了2英寸的走线电感(trace inductance);我在这里嗅到了模拟问题,可能是由电源绕线引起的。要找出导致某个问题的“元凶”,有个方法就是消灭它,于是我用了一个以前成功过的方法,就是添加电源平面以及更多的去耦,以下的图片是我们找一位焊接专家所完成的作品:jrXednc

Analog-lead.jpgjrXednc

两个方块是单面覆铜的迷你电源平面,其末端的去耦0805芯片电容尺寸与AC耦合的电源平面相当;PIC微控制器这下子不能抱怨电源蚀刻走线不好,所有的电源与接地引脚现在都结合在一起了。jrXednc

很遗憾,我的方法没有成功,不过也去除了电源的嫌疑;我仍觉得是模拟问题。我们做了一些测试,想看看是否是其它字节模式(byte patterns)导致第7位在实际上是0时被错误读取为1,我的怀疑被进一步证实了。原来确实有很多模式会这样,如果仅有3个低阶位(lower-order bit)是代表1,PIC芯片会在第7位实际上是0的时候把它读成1。这对低阶位来说似乎无关紧要,只会让3个以上的集(set)变成1;但如果累积足够数量,它们似乎会渗入第7位。这岂不是模拟电压总和(analog voltage summation)?jrXednc

这让我茅塞顿开;我同事的PIC微控制器以3.3V工作,我的内存模块则是以5V电源启动;我同事之前跟我保证过,他的PIC输入能够耐受5V电压,规格表上也是这么写的。我仔细阅读了规格表,第一页就写着“输入能够容许的最大电压为5.5V(仅数字接脚)”,因此如果输入是被配置为数字方式,应该就是5V耐受值,没错吧?jrXednc

而在规格表中的某一页又写得更详细:所有输入能被配置为模拟或数字方式,并非可达5V耐受值;它们有最高到3.3V Vdd的钳位二极管(clamp diode)。所有问题数据总线的8个位,以及其它数据总线中的1个位都是这种输出;因此没错,这是个模拟问题,5V是过度驱动输入电压以及规格表上的缀饰….搞清楚之后我发明了很多新的脏话。jrXednc

这也解释了我们重写的快闪不再启动的原因,所有我们拷贝的固件映像都变成垃圾;我得把焊枪再次加热,进攻测试夹具,小心翼翼切断带状电缆加入几个具备5V耐受电压的74LVC245总线收发器。而我的PIC微控制器知识以及骂脏话的功力也在过程中精进不少。jrXednc

解决问题之后,我们就能辨识损坏的SRAM元件并重写损坏的闪存;在存储器重写之后,“RAM损坏”的信息被“RAM良好”取代,先前可能是闪存记录了过去的SRAM故障状态。两个工程师,一个擅长数字一个擅长模拟,我们最后成功地完成了任务!jrXednc

(原文刊登于ASPENCORE旗下EETimes网站,参考链接:Engineers Solve Analog/Digital Problem, Invent Creative Expletives,由Judith Cheng编译。)jrXednc

本文为电子技术设计原创文章,未经授权禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 那5V耐压到底什么含义
  • PIC出来挨打
  • 看完后我一头雾水,恨自己学的太少了
  • 这焊接砖家是认真的吗
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • 波兰网友拆德国产电源插排,内部竟是中国制造?! 本文将会介绍LogiLink LPS262U电源插排(接线板)——包含三个USB端口和两个Schuko插座——的内部结构及其简短测试。
  • 仿真器智能,工程师更聪明! 不要过度依赖SPICE仿真器的自动设定,因为过度相信自动化有时可能引发错误。请记得:仿真器智能,工程师更聪明!
  • 可解决工业自动化和IIoT挑战的MCU 工业自动化和工业物联网(IIoT)设计人员的性能要求不断变化。就MCU而言,他们希望获得更快的处理速度、更多的内存、更好的连接性和更多的安全功能。
  • 儿童电子学(二):电容器 电容器是最重要的电气元件之一,我们将在儿童基础电子课程的第二部分了解它的工作原理我们将从储能功能方面对其进行探索,所进行的测试和实验将侧重于这一要素。
  • 碳化硅电力电子应用不止于汽车 第三代宽禁带半导体——碳化硅(SiC)——正在发挥其众所周知的潜力,在过去五年内,汽车行业一直是该材料的公开试验场。然而,电气化议程不会以汽车开始和结束。更广泛的运输应用将很快出现,包括卡车和公共汽车、船舶和航运、火车的进一步电气化,甚至飞机。在供电方面,并网太阳能发电系统和通过高压直流链路传输能源,对于低碳能源的生产和分配也至关重要。
  • 波兰网友测试拆解中国产手电筒/手提灯,会不会发起客诉? 本文将对中国制造的COB LED HP1807带移动电源的手提灯/手电筒的内部(包括电池容量)进行简短的测试和分析。在本主题中,我还将展示其电路板上连接的详细草图,这实际上也构成了其原理图。
  • 增强型GaN HEMT的漏极电流特性 增强型GaN基高电子迁移率晶体管(HEMT)已经采用两种不同的结构开发出来。这两种增强型结构是金属-绝缘层-半导体(MIS)结构和栅极注入晶体管(GIT)结构。MIS结构具有受电压驱动的小栅极漏电流,而GIT则具有脊形结构和高阈值电压。两者也都有一些缺点。MIS对栅极干扰的可靠性较低,阈值电压较低,而GIT的栅极开关速度较慢,栅极漏电流较大。
  • 利用反极性MOSFET帮助555振荡器忽略电源和温度变化 恒定频率振荡器是555定时器的经典应用之一。然而,由于所用二极管的特性不理想,占空比的间隔会随着温度和V+电源的变化而变化。本设计实例给出了一种解决方法:利用反极性P沟道MOSFET引导电容的充电电流而不产生任何明显压降。
  • 儿童电子学(一):LED 电子是当今的热门话题,许多孩子们也期望了解并掌握这个重要技术的基本原理。本文是一个面向孩子们的基础电子课程,将并以简单有趣的方式教他们基础知识,激发他们的兴趣。
  • 让智能手表摆脱手机束缚 智能手表迄今为止仍被普遍视为智能手机配件。尽管智能手表时尚酷炫,但是当您必须随身携带手机时,它的存在就会略显多余。而且,并不是任意一款手机都能与智能手表相兼容。
  • 给电子设计初学者的一些实用技巧 本文将为初学者提供一些实用的布局、提示和技巧,可以帮助您避免事故或解决各种问题。该系列将不定期发布。
  • 经典电子小制作项目:DS18B20制作的测温系统原程序原理 下面介绍的这款DS18B20制作的测温系统,测量的温度精度达到0.1度,测量的温度的范围在-20度到+50度之间,用4位数码管显示出来。DS18B20的外型与常用的三极管一模一样,用导线将JK—DS的DA端连到P3.1上。连接好DS18B20注意极性不要弄反,否则可能烧坏。
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了