W5500 数据手册 Version 1.0 之:主机接口
当主机在VDM模式下,向通用寄存器区域中的Socket中断屏蔽寄存器写入数据‘0xAA’时,SPI数据帧的写操作如下所示:
在传输SPI数据帧之前,外设主机须拉低SCSn,然后主机在时钟(SCLK)跳变时同步传输1位数据。在SPI数据帧传输完毕后,外设主机拉高SCSn。(参考图9)
图 9 VDM模式下,SIMR寄存器写操作
N字节写访问示例
当主机在VDM模式下,向通用寄存器区域中的Socket中断屏蔽寄存器写入5字节数据时(0x11, 0x22, 0x33, 0x44, 0x55),SPI数据帧的写操作如下所示:
N字节的写访问如图10所示。
5字节的数据被连续地写入Socket 1的写缓存地址:0x0040 – 0x0044。
在SPI数据帧传输时,外设主机拉低SCSn(高电平到低电平)。
在SPI数据帧传输完毕时,外设主机拉高SCSn(低电平到高电平)。
图 10 在VDM模式下,向Socket1 的发送缓存区0x0040中写入5字节数据
2.3.2 读访问--VDM模式
图 11 在VDM模式下读SPI数据帧
图11显示的是当外设主机访问W5500做读访问时,SPI的数据帧格式。
在VDM模式下,读/写访问位(RWB)为‘0’(读模式),SPI数据帧控制段的工作模式位(OM[1:0])为‘00’。
与此同时,在SPI数据帧传输之前,外设主机拉低SCSn(高电平到低电平)。
然后主机通过MOSI将地址及控制段的所有位传输给W5500.所有为将在SCLK的下降沿同步。
之后在同步采样时钟(SCLK)的上升沿,主机通过MISO接收到所有数据位。
在接收完所有数据后,主机拉高SCSn(低电平到高电平)。
当SCSn保持低电平且数据段持续传输,即可实现连续数据读取。
1字节数据读访问示例
在VDM模式下,当主机读取Socket 7寄存器区的Socket状态寄存器 (S7_SR),SPI数据帧的数据读取如下所示。我们让S7_SR设置为Socket建立模式下(0x17)。
在SPI数据帧传输之前,外设主机拉低SCSn(高电平到低电平)。然后外设主机通过MOSI传输地址段和控制段给W5500.
然后主机通过MISO接收到接收完的数据。
在完成数据段的接收后,主机拉高SCSn(低电平到高电平)。(参考图12)
图 12 在VDM模式下读S7_SR
N字节读访问示例
在VDM模式下,当从Socket 3的地址为0x0100的读取缓存中读取5字节的数据(0xAA, 0xBB, 0xCC, 0xDD, 0xEE)。这5个字节数据的读访问SPI数据帧如下所示。
N字节读访问如图13所示。
从Socket 3的接收缓存(地址0x0100 – 0x0104),连续地读取这5字节的数据(0xAA, 0xBB, 0xCC, 0xDD, 0xEE)。
在SPI传输数据帧之前,外设主机将SCSn拉低。(高电平到低电平)
在SPI数据段结束时,外设主机将SCSn拉高。(低电平到高电平)
图 13 在VDM模式下,读取Socket 3接收缓存0x0100中的5字节数据
2.4 固定数据长度模式(FDM)
在外设主机不能控制SCSn时,可以使用固定数据长度模式。
此时,SCSn必须连接到低电平(保持接地)。与此同时,SPI接口不能与其他SPI设备共享。(如图5所示)
在可变数据长度模式(VDM)中,数据段长度右SCSn控制。
但是在固定长度模式(FDM)中,数据长度由SPI工作模式位的控制段的值控制((OM[1:0])=‘01’/‘10’/‘11’)。
由于除了SCSn信号和工作模式位(OM[1:0])设置之外,FDM模式下SPI数据帧与VDM模式下的相同,所以此时具体的描述就省略了。
除非特殊情况,一般不提倡使用FDM模式。此外,如‘2.4.1章节’及‘2.4.2章节’所述,我们只能使用1/2/4字节SPI数据帧。使用其他长度数据帧会导致W5500功能问题。
2.4.1 写访问--FDM模式
1字节写访问
图 14 在FDM模式下,1字节写访问SPI数据帧
2字节写访问
图 15 在FDM模式下,2字节写访问SPI数据帧
4字节写访问
图 16 在FDM模式下,4字节写访问SPI数据帧
2.4.2 读访问--FDM模式
1字节读访问
图 17在FDM模式下,1字节读访问SPI数据帧
2字节读访问
图 18在FDM模式下,2字节读访问SPI数据帧
4字节读访问
图 19在FDM模式下,4字节读访问SPI数据帧
- W5500 数据手册 Version 1.0 之:引脚分配(09-18)
- W5500 数据手册 Version 1.0 之:寄存器和内存构成(09-18)
- 多功能的单片网络接口芯片W5100完整数据手册和应用案例指南(09-18)
- 小尺寸单片机在便携式设备中的应用(11-19)
- 基于SPI总线的电能计量芯片ATT7022及其在配电监测终端的应用(01-18)