zxq6 发表于 2017-1-8 11:31:25

ksz8863出现丢包,怎么处理?

请问下各位大虾,现在用ks8863rll扩展了2个以太网端口。现在使用计算机每100ms向单片机发送一个包,单片机收到处理后,返回。
结果发现,有10%的情况会丢包。看rmii引脚,出现丢包的时候,8863没有发往单片机的信号,也就是单片机根本没有收到phy发过来的数据。

请问下,这个情况,应该如何排查?谢谢!

PS:主芯片为STM32F107

zxq6 发表于 2017-1-9 10:24:21

芯片丝印表明是10年27周的产品,不知道是不是芯片坏了?

physis 发表于 2017-1-10 10:52:34

把phy部分的电路发出来吧

zxq6 发表于 2017-1-10 13:05:44

physis 发表于 2017-1-10 10:52
把phy部分的电路发出来吧



图来了,麻烦您帮忙看看?

physis 发表于 2017-1-10 13:29:37

zxq6 发表于 2017-1-10 13:05
图来了,麻烦您帮忙看看?

其实我是想看看你变压器那端...
这部分应该没啥问题,起码和丢包没什么关系
变压器耦合那端再没问题,就看看网线,接头什么的

先定位故障,看看在什么情况下发生的丢包,外部还是内部,找个工具连续给你的设备发icmp包试试

SMI接口你用MDIO/MDC的话,SPI就没用了吧

zxq6 发表于 2017-1-10 13:34:41

physis 发表于 2017-1-10 13:29
其实我是想看看你变压器那端...
这部分应该没啥问题,起码和丢包没什么关系
变压器耦合那端再没问题,就 ...



这是phy的部分的电路图。麻烦您帮忙看看。
目前的表现就是偶尔丢包,udp在10%左右。
丢包的时候,通过示波器监控phy发给stm32的数据引脚,上面没有信号。
目前没有头绪。

yondyanyu 发表于 2017-1-10 13:48:01

用示波器看各个信号的波形,看波形时序是不是有相位差?

physis 发表于 2017-1-10 13:59:41

变压器phy的一端,3.3V没必要串10欧电阻,换0欧试试
另外接网口T和R为何做成交叉的?当然如果交换机自适应也可以用...

参考官方文档吧

zxq6 发表于 2017-1-10 17:01:44

yondyanyu 发表于 2017-1-10 13:48
用示波器看各个信号的波形,看波形时序是不是有相位差?

看数字信号还是模拟信号?数字信号看起来没啥问题。模拟信号那个不懂。

zxq6 发表于 2017-1-10 17:02:35

physis 发表于 2017-1-10 13:59
变压器phy的一端,3.3V没必要串10欧电阻,换0欧试试
另外接网口T和R为何做成交叉的?当然如果交换机自适应 ...

我当初画电路板的时候,就是参考的官方的历程。
10R的电阻,后面已经换成0R了。

LingYi 发表于 2017-2-15 22:39:56

zxq6 发表于 2017-1-10 17:02
我当初画电路板的时候,就是参考的官方的历程。
10R的电阻,后面已经换成0R了。 ...

目前我也在调试 8863,ping 的时候偶尔不通,问题已经锁定到了 8863 上了,刚换了有源晶振,还是丢包了!目前,还有几个电源电压没有测。

LingYi 发表于 2017-2-20 15:20:20

zxq6 发表于 2017-1-10 17:02
我当初画电路板的时候,就是参考的官方的历程。
10R的电阻,后面已经换成0R了。 ...

楼主搞定了吗?

zxq6 发表于 2017-2-20 17:00:42

LingYi 发表于 2017-2-15 22:39
目前我也在调试 8863,ping 的时候偶尔不通,问题已经锁定到了 8863 上了,刚换了有源晶振,还是丢包了! ...

木有,你有没有啥建议?

LingYi 发表于 2017-2-20 22:45:49

