Okay, took a look at the W5500 code and noticed that in utilities/w5500.cpp that in the read/write operations, there are two functions being called before and after RW operations, respectively: setSS() and resetSS(). Interesting.
For reference, all of the Arduino pin settings may be found in their Github.
Reading the documentation, it looks as if the W5500 can operate in either Fixed Length Data Mode or Variable Length Data Mode.
If SPI Operation Mode is set as Variable Length Data Mode (VDM), SPI Bus Signal SCSn
must be controlled by the External Host with SPI Frame step.
At the Variable Length Data Mode, SCSn Control Start (Assert (High-to-Low)) informs
W5500 of SPI Frame Start (Address Phase), and SCSn Control End (De-assert (Low-toHigh)
informs W5500 of SPI Frame End (Data Phase End of random N byte).
Well, there you have it. The chip select pin is used to frame SPI comms.
Documentation folks, it’s there for a reason. ![]()
Well, if nothing else, I learned quite a bit about SPI.
Thank you for all of the help! Hopefully this has been informative.