热门文章
上篇文章中,我们提到了使用读取SPI Flash ID这个程序段,来测试SPI的通信是不是成功。
目前程序运行的结果,是无法正确读取Flash 芯片的ID的。那问题出现在哪里呢?如何去分析这个问题,或者说去尝试解决这个问题呢?
在进行波形分析之前,我们首先要做的就是查看一下芯片有没有虚焊,还有选用的SPI Flash芯片是不是我们需要的。
经过仔细比对,确认我们购买的W25Q128芯片,就是睿思芯科公司提供的例程所使用的芯片。那么在芯片的选型上应该没有问题。
那芯片有没有虚焊呢?这里总共涉及到3块芯片,一个是我们的单片机,一个1.8V转3.3V的电平转换芯片,另外一个就是SPI Flash芯片。因为单片机引脚之间距离只有0.2mm,芯片重新焊接的难度太大。所以,我这边就重新把电平转换芯片和SPI Flash芯片吹下来,重新焊接了一次。确保电路的焊接是没有问题的。
芯片焊接的重新焊接的过程中,发生了一件非常可怕的事情,电平转化芯片TXB0104的焊盘被整体损坏掉了。如果不是有同事帮忙调试焊接,这块板子有可能就废掉了。
如果是个别焊盘损坏掉,还可以飞线进行操作,现在整排焊盘都掉了,该怎么办呢?
实际调试的过程中,对焊盘的修复,我们使用的办法是把损坏掉的焊盘附近的铜线上过油刮掉,使用裸露的铜线作为新“焊盘”进行焊接。然后,再使用非常细小的铜丝把芯片的引脚和板子上的铜线连接起来。如下所示,这个操作过程比较麻烦,需要有娴熟的焊接功底才行。
但是现在有一个重要的事情需要总结,为什么焊接的过程中,自己会把这个电平转换芯片的焊盘一整排全部搞掉?自己确实没有在给焊盘加锡的过程中,使用烙铁头去剐蹭焊接。最后的总结是,在给焊盘加锡的过程中,烙铁头的温度过高,同时由于烙铁头使用的时间太长了之后,氧化严重。上面两个因素导致了烙铁头上的锡非常粘稠,同时温度非常高。那么在加锡的过程中,很容易就会把焊盘带掉。而且因为是加锡的过程,会同时对很多焊盘进行操作,所以一掉就是一整排!!!
这块开发板,在实际焊接芯片引脚的过程中,我们设定的烙铁温度,高达450度,如下图所示。
我们为什么会使用到这么高温度的呢?主要是我们这个板子是四层板,TOP层和BOTTOM层之间的两层,进行了大量的敷铜。导致散热非常快。把烙铁头的温度调高,可以增加焊锡的流动性。如果按照平时300-350度左右的温度来焊板子,我们所熟悉的拖锡动作是没有办法实现的,锡一下子就凉掉了。
但是如果有芯片压在焊盘上,使用这么高的温度进行拖锡,并不会造成焊盘的脱落!
在这块,我们调试的经验就是,给电路板的焊盘进行加锡的过程中,一定不能把温度调节得太高,否则会造成一排焊盘脱落的人间悲剧!这种情况下,大概率,这块板子就废掉了。
上面也提到了,电平转换芯片TXB0104和SPI Flash重新焊接之后,SPI通信依然没有成功。那说明大概率并不是芯片虚焊的问题。那个单片机的引脚,我们目前只能假设它的焊接是完全成功的(太难焊了,拆下重焊成本太高)。那么接下来,只能是先对波形详细分析了。
首先,我们需要做的就是去查看CLK这个引脚的波形,看看CLK的波形输出是不是合理的。SPI,需要在一定的频率范围内才能正常工作。如果频率太高的话,MOSI和MISO这两个接口的波形,可能还没有达到芯片规定的“高”或者“低”,时钟沿就进行了下一次的跳变,这种情况下,很显然单片机和SPI Flash之间是无法进行通信的。
先给大家看一下,我这边第一次抓到的CLK引脚的波形。
大家看到这个波形的时候,是不是觉得有点奇怪。在这个波形中,猛一看CLK的频率信号只有60Hz左右。而实际上,我们的CLK的频率至少要是几Mhz呀。那这个频率是怎么回事呢?
后来分析得到结论,上面图中的高脉冲应该是程序的延时之间的间隔,也就是两个测试程序之间的时间间隔,或者是两次发送数据之间的间隔。真正的CLK波形,需要使用单片机的触发功能,去捕获相应的波形。所谓的触发功能,就是可以设定一个比较值,如果输出信号的波形大于了这个值,示波器就会显示出来这个信号的波形。这里有一个信号比较的过程存在。
通过示波器,捕获出来真正的CLK信号之后,它的波形是如下形状的。
大家看一下,这个波形的频率高达12Mhz。这个12Mhz是怎么来的呢,我们前面提到了这个单片机的时钟晶振是24Mhz,那么这个SPI的通信速率12Mhz应该是时钟信号24Mhz二分频之后得到的。现在,我们就有一个怀疑,SPI通信的失败是不是由于这么高频的通信速率导致的呢?
还有一个问题,大家有没有发现这个CLK的波形,它的最小值并没有到参考地。同时它的最大幅值,我们使用示波器测量之后,只有2.2V。可是SPI这边的工作电压是3.3V呀,而且我们的电平转换芯片输出的电压也是3.3V。那是不是这个CLK信号,本身就是有问题呀?或者说在这个电压幅值区间,Flash芯片能不能识别CLK信号呢?
我们这片文章,就先分析到这里。下一篇,我们继续SPI通信的调试。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表乌云踏雪网立场。
文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。