zxq6 发表于 2017-2-20 17:00
木有,你有没有啥建议?

共享驱动代码吧
我现在一个板子 TCP 服务器能连接了,另一个板子死活不行。都能实现ping命令,而且我做了压力测试,均无丢包现象!

lingdianhao 发表于 2017-2-20 23:31:12

原理图没问题就检查PCB布线吧,EMC问题,RMII,MII接口哪些是同步信号,哪些是异步信号,需要分开走。

zxq6 发表于 2017-2-21 09:51:20

LingYi 发表于 2017-2-20 22:45
共享驱动代码吧
我现在一个板子 TCP 服务器能连接了,另一个板子死活不行。都能实现ping命令,而且我做了 ...

你没问题的那个板子的代码放到有问题的那个板子上,也有问题么?

LingYi 发表于 2017-2-21 22:00:36

zxq6 发表于 2017-2-21 09:51
你没问题的那个板子的代码放到有问题的那个板子上,也有问题么?

我的2个不同版本的板子。
最后结果是:
MDIO 模式下, 在不访问KSZ8863的寄存器的时候,需要把SPI_SN 拉低!否则发送不出TCP 数据包!但是可以实现ping 命令!

tomyqg 发表于 2017-2-24 17:14:05

本帖最后由 tomyqg 于 2017-2-24 17:19 编辑

官方勘误笔记上说通过mdio/smi访问寄存器时spi-sn要拉高的,看来要用一个io控制SPIS-N了

qiufengshijian 发表于 2017-4-28 13:50:52

不是直接有RMII接口啊,直接用这个,用不着你控制

zxq6 发表于 2018-12-3 08:54:20

topdreams 发表于 2018-12-2 13:49
你的rx+/-和tx+/-,的芯片出去,没有接49.9电阻呀,这样能正常接收?

有的,另外还有一个图,里面有的。

jjj 发表于 2018-12-7 14:51:13

都调好了吗?

ddcour 发表于 2018-12-8 14:01:44

快两年了哟,楼主搞定了吧,分享一下经验?

zxq6 发表于 2018-12-8 14:36:46

ddcour 发表于 2018-12-8 14:01
快两年了哟,楼主搞定了吧,分享一下经验?

没有结果的。没有然后了。

LingYi 发表于 2019-6-11 16:39:00

switchDev.c.zip 请自动删除.zip

dellric 发表于 2019-6-11 17:13:39

这个芯片很恼火,你还没有进行长周期测试,测了更伤心,建议换成 九阳 (不是卖豆浆机那个九阳)或螃蟹

myqiang1990 发表于 2019-6-11 22:56:46

dellric 发表于 2019-6-11 17:13
这个芯片很恼火,你还没有进行长周期测试,测了更伤心,建议换成 九阳 (不是卖豆浆机那个九阳)或螃蟹 ...

我折腾1个多礼拜了,也没结果,RLL版本到底支不支持PHY模式~现在怎么接到MAC3都没办法输出数据{:dizzy:}

dellric 发表于 2019-6-11 23:40:44

myqiang1990 发表于 2019-6-11 22:56
我折腾1个多礼拜了,也没结果,RLL版本到底支不支持PHY模式~现在怎么接到MAC3都没办法输出数据...

不要再浪费时间了,果断弃板吧。
我已经给了3次机会给micrel,但每次都让我伤心,还是九阳最给力,一次性通过。

myqiang1990 发表于 2019-6-11 23:51:20

dellric 发表于 2019-6-11 23:40
不要再浪费时间了,果断弃板吧。
我已经给了3次机会给micrel,但每次都让我伤心,还是九阳最给力,一次性 ...

推荐一个封装小的,支持RMII接口或者MII接口的型号啊,我需要MCU通过RMII接口接入交换机IC的一个PHY与其他交换口进行数据通信~

dellric 发表于 2019-6-11 23:55:17

