Hello,
I am adding a feature in our product that has been requested by our customers. The feature requested is the ability to disable auto-negotiation and set the link duplex and speed staticly.
So far I can set the link to 10Mbps Half duplex and 10Mbps Full duplex (which negotiates to half due to IEEE standards) however when I attempt to set it to 100Mbps full or 100 Mbps Half the device is unable to establish a network link. (LINKSTAT on MR1 is reporting 0)
Due to some existing issues in the tiva_tm4c129.c file I have already been required to make modifications to disable auto-negotiation. I removed:
EMACPHYWrite(EMAC0_BASE, PHY_PHYS_ADDR, EPHY_BMCR, (EPHY_BMCR_ANEN | EPHY_BMCR_RESTARTAN));
to prevent negotiation.
When I write the following to the EMACPHY the link cannot be established.
EMACPHYWrite(EMAC0_BASE, PHY_PHYS_ADDR, EPHY_BMCR, (EPHY_BMCR_DUPLEXM | EPHY_BMCR_SPEED)); or EMACPHYWrite(EMAC0_BASE, PHY_PHYS_ADDR, EPHY_BMCR, (EPHY_BMCR_SPEED));
However when I write this to the same register the link works fine:
EMACPHYWrite(EMAC0_BASE, PHY_PHYS_ADDR, EPHY_BMCR, (EPHY_BMCR_DUPLEXM)); or EMACPHYWrite(EMAC0_BASE, PHY_PHYS_ADDR, EPHY_BMCR, 0);
Any ideas what I might be doing wrong?
Thanks,
Jonathan L Clark