在嵌入式代碼里,需要從嵌入式的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位來