项目日志7——板级调试
0赞前 期工作可以说做得蛮充分的,毕竟不是一个太具有挑战性的项目,一些简单的逻辑粘合、译码控制甚至液晶的时序实现以及一些数据流的控制都不算太有难度。写这 篇文章只是为整个项目日志系列博文做个完美的终结。再加上板级调试本身肯定会遇到很多意想不到的这样那样的问题,所以做一些总结和记录也是很有必要的。
其实已经离开了原工作单位,理论上也和这个项目没有太多纠结,只不过走之前本着负责的态度答应如果需要,会抽时间回来完成这个项目的调试工作,尤其是这个FPGA代码的调试更是必须的。当然,打心底我没有抱怨,虽然新工作也很忙,但是我还是很乐意花一些时间和旧战友共处。
回顾一下前期的准备工作,从日志1的总体划分开始;AD调试的方案是简单的串口调试衍生到了Virtual JTAG的应用;液晶时序虽是十拿九稳,仿真也还是必须的;串口模块、数字量输入输出译码等简单的控制就没有纳入前期的准备工作中,只是在最终模块集成阶段稍稍花了点时间就OK,事实证明这个思路确实没有问题。
一早开始上来肯定不是调代码,需要对板子做一些基本的验证。之前的老同事对两块板子都做了一下简单的静态调试和上电测试,证明板子是没有问题的。然后上电后JTAG方式给FPGA在线烧录AD部分代码,Virtual JTAG调试平台派上了用尝,对AD部分的输入端做了分压处理,数字采集完成后再放大,由于前端对AD芯片的输入阻抗估计不足,采样精度很大程度上大打折扣。1:1采样时没有太多问题,证明AD部分的控制也是没有问题的。由于时间关系,AD输入分压设计没有深入排故。接着LCD部分调试,先看看背光部分是否正常,静态电压稳定,用调压电阻定位到26.8V,然后接上两个LCD,问题不大,不过发现时间一久,其中一个屏直接无法点亮,后来观察到那一路的34063发烫的厉害,立马下电,看看电路的其它元器件,问题应该是那个电感,大概是5×5mm大小,以我的经验是这种小电感功率太小了,不足以胜任此项工作。应该使用常见的10×10mm的电感,它的功率应该是没有问题的,电感的值和体积成正比,功率也是如此。于是暂时不使用两路背光电路,接到了电源箱的输出上。又发现两个液晶的背景色调有偏差,一个正常的白色,另一个有些发绿,虽然同事开玩笑说那个发绿的好看,不过我确定那个发绿屏的FPC插座有损坏,影响了数据信号的传输,需要更换。背光部分调试完,对于显示界面的代码下载后,没花太多时间便调好了。到这里,基本上问题不大了。
接下来对AD,LCD部分进行了整合,然后实时的给串口接收端发送帧信号,也没有太大问题。对于输入采集部分也确定OK了。 接下来只有串口接收和按键指令译码部分。按键部分也没问题。由于已经加班到了晚上,加上有些疲劳,串口接收部分整合的时候稍一疏忽,对使能信号的设计原本 应该在接收后触发,结果成了接收前触发,当时时间紧迫没太有时间仿真,认为只是整合的东西应该不会有太大问题,但是却因此引发了调试时一系列稀奇古怪的串 口译码问题。其实打心底还是很明白这种对于时序要求不高的设计再花点时间仿真下就能搞定,时间也近九点了,也没太有心思继续下去,就那么留了个小BUG结束了。
临走的时候还是有些心有不甘,怎么就这么简单小模块出岔子。其实细细想想也是,FPGA设计再简单,不通过仔细仿真调试过,要想不出问题也还是有难度的,即便一时OK,也不知道哪天来意外呢。当然,这种意外很大程度上取决于设计者,尤其最明显的意外应该是在时序分析上。很多工程师对FPGA的不可控性的恐惧不是平白无故的,我只能说,是对FPGA设 计本身的不专业造成。我不敢说自己做的东西有多么好,有时候我也总是抱着侥幸的心里在简单的环节上偷懒,也许大多数时候确实也不会有什么问题,但是这种做 法这种想法都是不可取的。我总是认为,作为一个工程师,不管项目的难或易,总应该用一种负责任的态度去面对,也许项目的成败与否很大程度上将取决于我们对 项目的专注程度。