LPC1788+KSZ8041NL联调

[复制链接]
2107|4
 楼主| sinux 发表于 2014-5-14 09:33 | 显示全部楼层 |阅读模式
选用RII进行1788与PHY的连接通讯,在初始化网卡的时候,PHY地址总是读不出来,这是为什么呢?
  1. // probe phy address
  2.     for(i=1;i<32;i++)
  3.     {
  4.         PHYID = Read_PHY(i , 2 );
  5.         if(PHYID == 0x0022) {
  6.             break;
  7.         }
  8.     }
  9.     if(i >= 32){
  10.         while(1);//总是死在这里,每次读出的PHYID都是0xffff
  11.     }
我是小白,真心希望能够独立解决,但是查了几天了还是没有线索,希望前辈们,给点建议,谢谢!
 楼主| sinux 发表于 2014-5-26 11:36 | 显示全部楼层
本帖最后由 sinux 于 2014-5-26 11:41 编辑

虽然没人帮我,不过最后问题查出来了。虽然这里没得到什么帮助(可能是我发错地方了吧),但是我还是想跟像我一样的新手分享一下我的解决经验。
问题描述:选用RII进行1788与PHY的连接通讯(KSZ8041N),硬件测量没有问题,波形“正常”,但初始化读取芯片都取不到寄存器的值。
排查思路:
1.检查1788是否有资源冲突。排查结果:正常
2.检查核心板与主板,主板与ksz8041N的硬件连接是否正常,芯片是否有虚焊,错焊,短接等情况。排查结果:正常。
3.测量芯片各管脚的电压,对照说明书及原理图进行逐个管脚的比对。排查结果:正常。
4.测量芯片主要管脚MISO,ENET_CLK等管脚的输出波形。排查结果:时钟波形正常,频率50MHZ为最佳参考频率,指令控制波形正常,形态良好。
到这里就很无语了,实在想不出原因。
进一步分析:
1.老批次的板子运行正常,而新批次的板子存在问题,经过板子对比发现,MISO输出的波形上二者在幅值上有差异:新批次的板子波形的幅值比老批次的板子波形幅值低了近1V。
2.每次读出的PHYID的值都为0xFFFF或0x0000,说明控制信号很可能没有写入到网卡芯片中。
综合以上两点进行分析,有没有可能是········不知道··········
后来看1788说明书,尝试修改MISO时钟,调大···不行····调小,yeah,好了~~~测量MISO波形幅值恢复正常!~!!!!!!!
问题解决了,最终讨论分析:线路电容时间常数偏高,在设定时钟下无法快速响应到正常幅值。所以依靠调小频率得到正常结果。
解决了问题,很好,很开心!与大家分享一下,希望对有相同问题的新手朋友有所帮助!
youimiss 发表于 2014-5-26 11:47 | 显示全部楼层
不错 鼓励一下LZ
RICH-CHEN 发表于 2016-8-31 11:16 | 显示全部楼层
sinux 发表于 2014-5-26 11:36
虽然没人帮我,不过最后问题查出来了。虽然这里没得到什么帮助(可能是我发错地方了吧),但是我还是想跟像 ...

跪求8041 硬件调理  万分公司 我把原理图给您
RICH-CHEN 发表于 2016-8-31 11:16 | 显示全部楼层
sinux 发表于 2014-5-26 11:36
虽然没人帮我,不过最后问题查出来了。虽然这里没得到什么帮助(可能是我发错地方了吧),但是我还是想跟像 ...

跪求8041 硬件调理  万分感谢 我把原理图给您
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部