This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TM4C1294NCPDT: PHY is not Resetting using EPHY_RCR Register

Part Number: TM4C1294NCPDT

Tool/software:

Hello 

I am Resetting PHY using below command and Reading same register to verify that bit is set or not. but getting 0 on reading. 

EMACPHYWrite(EMAC0_BASE, PHY_PHYS_ADDR, EPHY_RCR, EPHY_RCR_SWRST);  // Write reset command

 SysCtlDelay(2000000); 

Actually want to reset PHY like resetting on hard reset / power cycle through code. We found that using EPHY_RCR_SWRST this bit it clears all PHY registers. 

Please suggest if any other register of PHY  from which we can completely initialize.

Thanks,

Regards

Amol Borase

  • Hi,

    Actually want to reset PHY like resetting on hard reset / power cycle through code.

     You can use SysCtlPeripheralReset(SYSCTL_PERIPH_EPHY0) to reset the PHY.

  • Thank you for quick reply charles
    SDK version  : 2.1.4.178 
    1. Here I am resetting PHY in timer interrupt handler , so does it requires any delay to execute reset instruction you mentioned above? 
    After PHY reset I am resetting controller so , all registers of PHY will get reset or how it will be 
    2. what is difference between SysCtlPeripheralReset(SYSCTL_PERIPH_EPHY0) and SysCtlPeripheralDisable(SYSCTL_PERIPH_EPHY0) APIs, with reference to PHY register
  • 1. Here I am resetting PHY in timer interrupt handler , so does it requires any delay to execute reset instruction you mentioned above? 
    After PHY reset I am resetting controller so , all registers of PHY will get reset or how it will be 

    Hi,

      A reset using SysCtlPeripheralReset(SYSCTL_PERIPH_EPHY0) will reset all its registers to its default reset state. I don't think a delay is needed when applying the reset.

    2. what is difference between SysCtlPeripheralReset(SYSCTL_PERIPH_EPHY0) and SysCtlPeripheralDisable(SYSCTL_PERIPH_EPHY0) APIs, with reference to PHY register

    SysCtlPeripheralReset is to perform a reset to the specified peripheral while SysCtlPeripheralDisable will disable clocks to the specified peripheral.