Thank you for contacting the Intel Embedded Community.
We suggest you verify that your design fulfills with the suggestions stated in the answers to the questions 2.9, 2.13, 2.16, 2.22, 2.23, 2.29, and 2.30; on pages 6, 7, 8, 9, 10, and 11 of the Intel(R) Ethernet Controller I210/I211 Frequently Asked Questions (FAQs) document # 335346.
By the way, if the problem persists, we would like to address the following questions:
Could you please tell us if the affected design is a third party one or it has been developed by you? In case that it is your project, could you please tell us if it has been developed based on the suggestions stated in the Intel(R) Ethernet Controller I210: Design Guide document # 513305, Intel(R) Ethernet Controller I210-AT/IT: Layout Review Checklist document # 495298, and Intel(R) Ethernet Controller I210-IS: Layout Review Checklist document # 495299? Also, could you please confirm us if it has been verified by Intel?
Thanks in advance for your collaboration to solve this inconvenience.
Hi Carlos, here is more data, with scope shots.
** I had problems including the images, so here is a link to the images:
01 - The first MDIO cycle, done by the MAC coming out of RESET. The sequence is correct, but stops and goes. The cycle stops for goods after the MAC has driven the Preamble, the Opcode, the PHY address and the Register address.
02 - The end of the same cycle in detail. It shows the last Register address bits being driven out and the 2 'turnaround' clock cycles where the MDIO signal is tri-stated.
03 - The first software initiated Read Cycle on the MDIO Bus.
04 - The end of that cycle in detail.
Since my last post, I have verified that the clock signal provided to the MAC is good. It is generated by an oscillator, through the recommended capacitive divider. I measure a very steady square wave at 25MHz, with 1,4V amplitude. I also tried a different divider, which provided a larger 2,0V amplitude on XTAL1, without any change on the behavior.
What would you suggest to do if we want to disable the power management and run some tests?
Thanks for your help!
1 of 1 people found this helpful
Hi everyone, I just found the problem.
Our PHY is not properly started, so when the MAC tries to communicate with it through MDIO, it does not respond at all.
It is clear now that when the MDIO master initiates a cycle, it will drive the preamble, the Opcode, the adresses, and then will monitor the bus during the Turnarond cycles. If the bus is not pulled high, then low during the Turnaround cycles, the master assumes there is no one to answer the request, and stops the cycle.
Once I get the PHY to start correctly, the cycles are completed correctly.
To enable the External MDIO, I only changed Word 0x24 from 0x42A0 to 0x42A4, so that MDICNFG.Destination is set right after RESET.
With this bit set, the driver correctly steers the communication to the external bus, in MDIO mode.