Skip to main content
Visitor II
July 23, 2021
Question

STM32F427 Ethernet interface with KSZ8081 PHY chip

  • July 23, 2021
  • 3 replies
  • 2393 views

Hi

I am using STM32F427 controller. I am using KSZ8081 Ethernet PHY Transceiver.

I have configured the controller for MII interface.

I have set the IP address and trying to ping the board from PC. There is no response.

How to check the controller configuration is working properly?

How to check the Ethernet chip is powered up?

Please let me know how to check this from hardware and software perspective

Thanks

    This topic has been closed for replies.

    3 replies

    Visitor II
    August 24, 2021

    Hello @PMohan​ ,

    Can you please provide your initialization for further check?

    Thanks in advance.

    BeST Regards,

    Walid

    PMohanAuthor
    Visitor II
    August 25, 2021

    0693W00000DqIT2QAN.jpgHardware : I have attached the schematics of how the microcontroller is interfaced with the Ethernet PHY chip. Please go through and let me know for clarifications if any.

    Software Configuration

    1. I am using Static IP
    2. MCO Clock is used
    3. Phy Address is 2
    4. Auto Negotiation Enabled
    5. Speed 100Mbps
    6. Full Duplex mode
    7. MII interface

    I am not clear with MAC address configuration. I have configured MAC Address as 2.

    If you need any other configuration parameters, please let me know.

    Thanks

    Priya

    Visitor II
    August 25, 2021

    Could you please provide the initialization code?

    PMohanAuthor
    Visitor II
    August 25, 2021

    Hi

    1 Write_PHY_Reg( Phy_port, 0x1F, (RMII_CLK_SEL|HP_MDIX_SEL) );

    2 RegValue = ( PHY_KSZ8081_REG_INTRPT_JABBER |

    PHY_KSZ8081_REG_INTRPT_RXERR |

    PHY_KSZ8081_REG_INTRPT_PGERR |

    PHY_KSZ8081_REG_INTRPT_PRLFAULT |

    PHY_KSZ8081_REG_INTRPT_LPACK |

    PHY_KSZ8081_REG_INTRPT_LINKDOWN |

    PHY_KSZ8081_REG_INTRPT_REM_FAULT |

    PHY_KSZ8081_REG_INTRPT_LINKUP )

    Write_PHY_Reg( Phy_port, 0x1B, &RegValue );

    3 Write_PHY_Reg( Phy_port, 0x00, 0x1000 );

    4 Read_PHY_Reg( Phy_port, reg_addr, &basic_status_value );

    When reading the basic_status_value, it is 0x7849. The link is not established.

    Let me know if your query is answered correctly.

    Thanks

    Priya