What functions do I need to convert from SPI traffic to TXN/TXP?

Good morning,

I’ve verified that I have MISO, MOSI, SCS, and a CLK signal on my SPI bus using an oscope. Specifically, the MOSI lines transmits 0x0001, 0x0002, 0x0003, etc…, my MISO line transmits 0x01, 0x02, 0x03, etc (as expected), and my CLK and SCS do what they are supposed to be doing too so no concerns there.

HOWEVER, I am not observing any traffic on my TXN, TXP, RXN, and RXP lines. I suspect that I need to tell the W5500 to perform some sort of conversion OR that it classifies the MOSI traffic as dummy data and discards it.

Additionally, I have the ioLibrary_Driver-master files. Do I need to use one of these functions (which one(s)?) to tell the W5500 slave device to transmit down the TXN/TXP line or do I just need to write to a specific memory address on the W5500?

To get result you want you have to follow specific sequence performing programming the chip behavior through SPI. The programming rules and sequences are shown in the W5100 and W5500 datasheets. Driver source code you have, after compilation, are expected to help you configuring and programming the chip, and therefore get required traffic out of the chip.

can you cite which page of the 5500 data sheet? I’m looking at v1.1.0 right now, and there are no programming rules or sequences that i can identify

additionally, will i need to “wrap” these instructions within code that tells the MCU to transmit the traffic down the MOSI line? A lot of these functions return void so I suspect nesting them within MCU-specific fcn calls will throw errors.

Start with W5100 datasheet, from the beginning, it lists all the basics. I suspect you will need advanced help because programming will also involve sockets programming.

All im trying to do is send 0xAA down the SPI bus and up through the ethernet able. Can you tell me which data packet I need to send to the W5500 via the MOSI line?

Currently I am sending 0x001814AA where 0x0018 is the address for the SIMR common register block and the last two bytes are…socket 0 tx buffer (0b00010), RWB is write mode (0b1), OM is VDM (0b00) and the data byte is (0xAA).

am I mixing configuration traffic with data traffic? Can you give me an example bitstream I can bit bang into the MCU so that it sends it out the RJ45 cable?

I don’t see which common register I ought to write to (i.e., first 16 bits) that enable me to send traffic.

This, as is, has no sense. You must send data to some recipient ready to receive that data.

You initialize the chip, you set up socket properties including remote node properties, you command to open he socket, and only then, after success, you can send data to remote node through the wire.

thank you. do you have any videos on configuring the chip via SPI posted anywhere?

is there a way to monitor whether the socket is open or not?

ok let’s back up here for a minute…how do you send commands to the W5500? Do I need to connect it to the SPI network and send the W5500 commands all through the MOSI from the MCU to the W5500?