STM32与DP83845C硬件调试总结

来源:互联网 发布:优酷网络连接失败 编辑:程序博客网 时间:2024/06/05 15:16

应用别人的调试经历,跟我的极其相似:

  <<--最近头儿交给我一个比较着急而且比较棘手的任务就是调STM32+DP83848+TJA1040通讯板,TJA1040那边没啥问题,所有问题集中在DP83848上,这家伙死活不工作,啊啊啊啊啊! 第一天自己先焊接了STM32部分,没有用之前焊好的板子,先保证了STM32能正常下载调试程序,然后开始熟悉这个坑爹的DP83848。 我们这本来有一块金牛的开发板,DP83848可以正常工作,于是我就用这个和我们的DP83848进行比较,发现我们板上的DP83848虽然晶振电路正常,但是DP83848有一个25M频率的输出没有。这说明芯片根本就不工作。 第二天查芯片的各个引脚电压,此时发现有三根引脚的电压超低,FPOUT FPIN1 FPIN2这三个是接在一起的,芯片描述是反馈电压。正常的DP83848上这个引脚的电压大概1.74V 可是我们这个就600mV左右,于是乎,用一个变阻器接在3.3V和GND之间,可调部分接在这个引脚上,调整阻值保证这个引脚的电压可以到达1.74V,回头测量25M输出,正常。但是DP83848上面1号引脚是TX_CLK,正常的DP83848上这个引脚的波形应该是25M或者50M的方波,而我的DP83848上根本就不是时钟方波,更神奇的事情是我在DEBUG程序的时候程序居然顺利的完成了对DP83848的初始化,囧~~~~ 第三天,思来想去我用变阻器固然不是完全之策,于是拆点变阻器,直觉告诉我毛病应该在某个与参考电压或者参考有关的引脚上。继续排查毛病。发现有一个引脚应该接4.87K电阻到GND,这里芯片手册上描述这个电阻的功能是偏置电阻,而且精度要比较好。我想问题应该是出在这里了,于是到金牛板上找到他的偏置电阻,电阻上就写了一个白字u,我再回头看我板上的那个偏置电阻,很奇怪什么字都没有,想想看,金牛板上用的是0805封装的电阻,而我们板上用的是0603的电阻,电阻上丝印有所区别也是正常的。于是拆掉我板上的电阻,测量一下,10K档测不出!我擦!改到2M档,测出来有阻值我就没细看,以为是断路了,反正肯定不是4.87K就是了,于是重新找了一个一样的电阻焊上去,问题依旧,25M输出没有,FPOUT的电压不正常。于是拆点电阻,焊接一个变阻器,调整变阻器的阻值使得FPOUT电压正常到达1.74V,重新DEBUG程序,初始化成功,测量DP83848的25M输出和TX_CLK全部正常,这时我发现RJ45的灯不亮,插上网线也不亮,于是继续调整变阻器,突然绿灯亮了,橙色的灯也跟着亮了几下,之后突然电源保护,摸摸芯片有点发烫........不是正常发热,是烫手,于是测量一下变阻器的阻值,1.1K左右。拆掉了变阻器,重新想象之前定值电阻的问题,我重新测量了一下最早我们头儿焊的板子上面的那个应该是4.87K的电阻,拆下来之后测量,结果发现居然是487K!我慌忙找到我之前焊的那个没字的电阻,测量一下发现也是487K。于是找了一个4.87K的电阻,焊在板上,测量25M输出和TX_CLK都正常了,FPOUT这些电压也都正常了,但是RJ45灯依然不亮,明天继续排查问题。

这是第四天了,虽然之前进度很好排出了很多问题,但是今天上午却毫无思路,DEBUG一下程序,初始化也是正常的,就是数据发送失败。无意间测量了一下电源引脚,发现电源有点不稳,检查电源模块发现两处虚焊,重新焊接,电源稳定了,于是又断了一条线索,一上午就这么迷迷糊糊的过去了。 下午的时候测量了一下TX_EN TXD0 TXD1,发现DP83848上的TXD0没有反应,我们的单片机和DP83848上TXD0引脚连接是通过一个30R的排阻进行连接,于是用万用表测量了一下,发现是排阻虚焊了,于是重新焊接排阻,虽然TXD0正常出现了波形,但是RJ45依然没有反应,这里重新测量了一下TD- TD+ RD- RD+的匹配电阻,我们这里用了一个排阻,发现我们的板子上这四个引脚波形很稳,呈低电平,而正常的是有反应的。直觉告诉我不要太相信自己的焊工,于是拆掉这个排阻,重新焊接一排,上电不正常。拿到放大镜下看,整个排阻被我焊歪了,拆掉重焊,上电之前我特意先用放大镜看了一遍,正常的,于是上电,DP83848工作正常,数据也能正常发送了。 后来我们总结了一下问题,最早焊的那块板就是偏置电阻的值弄错了,要不然早就成功了。而我排查问题喜欢从头到尾排查,虽然慢了点但是收获还是很大的。 至此DP83848历险结束,马上要面对更难的问题。-->>

但是目前灯虽然亮了但是stm32无法进入中断;



0 0