今天,收到了从焊板厂打样回来的板卡,首先进行了硬件调试,关于硬件调试的步骤,可以参考我之前的博文 按照如上顺序进行测试后没问题后,接着就是烧写程序进行接口测试了。
按照步骤烧写程序后,依次上电测试各个接口是否可以正常通信。
四块打样的板卡,存在如下的问题:
1、有一块板卡串口无数据输出,无法查看设备的启动信息;
2、可以打印调试信息的三块板卡报文显示网口识别不到;
3、可以打印调试信息的三块板卡报文显示GPS接口天线无连接;
问题解决:
串口无数据输出,我首先想到的是不是串口芯片虚焊了?拿放大镜看了下,又拿万用表测了下通断,然后又上电测了下引脚的供电和电平情况。引脚没虚焊,管脚供电正常,只是上电后正常情况下,由于会输出打印信息,3232芯片的TXD引脚正常情况下会有高低电平的波动才对,但是这个没有。
于是我进一步怀疑是芯片坏了,我麻溜的的换了一个芯片,上电测试电平,还是老样子,那应该不是芯片的问题了,这时,我又怀疑是不是那个BGA封装的CPU引出的RXD和TXD两个引脚没焊接好导致的。但是因为是在内层走线的,之前也没有预留测试点,所以这个问题就暂且搁置了。
我转而去解决网口识别不到的问题,网口是通过PHY与CPU进行连接的,识别不到网口本质上是没有检测到PHY的存在,所以我就直接去查了PHY的硬件配置,果然发现给PHY配置地址的上下拉电阻漏焊了,我又查看了我交给贴片厂焊接生产的电装明细表,是我对这两个电阻标识了NC,怪不得人家没给焊接,是我整理BOM的时候搞错了,我当时修改原理图的时候,只修改了value这个属性的值,没有修改NO_STUFF这个属性的值,导致导出的BOM还是原来器件的标识。添加上下拉电阻后,网口三块板卡的网口均能正常建立连接并通信。
解决完网口的问题,再回头搞一下串口的问题,解决问题不能钻牛角尖,想了好久还是没思路就不要继续想了,换个问题解决,过会再回来就会有新的思路。因为我们大脑的工作机制是这样的:当你在解决另一个问题的时候,其实你的潜意识一直在思考上一个未解决的问题,只是你没有发觉罢了。当你在解决其他问题的时候,突然出现的奇思妙想就会把上个问题给解决了。
我在一开始解决串口问题的时候,是采用了脚疼医脚,头疼医头的直线思维方式,那么为什么不拐个弯?还有哪些可能会导致串口没有调试信息输出呢?我总结了以下几条
其实很容易通过排除法排除问题,因为已经有三块板卡可以正常打印调试信息。最可能的是这板卡他丫的压根就没启动起来,因为无法查看启动时打印的调试信息,所以我一上来就先入为主的判断设备是正常启动了,但是因为串口的硬件上因为某个问题,所以没有打印出调试信息,然后我就被这个想法带跑偏了。
回到正轨上来,我通过测试相关引脚的电平,得知设备根本没有正常启动,那么我接下来需要解决的就是设备为啥没有正常启动的问题,也就是我脚疼先要医头,头医好了,脚自然而然就好了。设备上电后第一步先检测对应引脚的电平,通过电平判断进入何种启动方式。我看了下下拨码开关的配置没毛病,是不是拨码开关失效了?我又拿来万用表测了下通断,果然有问题,不是拨码开关失效,而是有一个引脚虚焊了。如果不是针对性的仔细去看,你很难看出这个虚焊的,这是我在用万用表的表针顶到引脚上测试时,发现引脚动了一下,所以才发现了问题,加焊下后,上电就一切正常了,串口的调试数据也正常打印了。这个问题我仔细观察了下,是拨码开关的焊盘封装做的有些小,才导致虚焊的,四块板卡就有一块虚焊,25%的概率,已经很高了,一旦进行量产,这就是是个很大的隐患。我抓紧拿出调试记录表记录下来,下次改版时要修改拨码开关的封装大小。
现在四块板卡就剩下一个共同的问题了,GPS天线连接后报文显示无连接,而且无法进行搜星定位。我还是先用了直线思维,无法检测到天线,证明天线没有正常工作,因为我使用的是有源天线的设计,需要板卡给天线供电,我想,是不是压根就没有给天线供电?我用万用表测了供电引脚,电压正常。
因为GPS电路的搭建,直接使用的是厂家的推荐的电路搭建的,然后我联系了模块厂家的售后技术支持,发了我的原理图给他,他说电路没问题,又问了我测试环境,PCB的走线等问题,也都没毛病,这个问题好像又陷入无解的状态了。
我就又去忙了会别的事,回来发现模块厂家的售后技术支持给我留言了:你的模块地和天线地没有共地,所以天线的供电回路是断开的,报文自然就显示天线无连接。
这个留言简直让我茅厕顿开,醍醐灌顶,当头棒喝!我简直不知道用什么词来形容我的激动心情了,我马上把模块地和天地短接了下,再上电,报文显示天线连接OK了,然后把天线扔到了窗户外面,过了大概有半分钟,成功搜到星输出定位信息。
至此,三个问题全部解决。
小结:
1、遇到问题不要总是直线思维,这并不是说直线思维不好,恰恰相反,他是最直接高效的解决问题的办法(在现象与问题一一对应的情况下),他是直接根据现象直接找到问题所在,然后解决。当发现问题不在此处时,要及时变换思路,思考可能引发该现象的所有原因,罗列出来,一一检查排除。
2、不要把问题想复杂,大多数问题并不是什么高深的问题,不要硬件不通就找来原理图分析什么信号,走线,阻抗,电磁兼容,甚至用上什么微积分,拉普拉斯变换,没必要这么复杂,先从最简单的器件虚焊和漏焊以及电源的供电查起。
3、适时适当求助别人,这里的“适时”是指遇到问题先自查,先验证自己可能想到的解决问题的方法,实在没有思路了再去问别人,这样你问的问题才能深入,别人也才能给你更加有针对性的回答,遇到问题上来就问的人,是懒惰的表现。
4、既要把问题解决,又要看到问题背后的量产隐患。比如上面的我遇到的三个问题,一个是我粗心弄错BOM,导致电阻漏焊;因为拨码开关封装不合适,导致容易虚焊;因为没有GPS模块和天线没有共地,所以天线连接异常。这三个问题是要及时记录并在下一板修正的,并不是把问题解决就万事大吉了,而是要看到问题背后的问题。
PS:如果文章对你有帮助,那真是我的荣幸,你的点赞和分享就是对我最大的支持。
用户918680 2019-3-26 08:52
笔架山下 2018-7-2 10:11