在嵌入式代码里,需要从嵌入式的MCU访问W5500芯片。
这个是通过SPI通讯来实现的,所以要先连接SPI的硬件通讯线路。
接着下来,就是怎么样访问这个芯片了。
要访问这个芯片,需要通过SPI来发送数据,而发送数据又要有一定的约定格式,
于是芯片厂商就定义下面的通讯格式:
在这个格式里,前面16位是地址,也就是第一个字节和第二个字节表示地址。
第三个字节表示是控制字节,在这里主要有选择哪些寄存器地址,以及读写模式和操作模式。
第四个字节就是表示要写入,或读取的字节。
比如下面这行计算接收缓冲区的地址:
#define Sn_RXBUF_SIZE(N) (_W5500_IO_BASE_ + (0x001E << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
在这里看到地址值为0x001E, 控制字节高5位为(WIZCHIP_SREG_BLOCK(N) << 3)),
也就是说用来选择不同的寄存器。
由此可见,W5500是通过寄存器地址和控制字节高5位来