首页>>新闻资讯

应用笔记

W5500 移植思路

更新时间:2018-11-22 阅览次数: 3402

移植步骤:

注:移植前必须保证工程板的SPI读写已经封装完毕,且可以正常使用。

1.打开工程,我们需要移植以下文件。

2018111016514898.png

每个文件内都有文件功能注释,我在这里就不一一赘述。

2.添加入自己工程后需要注释掉的引用及函数

ST库文件的引用;

延时函数及时钟初始化函数的屏蔽;

EEPROM相关的函数屏蔽;

注:E2的作用是存储其web网页改写的IP,下次上电IP从E2内读取。

如果使用到类似功能,E2的功能框架都要根据set_w5500_ip函数来做。

类型的重定向等等。

注:此部分客户根据自己工程进行调整即可。

3.注册底层SPI读写函数,及CS、RST、INT等引脚的初始化

RST部分:

新建位图图像.bmp

管脚的初始化我就不在赘述,这个函数内需要将W5500的RST管脚拉低。

拉低时间,实测2us有效,但是也可以根据W5500数据手册内规定的最少500us。

然后拉高,延时一小段时间保持稳定即可。

INT部分:

INT是W5500触发外部中断的引脚,例程内并未使用中断。

官方不推荐客户使用中断模式,因为其中断类型繁多,需要客户考虑到的情况很多。

且网络数据中断频繁,一般的MCU可能没法处理过来,造成中断嵌套。

如需使用,按照外部中断管脚配置即可。

CS部分:

20181110171959217.png

注:因为W5500内部默认的SPI通讯机制,SPI的CS必须可控,不能单纯接地。

这个函数内,将CS的拉高拉低电平的函数写入即可。

注册SPI读写函数

20181110172240969.png

主要在于这3个函数,如果你的SPI读写,已经整合成一个函数,那么只需要修改“IINCHIP_SpiSendData()”函数即可

如果读写是拆分开的,则需要将这俩函数“IINCHIP_WRITE()”“IINCHIP_READ()”进行读写替换。

至此,大致上的移植我们就已经完成了。剩下只需要修改掉相关错误及警告就可以正常驱动W5500。

W5500驱动流程如下:

20181110174538895.png

初始化相关IO引脚后,必须先复位一次W5500,使内部回归初始值。

然后通过读取PHY寄存器的LINK位判断网线是否接入。

如果已经搭配了交换机芯片等,那么PHY检测无法生效,可以跳过。

最后则写入MAC、IP及分配socket的收发缓存即可。

如果使用DHCP,则屏蔽IP函数即可,MAC必须写入。

其他说明:

DHCP的移植,是基本以太网产品都必须具备的功能。

其中DHCP有个在定时器内中断启用的函数,主要进行续租请求的判断。使用DHCP必须完善该步骤。

产品的W5500电路设计必须依照网站推荐的电路设计,其久经市场考验。正确的电路设计是稳定驱动W5500的前提之一。