lg75@163.com 发表于 2018-5-28 12:53:43

使用RL库,从DP83848移植到LAN8720A的问题。

使用STM的429芯片,现在想使用keil自带的RL-TCPNet,它默认支持的是DP83848芯片,而我的板子上是LAN8720A,
以前从DP83848转成DM9161就很简单,只需要改几个寄存器的定义和地址,但是这次改了就不行,现在以太网灯闪烁正常,可是收发数据不行。(板子是好的,我用lwip就通讯都正常。)

请指教,多谢多谢!


//LAN8720 PHY
//#define PHY_SR                              ((uint16_t)31)//LAN8720μÄHY×′쬼Ä′æÆ÷μØÖ·
//#define PHY_SPEED_STATUS    ((uint16_t)0x0004)   //LAN8720 PHYËù¶èÖμÑúÂë
//#define PHY_DUPLEX_STATUS   ((uint16_t)0x00010) //LAN8720 PHYᬽó×′ì¬ÖμÑúÂë

// The DP83848 PHY status register
#define PHY_SR               ((uint16_t)0x10) /* PHY status register Offset */
#define PHY_SPEED_STATUS       ((uint16_t)0x0002) /* PHY Speed mask */
#define PHY_DUPLEX_STATUS      ((uint16_t)0x0004) /* PHY Duplex mask */


eric2013 发表于 2018-5-29 19:19:00

不好意思楼主,刚发现这里还有一个问题。:handshake

这样的话,建议直接使用我们TCPnet教程中给的驱动,驱动里面在关键的几个地方做了打印,你看看你那里是否正常。

sanit 发表于 2019-1-15 19:20:40

请问现在楼主搞通了吗

eric2013 发表于 2019-1-16 00:20:41

sanit 发表于 2019-1-15 19:20
请问现在楼主搞通了吗

你遇到了什么问题,开个帖子,找我交流就行:handshake

也许在明天 发表于 2019-7-24 22:32:58

eric2013 发表于 2018-5-29 19:19
不好意思楼主,刚发现这里还有一个问题。

这样的话,建议直接使用我们TCPnet教程中给的驱动, ...

Eric,您好!
      我也遇到类似问题,板子是LAN8720A,程序跑几个小时后,卡在发送这里:
/* 等待上一帧数据发送完成 */
while (Tx_Desc.CtrlStat & DMA_TX_OWN);
应该是哪里没有配置好,您有没有做LAN8720A的兼容

eric2013 发表于 2019-7-25 00:30:13

也许在明天 发表于 2019-7-24 22:32
Eric,您好!
      我也遇到类似问题,板子是LAN8720A,程序跑几个小时后,卡在发送这里:
/* 等待上 ...

LAN8720A我还真没。

Nesayx 发表于 2019-7-25 10:56:20

也许在明天 发表于 2019-7-24 22:32
Eric,您好!
      我也遇到类似问题,板子是LAN8720A,程序跑几个小时后,卡在发送这里:
/* 等待上 ...

是不是程序运行开始,PHY芯片没有复位呢?

也许在明天 发表于 2019-7-25 11:09:28

Nesayx 发表于 2019-7-25 10:56
是不是程序运行开始,PHY芯片没有复位呢?

用的是外部引脚复位,现在我也改为使用设置寄存器来复位;但有个问题,都跑了好几个小时,才出现;而且跟电脑还有关系,接不通的PC机测试,最后卡的时间还不一样,高配置的电脑,运行10天都正常

也许在明天 发表于 2019-7-25 11:13:10

eric2013 发表于 2019-7-25 00:30
LAN8720A我还真没。

看来后续还是使用您开发板上推荐的芯片比较靠谱,这个主要是别人的板子,所以没办法要求;不过认真查看了LAN8720A的寄存器,其实都差不了多少

Nesayx 发表于 2019-7-25 11:42:52

本帖最后由 Nesayx 于 2019-7-25 11:45 编辑

也许在明天 发表于 2019-7-25 11:13
看来后续还是使用您开发板上推荐的芯片比较靠谱,这个主要是别人的板子,所以没办法要求;不过认真查看了 ...
可以先测试下不建立任何socket ,然后PING几天试试,看看是不是有错误的TCP包导致的,我之前也遇到过CLOSE SOCKET一直不成功的现象如果PING一直通,那应该是socket某些地方没有处理好,如果PING有问题,就得再继续排查了

也许在明天 发表于 2019-7-25 14:39:14

Nesayx 发表于 2019-7-25 11:42
可以先测试下不建立任何socket ,然后PING几天试试,看看是不是有错误的TCP包导致的,我之前也遇到过CLOSE ...

好的,多谢指点:handshake

Nesayx 发表于 2019-7-27 10:07:07

也许在明天 发表于 2019-7-25 14:39
好的,多谢指点

我用的F429+LAN8720 ping了两天左右没有丢包的现象,延时最高47ms,中间经过一台交换机,无跨网段,我估计是你的其他的东西出错了,最好在出错的机子上一边测一边wireshark抓包,丢包后看看对应的最后一条是怎么回事

也许在明天 发表于 2019-7-27 21:55:30

Nesayx 发表于 2019-7-27 10:07
我用的F429+LAN8720 ping了两天左右没有丢包的现象,延时最高47ms,中间经过一台交换机,无跨网段,我估 ...

lan8720a那部分的驱动,能发下参考不:)

Nesayx 发表于 2019-7-28 14:25:59

我用的CMSIS Driver的,你那个应该是以前的RL-net 我用的是V7应该不一样,你想看可以到X:\Keil_v5\Packs\ARM\CMSIS-Driver\2.4.0\ETH下找PHY文件,都一样的
页: [1]
查看完整版本: 使用RL库,从DP83848移植到LAN8720A的问题。