myqiang1990 发表于 2019-6-11 23:51
推荐一个封装小的,支持RMII接口或者MII接口的型号啊,我需要MCU通过RMII接口接入交换机IC的一个PHY与其 ...

RTL8306E 和 IP175A 你试试,IP175A可带4光口。

PZLPDY 发表于 2019-6-19 16:30:53

dellric 发表于 2019-6-11 23:40
不要再浪费时间了,果断弃板吧。
我已经给了3次机会给micrel,但每次都让我伤心,还是九阳最给力,一次性 ...

你测出来啥问题了?说来听听呗!也供大家参考参考

john78 发表于 2019-6-19 18:55:42

dellric 发表于 2019-6-11 23:40
不要再浪费时间了,果断弃板吧。
我已经给了3次机会给micrel,但每次都让我伤心,还是九阳最给力,一次性 ...

这个我在用。暂时没问是。九阳的什么型号?

john78 发表于 2019-6-19 18:57:32

LZ,我软件默认值,没有配置参数,同网段内ping没丢包

marshallemon 发表于 2019-6-19 23:01:21

不知道LZ udp发>1472byte的数据时怎么处理的?另外问下LZ使用这个片子在UDP方式下实际的通讯速率能做到多少?

zxq6 发表于 2019-6-20 08:32:31

marshallemon 发表于 2019-6-19 23:01
不知道LZ udp发>1472byte的数据时怎么处理的?另外问下LZ使用这个片子在UDP方式下实际的通讯速率能做到多少 ...

我用的tcp协议,没有用udp,不过udp的话,协议栈应该可以自动分包吧。

shiva_shiva 发表于 2019-6-20 09:43:21

手册多读几遍

polarbear 发表于 2019-6-20 09:58:04

我用8863好好的,
以前的经验,丢包是否为你的CPU芯片处理不过来?

我有个案子,之前的一个ARM7 的芯片的老项目, 客户挂到公网,网上的垃圾广播包,经常导致网络丢包和掉线(CPU处理不过来);

后面PHY换成8863, 再开启芯片的广播包限制,和限速功能; 效果好得很呢

包括很多STM32的方案,我用福禄克的网络分析仪上的交通拥堵功能去模拟广播垃圾包的测试,大多数的方案PING 均有丢包,原因是CPU处理不及时;
这个包括以太网的软件处理效率,和CPU的负载率都有关系;

zxq6 发表于 2019-6-20 10:41:15

polarbear 发表于 2019-6-20 09:58
我用8863好好的,
以前的经验,丢包是否为你的CPU芯片处理不过来?



恩,感谢回复。
最后确认原因,是STM32的MCO输出的50M时钟不好用导致。
最终解决方案是使用的8863输出的50M时钟作为双方的rmii时钟,
后来就稳定了。

zxq6 发表于 2019-6-20 10:41:58

polarbear 发表于 2019-6-20 09:58
我用8863好好的,
以前的经验,丢包是否为你的CPU芯片处理不过来?



恩,感谢回复。
最后确认原因,是STM32的MCO输出的50M时钟不好用导致。
最终解决方案是使用的8863输出的50M时钟作为双方的时钟。
然后就比较稳定了。

zxq6 发表于 2019-6-20 10:44:33

polarbear 发表于 2019-6-20 09:58
我用8863好好的,
以前的经验,丢包是否为你的CPU芯片处理不过来?



恩,感谢回复。
最后确认原因,是STM32的MCO输出的50M时钟不好用导致。
最终解决方案是使用的8863输出的50M时钟作为双方的时钟。
然后系统就好用了,基本没有丢包。

myqiang1990 发表于 2019-6-27 13:13:17

zxq6 发表于 2019-6-20 10:44
恩,感谢回复。
最后确认原因,是STM32的MCO输出的50M时钟不好用导致。
最终解决方案是使用的8863输出的5 ...

楼主,你真的是使用KSZ8863RLL吗?我现在在microchip原厂FAE的支持下都不行,MAC3都没有脉冲输出对方看了我的电路图,没有什么问题,为什么你们的都可以呢?

myqiang1990 发表于 2019-6-27 13:19:25

john78 发表于 2019-6-19 18:57
LZ,我软件默认值,没有配置参数,同网段内ping没丢包

朋友,能不能把你的电路图与MCU部分的接线电路图发来看看,我被这个KSZ8863搞得好惨,这玩意真的能通过MII或者RMII接入MCU的MAC进行网络通信吗?

john78 发表于 2019-6-27 15:12:53

myqiang1990 发表于 2019-6-27 13:19
朋友,能不能把你的电路图与MCU部分的接线电路图发来看看,我被这个KSZ8863搞得好惨,这玩意真的能通过MI ...

你的图贴上来吧,关键时钟连线

myqiang1990 发表于 2019-6-27 15:45:58

本帖最后由 myqiang1990 于 2019-6-27 15:49 编辑

john78 发表于 2019-6-27 15:12
你的图贴上来吧,关键时钟连线



MARIOCHIP原厂FAE说了,我的图没有问题~50MHZ时钟也是正常的~1口2口和LED都是正常的,数据能进行正常交换,而且内部寄存器全部可以读写都正常~唯独MAC3没有任何数据输出~所以MCU的MAC没办法收到网络数据~
主要的问题是MAC3没有数据输出,需要怎么配置内部寄存器才能是MAC3能接受到网络数据,并输出数据吗?

john78 发表于 2019-6-27 21:29:13

貌似硬件没有问题。时钟配置有几种方式,你再软件中查查吧。寄存器,我当时用默认值,木修改

世界很飘渺 发表于 2019-6-28 15:06:47

最近我也在调试ksz8863用的是stm32f107芯片,目前也遇到了些问题,udp通信测试时发现接收丢包严重,但发送几千个包没有出现丢包情况。请问该怎么解决?或则什么情况引起的。

世界很飘渺 发表于 2019-6-28 15:09:23

zxq6 发表于 2019-6-20 10:44
恩,感谢回复。
最后确认原因,是STM32的MCO输出的50M时钟不好用导致。
最终解决方案是使用的8863输出的5 ...

我看原理图上的STM32的MCO(PA8引脚)并没有使用到

世界很飘渺 发表于 2019-6-28 17:27:48

myqiang1990 发表于 2019-6-27 15:45
MARIOCHIP原厂FAE说了,我的图没有问题~50MHZ时钟也是正常的~1口2口和LED都是正常的,数据能进行正常交 ...

是不是驱动没配置对哦

myqiang1990 发表于 2019-6-29 00:39:21

世界很飘渺 发表于 2019-6-28 17:27
是不是驱动没配置对哦

不太清楚,我现在想换另外一个方案,这个实在搞不定~

leifeng 发表于 2019-7-24 15:43:16

myqiang1990 发表于 2019-6-29 00:39
不太清楚,我现在想换另外一个方案,这个实在搞不定~

我也觉得应该是软件的问题

leifeng 发表于 2019-7-24 15:49:03

myqiang1990 发表于 2019-6-29 00:39
不太清楚,我现在想换另外一个方案,这个实在搞不定~

你用的是SMI接口吗?

xuxueliang 发表于 2019-9-3 19:57:09

myqiang1990 发表于 2019-6-27 15:45
MARIOCHIP原厂FAE说了,我的图没有问题~50MHZ时钟也是正常的~1口2口和LED都是正常的,数据能进行正常交 ...

你这个图里KSZ8863用的晶振是多少MHz?应该标号是OSC2吧,看不清楚。
你测量的RMII_REFCLK是多少MHz频率?
另外问一下,有没有更换方案,换了什么芯片呀?

云心水影 发表于 2020-11-18 17:26:14

{:smile:}顶一下
页: [1]
查看完整版本: ksz8863出现丢包,怎么处理?