SOLVED - W3150A+ does not execute commands in Sn_CR

Hello,

I’ve got here a W3150A+ connected to a PHY on our own PCB. Well, SPI connection works fine, but if we perform a command (e.g. 0x10) to Sn_CR (Socket Command Register) it will not be executed. If we read the Sn_CR via SPI, the written command remains in Sn_CR. Sn_CR should be automatically cleared after a command was executed, that’
s what the datasheet says, or is another command necessary?

Can I assume, if the written command remains in Sn_CR, it was not executed? Or, was it executed but the automatic clearing mechanism didn’t work?

Can any (wrong) signal (too high, too low) on any Pin cause this problem?

Confusing:
We have also a NM7010B+, which is also useing a W3150A+ from WIZnet and for this module our code works finde. The Sn_CR is cleared immediately after writing.

Any suggestions?

Thanks a lot!

Hi,
If Your code works fine in NM7010B+ but it dosen’t work in your modules, I wonder your module didn’t design as NM7010B+.

First What part is the PHY?
In PHY, Link signal work fine?
Main Operation clock or xtal 25MHz wokr fine?
MII signals between W3150B+ & PHY work fines?

Thank you.

Our module has almost the same schematic as the NM7010B+, well Layout is quite bigger (like Arduino shields).

Clock works fine, both PHY and Wiznet
I don’t have any signls on MII neither TXC/RCX nor any DATA (measured with Osci)
Didn’t chek link signal, but could it relenant for the “hang” siutation?

Hi,

if you don’t have the RX and TX clock on MII port, the command in Sn_CR will not be executed.
Check why the PHY don’t generate the clock.

Regards
G.

Thanks for the hint, it gave me the right direction for further investigations^^

My PHY has to be initialized by different MDIO write commands to a bunch of different registers (and first of all a software reset command, didn’t consider this^^). After this, I could measure a clock at the TCX/RXC pin and my commands in Sn_CR were executed.

Problem solved! :smiley:

Thanks you very much!

Hi, daniel.

We are glad to resolve your problem.

Thank you.