No valid signal from MISO
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: No valid signal from MISO
by Philipp K ·
There shouldn’t be any (if I am not mistaken):
SS = Slave Select
CS = Chip Select
n = Active Low, i. e. 0 means the function is enable/the chip is selected
This waveform looks a bit strange to me, kinda as if two devices are driving the same line; I’ve observed this with I²C devices, where this behavior is desired. It looks like one device is driving the line low, and then a second one joins in.
Could you maybe verify that all your host mcu’s gpio pins are correctly configured (especially that MISO is in high impedance/input mode) and that there isn’t any undesired physical connection between IO lines on your board?
I am not sure about the W5200, but the W5500 has two data transfer modes which can be selected individually with each transfert. Either 1, 2 or 4 byte fixed size transfer or a variable data length mode, where the beginning and the end of a frame is marked by the Chip Select going low at the start and high in the end.
Toggling CS (or SS for that matter) during a conversation would be very uncommon (and also isn’t done in the manual).
I am just not sure what they mean by “The MISO pin should
be selected by driving MISO low after the falling edge of the CSn.”.
Do you also send the dummy bytes to give the chip the possibility to transfer the requested data? Or do you only send the 4 instruction bytes? (Looks a bit like it on first glance)
RE: RE: No valid signal from MISO
by aripod ·
@Philipp_K, thank you for taking the time to reply.
So, if I understand the manual correctly, I am sending 16 bits for address and 16 bits for OP and length. Then, I should generate the number of clock cycles accordingly to the length value (length x 8) and that is why, in this case that I want to read only one byte (address 0x000F) I am generating on SCLK 5 “packets” of 8 clock pulses.
Thanks for the help.
RE: No valid signal from MISO
by Philipp K ·
That’s the CLK pulses that you described, I overlooked that when I looked at your screenshots. So that should be good, too
RE: No valid signal from MISO
by aripod ·
Yes, that is what I meant by sending 5 packets of 8 clock pulses on SCLK. I am sending 4 bytes for address, OP and length and then I have one more byte (because I have length=1) then (with 0x00 rather than 0xFF) that the device should send back data.
RE: No valid signal from MISO
by irina WIZnet ·
Hi~aripod
The value of SIPR register is empty after reset operation or Initial version.
Therefore the value of SIPR register may not be.
I recommend reading W5200 version register(0x001F).
If you read version register(0x001F), you see the 0x03 through MISO.
thanks,
BR
irina
RE: No valid signal from MISO
by Philipp K ·
The MOSI waveform looks good to me. nCS going high after every byte is still strange, since as you said, the manual doesn’t mention that, but states explicitly that nCS has to go low before the transmission and high afterwards (no word of in between). I can’t tell for sure, but I’d expect that the chip would understand this as an aborted transmission (though again, this is just a guess).
After initialisation, the register should read 0x00, which is what you receive here, but in your first picture without toggling nCS during transfer, you get 0xFF I can see it correctly.
Maybe we can get a closeup of that transmission, too, to see what happens there?
Otherwise I too would be curious if reading the version register works, as Irina suggested.
Also, is the level on the Reset line as expected? (Just a thought)
RE: No valid signal from MISO
by aripod ·
@irina_kim and @Philipp_K,
I tested reading the 0x001F register and I got the expected value 0x03:
The question now is, should I keep it like that, toggling SS with every byte or keep it low until the last byte is transmitted like the manual shows?
Thank you both for your help.
RE: No valid signal from MISO
by Philipp K ·
If both ways work for you, I would recommend doing it as described in the manual since I’d say that this is more logical from the interface point of view
RE: RE: No valid signal from MISO
by aripod ·
I tried doing it like in the manual but that did not work:
I kept the same settings, to read the register 0x1F with the “dummy” byte to read back but there is nothing on MISO.
RE: No valid signal from MISO
by Philipp K ·
This is really odd. What strikes me is that in this
Screenshot, MISO is already low before the transmission starts, but in your other example, it was high until the chip started to reply
RE: No valid signal from MISO
by aripod ·
That is actually a very good point. In fact, if we check the screenshots from the other post, we can see that MISO is low.
RE: No valid signal from MISO
by aripod ·
The problem was that it nRESET was low…now it is fixed:
But still it is still the open question whether MISO should be high or low when it is not transmitting.