移植步骤:
注:移植前必须保证工程板的SPI读写已经封装完毕,且可以正常使用。
1.打开工程,我们需要移植以下文件。
每个文件内都有文件功能注释,我在这里就不一一赘述。
2.添加入自己工程后需要注释掉的引用及函数
ST库文件的引用;
延时函数及时钟初始化函数的屏蔽;
EEPROM相关的函数屏蔽;
注:E2的作用是存储其web网页改写的IP,下次上电IP从E2内读取。
如果使用到类似功能,E2的功能框架都要根据set_w5500_ip函数来做。
类型的重定向等等。
注:此部分客户根据自己工程进行调整即可。
3.注册底层SPI读写函数,及CS、RST、INT等引脚的初始化
RST部分:
管脚的初始化我就不在赘述,这个函数内需要将W5500的RST管脚拉低。
拉低时间,实测2us有效,但是也可以根据W5500数据手册内规定的最少500us。
然后拉高,延时一小段时间保持稳定即可。
INT部分:
INT是W5500触发外部中断的引脚,例程内并未使用中断。
官方不推荐客户使用中断模式,因为其中断类型繁多,需要客户考虑到的情况很多。
且网络数据中断频繁,一般的MCU可能没法处理过来,造成中断嵌套。
如需使用,按照外部中断管脚配置即可。
CS部分:
注:因为W5500内部默认的SPI通讯机制,SPI的CS必须可控,不能单纯接地。
这个函数内,将CS的拉高拉低电平的函数写入即可。
注册SPI读写函数
主要在于这3个函数,如果你的SPI读写,已经整合成一个函数,那么只需要修改“IINCHIP_SpiSendData()”函数即可
如果读写是拆分开的,则需要将这俩函数“IINCHIP_WRITE()”“IINCHIP_READ()”进行读写替换。
至此,大致上的移植我们就已经完成了。剩下只需要修改掉相关错误及警告就可以正常驱动W5500。
W5500驱动流程如下:
初始化相关IO引脚后,必须先复位一次W5500,使内部回归初始值。
然后通过读取PHY寄存器的LINK位判断网线是否接入。
如果已经搭配了交换机芯片等,那么PHY检测无法生效,可以跳过。
最后则写入MAC、IP及分配socket的收发缓存即可。
如果使用DHCP,则屏蔽IP函数即可,MAC必须写入。
其他说明:
DHCP的移植,是基本以太网产品都必须具备的功能。
其中DHCP有个在定时器内中断启用的函数,主要进行续租请求的判断。使用DHCP必须完善该步骤。
产品的W5500电路设计必须依照网站推荐的电路设计,其久经市场考验。正确的电路设计是稳定驱动W5500的前提之一。