W5500,10M模式一切正常,100M模式下有问题,电路参考官方的
硬件平台是STM32F103VET6,W5500网卡芯片,SPI扩展。实现MODBUS TCP Server,现在软硬件都差不多实现了,但是有个困扰我的问题。
当板子与电脑通过交叉线(W5500不支持极性自动识别)直连的时候,如果电脑的网口设置为自适应或者100M全双工/100M半双工时,板子这一段插上网线,RJ45口上的LINK灯和ACT灯都是常亮的,这个时候基本无法正常通信,电脑发ping,偶尔板子才回包响应,RJ45灯始终保持常亮。
当电脑设置为10M双工/10M半双工时,板子插上网线,RJ45上的灯,LINK灯亮,PHY层有数据收发时,ACT灯闪烁,而且这个时候无论是PING,还是MODBUS TCP通信,都是正常的。
电路参考官方的,也非常简单。本来是怀疑网卡模式配置的问题,PMODE这三个引脚我都是通过10K电阻上拉至VCC,启用了自适应功能;然后又试过在软件中,通过将寄存器PHYCFGR的OPMD写1,软件使能自适应,还是不行。
实在是没有头绪了,也怀疑过是否是PCB布线的问题,10M时能够正常通信,100M因为高速,外界干扰导致通信异常。但是,电脑网卡设置为100M时,刚刚插上网线,RJ45两个灯全部常亮,也是不正常的,这个时候根本没有任何通信活动。
以下是我网卡模块的电路图,求指点:
参考了泥人的模块及官方W5500io模块,电路本身挺简单的。实在不知道问题出在哪! RX部分,为何要使用C7和C12?
变压器中心抽头,R3是用来滤波?
既然CTT通过R3接了3.3v,为何CTR脚没有接
C5和C10的取值,lz从哪里参考来的?为啥用不一样的值。 还有,U2是ESD保护?没有见过这样神奇的设计...
本身你的网口内置变压器就带有隔离了...
本帖最后由 kevin_me 于 2014-10-21 22:46 编辑
physis 发表于 2014-10-21 21:54
RX部分,为何要使用C7和C12?
变压器中心抽头,R3是用来滤波?
这个是参考官方的设计,至于为什么有这些参数值,我也是照着抄。
然后你说的ESD保护,也是参考别人的设计。不过为了保证电路最简单,实际调试的时候我并没有焊接。
以下是wiznet的官方设计图:
写完 w5500寄存器后,在读出来看看跟写进去的值是不是一致? 之前遇到一个问题,配置完后可以ping通,但是发送数据就有问题,通过写完再读后发现读出来值不对,发现时SPI时钟有问题,我们时自己做的板子,跑36M不稳定,降为18M后稳定工作。 一般来说,这种芯片都有环路测试的,一种是芯片本身支持,一种是你把tx和rx在外面对接起来,看看你的发的数据和收的是否一致 phy有重启功能,试试吧 CTR要接电源的 想问问,该模块和pc机连接,用交叉线,和普通的网线,都可以么???求大神指点 李修成 发表于 2015-1-1 10:48
想问问,该模块和pc机连接,用交叉线,和普通的网线,都可以么???求大神指点 ...
W5500不支持极性自动变换,所以跟电脑连接需要使用交叉线,通过路由可以使用平行线 kevin_me 发表于 2015-1-1 16:47
W5500不支持极性自动变换,所以跟电脑连接需要使用交叉线,通过路由可以使用平行线 ...
这个很有用,记一下 kevin_me 发表于 2015-1-1 16:47
W5500不支持极性自动变换,所以跟电脑连接需要使用交叉线,通过路由可以使用平行线 ...
谢谢啊,那我换交叉线试一试,同学说,电脑支持极性交换,所以普通的网线也可以,即使W5500不支持机性交换,,我真的晕了,本人新手,刚接触这方面,头都大了 李修成 发表于 2015-1-5 08:26
谢谢啊,那我换交叉线试一试,同学说,电脑支持极性交换,所以普通的网线也可以,即使W5500不支持机性交 ...
和PC连接时随便用交叉线或直线都行的,因为PC的网口都是带自动极性的,只有两片 W5500 直接对接时必须用交叉线。 学习了!
页:
[1]