STM32驱动W5500作为客户端进行通讯
- 模块简介
- 引脚说明
- 接线
- 代码
- 部分代码
- 测试是否通讯成功
模块简介
SR-ES1内嵌Wiznet的W5500芯片,使用硬件逻辑门电路实现TCP/IP协议栈的传输层及网络层(如:TCP,UDP,ICMP,IPv4,ARP,IGMP,PPPoE等协议),并集成了数据链路层,物理层,以及32K字节片上RAM作为数据收发缓存。使得上位机主控芯片,只需承担TCP/IP应用层控制信息的处理任务。从而大大节省了上位机对于数据复制、协议处理和中断处理等方面的工作量,提升了系统利用率及可靠性。
在操作过程中,用户可以近似的将W5500作为MCU的一个外设RAM来使用,非常简易。W5500对外接口为通用的80MHz高速SP1,供不同平台拓展高速以太网方案选用。自动协商LED状态显示SP接口速度快稳定性高。尺寸与引脚兼容Wiznet官方的模块WIZ820io。
引脚说明
GND:地,电源负
VIN3.3: 3.3V电源正
PWDN: 引脚用于断电模式
高电平: 断电模式启用
低电平: 正常模式启用
nREST: 该引脚低电平有效,用于复位重新初始化W5500
MISO: SPI主输入从输出.
MOSI: SPI主 输出从输入
SCLK: SPI时钟引脚
nSS: SPI片选引脚,低电平有效
nINT: 中断引脚,低电平有效
接线
使用的单片机:STM32F103ZET6
STM32F103ZET6 | W5500 |
---|---|
PC5 | RST |
PC4 | INT |
PA4 | CS |
PA5 | SCK |
PA6 | MISO(MI) |
PA7 | MOSI(MO) |
3.3V | V |
GND | G |
代码
这里采用的是中断方式,W5500工作在客户端模式,并且以500ms的时间间隔定时给服务端发送字符串"\r\nWelcome To YOUXINDIANZI \r\n",电脑作为服务端接收数据,打开对应的测试软件可以接收到"Welcome To YOUXINDIANZI"的数据。
通讯之前需要设置好IP地址等参数,这里选择设置为与程序相同的IP地址和网关,具体设置如下。
目的IP地址是需要修改的电脑的IP地址参数,以及对应的网关和掩码。
/*例程网络参数*/
//网关: 192.168.1.1
//掩码: 255.255.255.0
//目的IP(电脑)地址: 192.168.1.190
//目的端口号: 6000
设置如图:
部分代码
这里仅展示5500初始化部分的代码,具体代码有需要下方留言哦!
void W5500_Init(void)
{u8 i=0;Write_W5500_1Byte(MR, RST);Delay(10);Write_W5500_nByte(GAR, Gateway_IP, 4);Write_W5500_nByte(SUBR,Sub_Mask,4); Write_W5500_nByte(SHAR,Phy_Addr,6); Write_W5500_nByte(SIPR,IP_Addr,4); for(i=0;i<8;i++){Write_W5500_SOCK_1Byte(i,Sn_RXBUF_SIZE, 0x02);//Socket Rx memory size=2kWrite_W5500_SOCK_1Byte(i,Sn_TXBUF_SIZE, 0x02);//Socket Tx mempry size=2k}Write_W5500_2Byte(RTR, 0x07d0);Write_W5500_1Byte(RCR,8);Write_W5500_1Byte(IMR,IM_IR7 | IM_IR6);Write_W5500_1Byte(SIMR,S0_IMR);Write_W5500_SOCK_1Byte(0, Sn_IMR, IMR_SENDOK | IMR_TIMEOUT | IMR_RECV | IMR_DISCON | IMR_CON);
}
测试是否通讯成功
将模块和STM32用杜邦线连接好,W5500端口连接电脑的网口,实际接线如图:
接好线后下载程序并运行,在PC端打开测试软件,填入服务端对应的IP地址和端口号,单击connect即可看到客户端发送过来的数据了,接收页面如下:
每隔500ms出现一次 Welcome To YOUXINDIANZI 就证明通讯成功了。
如果点击connect后没有出现数据,下方也没有出现客户端的地址,那可能是
- IP地址设置有误或者没有改IP地址
- 单片机下载程序后没有复位运行