[From QnA]W5100 SPI won't send data
Ethernet Chips
No replies yet. Be the first to reply.
Join the discussion.
Ethernet Chips
No replies yet. Be the first to reply.
Join the discussion.
Share projects and connect with makers.
Joined before the site update? first.
New to WIZnet Makers?
We sent a verification link to your address. Open it to activate your account, then log in.
Accounts from this email provider are reviewed by an administrator after verification. Approval usually takes one business day.
Already have an account?
Enter your email address. If it belongs to an account, we'll send a link to set a new password. Members who joined before the site update use this to set their password.
If an account uses that address, we sent a link to set a new password. The link works once and expires in 30 minutes.
Know your password?
Need an account?
RE: [From QnA]W5100 SPI won't send data
by hjjeon0608 ·
Dear customer,
Thanks for your interest in w5100.
After 0x000F register write the data transmission ends, configure /SS as ‘high’
Please refer to manual and keep operation timing.
When register read, the opcode value have to use 0x0F.
Problem of your picture
You not use /SS as high ,whenever one data transmission end.
You have to wait for reception complete.
You haven’t shown the read operation.
Reference page of manual : V1.2.4 - 6.3.3 Process of using general SPI Master device(P62), SPI Timing(P64)
Thanks,
WIZnet
RE: [From QnA]W5100 SPI won't send data
by hjjeon0608 ·
Hi, first of all thanks for your reply.
I have a two channel oscilloscope, thats because I only show two signals.
In the fist picture I’m showing how I send the SET IP command to set IP to 10.10.0.45 (0xF0, 0x00, 0x0F, 0x0A for the fist octet).
In the second one, MISO and CLOCK signals are shown for the GET IP command. As you can see, I sent the wrong amount of bytes (5 instead of 4). I corrected it and I’m having the same behaviour. But you can see there the received data: 0x00, 0x01, 0x02, 0x00. The first three bytes are as specified in the W5100 datasheet, but the third one is meant to be the first IP octet (I set it as 0x0A in the previous picture).
The third one shows the same packet sent in the previous picture, but showing /SS and CLK.
I didn’t check if the W5100 send me 0x00, 0x01, 0x02, 0x03 in a write operation.
Before start sending the first byte (OP-CODE), I assert the /SS to low, and then to high right after sending the 4th and last byte.
The SPI data rate is about 2MHz
Thanks in advance,
Mariano.
RE: [From QnA]W5100 SPI won't send data
by hjjeon0608 ·
Hi,
I solved my problem. As you told me, I wasn’t driving well the /SS pin. I observed that the W5100 was going to HI-Z at the middle of the packet, so I checked for the /SS and it was going low at the same point.
I wasn’t waiting for the SPI to shift out all bytes.
Now I’m having IP and the ping response is very fast.
Thanks,
Mariano.
RE: [From QnA]W5100 SPI won't send data
by hjjeon0608 ·
Dear customer,
I’m glad everything worked out fine.
If you need anything, don’t hesitate to ask.
Thanks,
WIZnet
RE: [From QnA]W5100 SPI won't send data
by Arty ·
Hi,
I have almost the same problem. The W5100 chip doesn’t send answer.
I get this result every time when I try to read any register.
it’s my test code:
SetW5100register(MR, 0x80);
SetW5100register(SIPR1, SERVER_IP1);
while(1)
{
i = GetW5100register (SIPR1);
}
Thanks in advance
Arty
RE: [From QnA]W5100 SPI won't send data
by Coccoliso ·
The sequence of writing and reading are these…
Write Register:
Read Register
SPI settings that work are those :
Set the SPI Clock Idle Low on the Rising Edge
Set the SPI Sample on End
RE: [From QnA]W5100 SPI won't send data
by Arty ·
Hi Coccoliso!
Yes, I do this sequence… but I’ve been surprised with signals in inappropriate place (during addressing sequence) and no answer at all.
But I’ve found solution for this problem, I wait longer after reset sequence.
I was surprised that in datasheet it isn’t mentioned. Only strange time like “/RESET to internal PLOCK” time - 10ms maximum.
Arty
RE: [From QnA]W5100 SPI won't send data
by Coccoliso ·
Hi,
in fact it would have been my next suggestion… the verification of the reset that must not be active too long.
It could do with a capacitor as happens in Arduino.
My init sequence: