b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

w5500_w5500 缺点_w5500稳定吗

电脑杂谈  发布时间:2017-03-31 07:04:43  来源:网络整理

最近大家对W5500的关注度日渐提高,对于这款WIZnet新推出的以太网芯片,用户在使用中也遇到了很多问题,为了能给大家提供更便捷的技术支持,小编特此整理出一份W5500的问答帖,看看你的问题是不是可以迎刃而解了?

1.

答:

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

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

原帖来自:9MCU

2.

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

谢谢!

答1:先附上 W5500的例程

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

答2:

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

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

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

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

原帖来自:9MCU

3.

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

答:注意SPI帧的不同。w5500

W5100:

W5500:

原帖来自:9MCU

4.

问题描述:

有几个关于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是0x00,PHYCFGR_LNK_ON是0x01。代码在这里死循环了!绿色的灯常亮,的闪烁。

相关代码:uint8 getPHYCFGR(void)

{

return WIZCHIP_READ(PHYCFGR);

}

uint8WIZCHIP_READ(uint32 AddrSel)

{

uint8 ret;

WIZCHIP_CRIS_enter();

WIZCHIP_CS_select();

w5500稳定吗_w5500 缺点_w5500

AddrSel |= (_W5500_SPI_READ_ | _W5500_SPI_VDM_OP_);

/*

//RWB

#define _W5500_SPI_READ_ (0x00 << 2)

//OM [1:0]

#define _W5500_SPI_VDM_OP_ 0x00

//BSB [4:0]

#define WIZCHIP_CREG_BLOCK (0x00) //< 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.

参考:9MCU下载

6.

问题描述:

您好,我想问一下,咱们的W5300和W5500的区别在哪里呢!?从它们的说明书上的特性和架构上来看,W5300比W5500还要复杂,能告知一下W5500相比较于W5300有什么相同点和不同点吗?!谢谢……迫切渴望您的回答!!!

答:

关于W5300和W5500的区别,请参考一下几点:

单片机接口不同。W5300具有8/16位总线接口;W5500只有SPI接口

发送/接收缓存大小不同。W5300的缓存是W5500的二倍

w5500稳定吗_w5500_w5500 缺点

功耗方面,W5500具有低功耗模式

工艺方面,W5500是.13nm工艺,W5300是.18的

其他一些细微差别

因此如果要是高速率应用,选用W5300比较适合。若是对速率要求不高,可以选用W5500。w5500

7.

答:

W5500 是没有带MAC地址的。客户需要写他们自己的MAC地址到W5500的寄存器的。

一般来说, MAC地址是需要从IEEE申请的。

MAC 地址: xx: xx : xx : yy : yy: yy,xx: xx: xx 是申请公司的代号。

8.

问题描述:

你好,现在网上流传的w5500的接收程序不太明晰,看不懂。

1、tcp socket数据到来的时候。怎么判断数据已经到了?(不用中断)

2、能不能写一个案例程序,判断数据到了。

一下是网站上流传的loopback程序,没看出来数据什么时候到了

void Process_LoopBack(void)

{

unsigned short i;

/* Read Data from RX buffer */

i=Read_SOCK_Data_Buffer(0, S_Data_Buffer);

if(i==0)

return;

/* Write Data to TX Buffer */

while((S0_SendOK==0)&&(S0_TimeOut==0))

Process_IR();

if(S0_SendOK==1)

{

S0_SendOK=0;

Write_SOCK_Data_Buffer(0, S_Data_Buffer, i);

}

else

{

S0_TimeOut=0;

}

}

答:

tcp socket接收到的数据会存放在该socket的接收缓存区里面。对于数据的到来有两种方式判断,一种是您打开该socket的接收中断,那么数据到来时会产生中断,您在读取中断寄存器判断是否为接收中断,是的话就可以读接收缓存区的数据了。第二种是通过轮询的方式,直接去读接收缓存区数据长度,当长度大于0时极为有数据到来。只是两种方式适用情况不一样而已,中断的实时性强一些,轮询的硬件开销比较小(不需要做中断判断和处理)。

下面这段代码是W5500的loopback的一段关于接收数据的处理,采用的是轮询方式

if ((RSR_len = getSn_RX_RSR(s)) > 0) /* 获得接收缓存区数据长度*/

{

if (RSR_len > TX_RX_MAX_BUF_SIZE) RSR_len = TX_RX_MAX_BUF_SIZE; /*判断接收到的数据长度是否大于发送缓存区容量*/

received_len = recv(s, data_buf, RSR_len); /* read the received data */

send(s, data_buf, received_len, (bool)0); /* sent the received data */

}

以下链接是W5500的一些相关例程和移植程序,上面的代码就是链接中W5500 Loopback中的一段代码。

W5500例程下载:?f=93&t=375


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-38607-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...