W5200是WIZnet公司研发的一款高速SPI以太网控制芯片,内嵌全套硬件TCP/IP协议栈。它支持ADSL连接 (支持PPPOE协议 & 带PAP/CHAP验证),支持8个独立的端口(sockets)同时连接,内部32K字节存储器作TX/RX缓存。多种指示灯信号输出(Full/Half duplex. Link, Speed)。休眠模式及网络奂醒也是其很有特色的功能。下面继续给大家介绍如何使用W5200的间接总线接口模式?
驱动程序移植指引
- 首先,我们要定义W5200的基地址
定义它为 ‘__DEF_IINCHIP_MAP_BASE__’
方法: #define __DEF_IINCHIP_MAP_BASE__ 0x8000
如果它的基地址是大于0xffff, 以下的部分就要改变一下.
<Refer to types.c>
static u32 SBUFBASEADDRESS[MAX_SOCK_NUM];
static u32 RBUFBASEADDRESS[MAX_SOCK_NUM];
u32 getIINCHIP_RxBASE(u8 s)
u32 getIINCHIP_TxBASE(u8 s)
u8 IINCHIP_WRITE(u32 addr, u8 data)
u8 IINCHIP_READ(u32 addr)
- W5200界面
用户使用不同的MCU会有不同‘__DEF_IINCHIP_BUS__’的基本值. 用户是需要在间接模式和SPI模式选择其中一个模式来实现硬件界面
<Refer to types.h>
#define __DEF_IINCHIP_INDIRECT_MODE__ 1
#define __DEF_IINCHIP_SPI_MODE__ 2
#define __DEF_IINCHIP_BUS__ __DEF_IINCHIP_INDIRECT_MODE__
- W5200初始化
1) 设置ADDR[0-1]为0x0000。(写入0x00值到0x0000地址)
*((volatile uint8*)(0x0000)) = 0x00;
2) W5200硬件重设
3) 设置W5200为间接的接口模式和地址自动增加功能
MR [0x0000] 0x03;
4) 使用软件重设将W5200初始化.
MR [0x0000] 0x80;
5) 设置网络配置
以下是要配置的基本网络的配置
- 网关地址寄存器
- 源硬件地址寄存器
- 子网掩码寄存器
- 源IP地址寄存器
ex) 网关地址要设置为192.168.0.1
GAR [0x0001 ~ 0x0004] [0xC0, 0xA8, 0x00, 0x01];
使用以上的方法来配置其他的寄存器 (源硬件地址寄存器, 子网掩码寄存器, 源IP地址寄存器)
6) 设置RX寄存器和TX寄存器的内存大小.你可以分配每一个信道的内存大小
7) 当你完全第6 步, 你可以得到W5200的ICMP应答消息. 这代表了,你可以用W5200的IP 地址去 “Ping” 来得到自W5200的回复.
感谢关注!
相关内容: