美文网首页
w5500问题集锦1

w5500问题集锦1

作者: 上官罗罗 | 来源:发表于2018-11-17 21:24 被阅读0次

    在”WIZnet杯”以太网技术竞赛中,有很多参赛者在使用中对W5500有各种各样的疑问,对于这款WIZnet新推出的以太网芯片,使用中大家是不是也一样存在以下问题呢?来看一看:

    1.

    W5500不支持自动极性变换,有点失望……

    答:

    其实,只要对方支持极性变换就可以实现,现在的设备不支持极性变换的很少的。

    你要是碰到个别老设备连不上,再换交叉线也不迟。基本上2000年以后的设备都没问题的啦~

    原帖来自:9MCU

    2.

    W5500+STM32F0无法通信

    问题描述1:我现在做毕设,老师推荐买了W5500这款芯片,与STM32F0进行通信。但是根据收集到的资料,修改的例程找不到问题所在。对于网络这部分,本人小白一个,附上程序,希望大家指导一下!

    谢谢!

    答1:先附上  W5500的例程

    问题描述2:如果ping 不通,TCP连接不能建立是代码的问题吗?loopback的程序步骤是怎样的

    答2:

    W5500 若想Ping通的话需要保证以下2点:

    1)物理信道通信正常:初步判定Link 灯及状态灯指示正常。

    2)配置了W5500的IP,网关,子网掩码,MAC地址这些特殊寄存器

    由于W5500内部硬件逻辑电路实现了ARP协议。所以,一旦收到ping包请求的话,会自动回复。以上的设置不过是为了保证基本信道及通讯能够建立的而已。

    反向而言,如果Ping不通,也可以先从这两方面着手。

    原帖来自:9MCU

    3.

    W5500没指明接收缓冲数据格式,和W5100一样?

    问题描述:习惯码字和调试分离,虽然待会调试就知道了,也不妨提出来沟通下。

    答:注意SPI帧的不同。

    W5100:

    W5100 数据帧格式

    W5500:

    W5500 数据帧

    原帖来自:9MCU

    4.

    关于w5500程序的几个问题

    问题描述:

    有几个关于w5500程序的问题想请教大家:

    void Reset_W5500(void)

    {

    WIZ_RESET_0; //低电平

    Delay_us(50); //这个的时间如果设为500us,貌似指示灯就全暗了??

    WIZ_RESET_1;

    Delay_ms(200);

    }

    while(( (getPHYCFGR()) & PHYCFGR_LNK_ON) == PHYCFGR_LNK_OFF); //PHYCFGR_LNK_OFF是0×00,PHYCFGR_LNK_ON是0×01。代码在这里死循环了!绿色的灯常亮,黄色的闪烁。

    相关代码:uint8  getPHYCFGR(void)

    {

    return WIZCHIP_READ(PHYCFGR);

    }

    uint8  WIZCHIP_READ(uint32 AddrSel)

    {

    uint8 ret;

    WIZCHIP_CRIS_enter();

    WIZCHIP_CS_select();

    AddrSel |= (_W5500_SPI_READ_ | _W5500_SPI_VDM_OP_);

    /*

    //RWB

    #define _W5500_SPI_READ_            (0×00 << 2)

    //OM [1:0]

    #define _W5500_SPI_VDM_OP_          0×00

    //BSB [4:0]

    #define WIZCHIP_CREG_BLOCK          (0×00)        //< Common register block 通用寄存器

    #define PHYCFGR                    ((0x002E << 8) + (WIZCHIP_CREG_BLOCK << 3))  //16位地址段+8位控制段

    */

    WIZCHIP_SPI_write_byte((AddrSel & 0x00FF0000) >>  16);

    WIZCHIP_SPI_write_byte((AddrSel & 0x0000FF00) >>  8);

    WIZCHIP_SPI_write_byte((AddrSel & 0x000000FF) >>  0); //8位控制段

    ret = WIZCHIP_SPI_read_byte();

    WIZCHIP_CS_deselect();

    WIZCHIP_CRIS_exit();

    return ret;

    }

    uint8 WIZCHIP_SPI_read_byte(void)

    {

    uint8 data;

    data = MSP430_SPI_read_byte();

    return data;

    }

    uint8 MSP430_SPI_read_byte(void)

    {

    while (!(UC0IFG & UCB0RXIFG))

    ; // wait for an rx character?

    return UCB0RXBUF; // reading clears RXIFG flag

    }

    答:

    具体的问题?

    开始是一个reset的延时,表示拉低reset脚多长时间使reset引脚生效。

    下面那个是检查W5500PHY的状态。看一下网线是插入还是断开状态。你看一下你的While 函数判断过后是否进入死循环。

    建议先参考一下官方的STM32+W5500的代码,再转移到MSP430平台上

    原帖来自:9MCU

    5.

    W5500io的Keil C工程文件包

    相关文章

      网友评论

          本文标题:w5500问题集锦1

          本文链接:https://www.haomeiwen.com/subject/lygifqtx.html