暑假期间跟随师兄做核磁共振大功率发射部分,现在已经接近尾声,一套样机已经组装并测试完成,还需要进行野外实际测试。
一套仪器要经过几个步骤来完成:
理论设计——>详细设计方案——>初步实现——>模拟测试并相应的修改设计方案——>实际测试
这是最简略的设计步骤,每个步骤中还应详细的划分成小步骤,关于这套系统,我们是在实验室前人的基础上进行优化,理论和详细的设计方案由师兄给出,我在本科毕业设计结束后从加入,当时正在初步实现阶段,已完成差不多一半的进度。
想要接手一套系统,首先需要了解它的基本设计思想和使用方法,重点是使用方法,因为只有当真的会用了之后才能够更好的理解设计思路,关于这一点,只有亲身经历了才能够体会到。进行阶段性的总结是非常有必要的,如果不把这一阶段的思路理清,就会在下一阶段中出现混乱,一个知识的理解需要反反复复的琢磨和思考,不是做出来了就可以了,放下不管了,切记千万不能这样。
做东西也尽量要一口气做完,即使你已经把方案论证完成了,也最好中间不要停歇。师兄这一套仪器在寒假的时候出了个1.0版本,但是存在问题,这个学期在忙别的事于是耽搁了,在暑假的时候我们继续做的时候就会发现许多细节性的小问题会严重的拖慢进度,比如说接线头的不匹配问题导致我们需要将好多个接口的线重新做接头,因为半年过去了我们之前用的那款线已经用完了,无法和修改的部分匹配上。这种工作并没有太大的技术含量,但是非常费时费力。
另外,人家说细节决定成败,的确是这样,尤其是硬件电路,之前我在出现问题的时候第一时间就回去查找设计方案和电路图,查了很久却找不到错误,于是心急如焚,把自己带进一个怪圈中。其实很多时候就只是质量问题而已,不是你焊接的质量不过关,就是测试的仪器质量不过关。说到这里,就总结一下我们曾遇到过的奇葩事。
1.下载不进去:主控芯片用的是STM32,在使用四根线的那个下载器的时候遇到过怎么都下载不进去的情况,检查了下载器,检查了各个接口,都很牢固,供电的灯也都正常,电源、地、时钟接口的波形也都无误,我们甚至怀疑芯片是不好用的,还怀疑过这个芯片的JLink方式被人锁死,就是之前别人下载了一个禁用JLink的程序。。。
说一下真正的原因:这种下载方式需要用到boot0,boot1端口,STM32的这个端口上面是连接着电容(也许是电阻,我忘记了)的,在焊接这个小贴片原件的时候没有焊牢固,用烙铁焊锡加固之后就顺利的下载进去了。
2.示波表显示的全是50Hz噪声:在测量输出波形频率的时候用的是示波表,由于示波表没电了于是就一边充电一边测试,结果满屏的工频噪声,加之正在用小风扇,于是就认为充电会引入噪声,风扇会引入噪声。虽然这种想法没有什么问题,但是对于一个完好的示波表来说,这点抗干扰的能力还应该是有的,于是我怀疑是自己的板子抗干扰太差,但实际上,对于一般设计所选用的器件来说,工频噪声是无法如此严重的影响到系统的工作的。
说一下解决的办法吧,当时是把表笔拔掉之后重新连接解决的,长时间工作后在接口处会产生一定的感应,对于各种接口,都会存在接触不良,磁场不均匀的情况,有时候,“重启试试”不失为一种解决方案。
3.其他问题:
在很多情况下,真正的设计问题不会太多,接触不良是出现的最多的问题,比如用两个特别粗的导线连接的时候,它们的内部经常并没有全部灌满焊锡,虽然两个到先连接上了,但是在中空的部分会出现各种感应电流之类的东西,这些细节很有可能导致整个仪器精度的下降。
另外,纠正一个误区,之前总听人说,电源和地要用粗线,其实未必,需要从原理上来分析这件事,对于大电流来说,导线确实要粗一些,这样电阻小,损耗也小,但是有时候这个电源提供的并不是大电流,而是大电压,这个时候导线粗细没有太大的意义,需要关注的是这个导线外面绝缘层的耐压值,我在实验中就遇到了耐压600V的细线和耐压300V的粗线。如果真的是要走极高的电压,还有两种神器:绝缘皮、绝缘胶带,它们的耐压值一般都是千伏级别的,套(缠)在导线外面可以很好的保护电路。
在我们对系统进行测试的时候,要一部分一部分的测,如果输出不对,就去按照这条线路来找,要确定具体是哪个环节有问题,要分析这条路上的所有器件的输入和输出,最好是和当初的仿真波形进行对比。当然,这就要求我们对整个系统的工作情况了然于心,非常熟悉,切忌不按章法胡乱去测。在测量输出电压电流的时候,不要空载进行测量,空载的隐患很大,要去找一个假负载连到电路里,让它形成通路,然后用电表测量负载两端的电压,不要直接把电表怼到输出的正负两端来测量。
关于PCB设计也有一点要说的,一般情况下我们在设计PCB时,最后一步都是敷铜,将地不满整个空白区域,这的确是一种好方法,但这并不是一个铁律。师兄之前设计的PCB就敷了铜,但是在我们进行调试的时候,示波表的表笔一直夹在输出口上面,将输出口附近的绝缘层刮掉了不少,其中有一个是24V电压输出,它与整块板子的电源相连,这样就非常容易将电源和地短路掉,整块板子都会烧,所以,在设计的时候要先分析,不要无脑的套用各种方案。
另外,我们在编写程序的时候要充分考虑到硬件的问题,有时候虽然逻辑上行得通,但是并不使用。比如我们这次用到了继电器做开关,开关打开后同时给出其他命令信号,控制器件工作,在实测的时候发现工作的效果并不好,后来发现是在程序里面给出开关有效信号后立刻就给出了其他信号,然而继电器吸合是需要时间的,立刻给出的其他信号的前几个代码很有可能没有被识别出来,我们在开关信号之后加了50毫秒的延时,之后就很稳定的工作了。
这段时间给我最大的感受就是要仔细。一定要细心,不要放过任何一个细节,有些在设计的时候感觉可能不太对劲的地方,在实际测试的时候还真的就不对。
对于一套系统的认识是不可能一蹴而就的,在不同的阶段会有不同的理解,在调试的时候理解的最有效。纸上得来终觉浅,绝知此事要躬行。