Skip to main content
Visitor II
May 10, 2024
Question

Ethernet is not working on STM32F107RB

  • May 10, 2024
  • 5 replies
  • 1778 views

Hi,

I am using STM32F107RB MCU for my custom project, currently testing ethernet section. No ping is working and I don't see any data in wireshark.

The Firmware package version is 1.7.0 and IDE version is 1.15.3.

Could anyone suggest.

Regards,

NaveenK

 

    This topic has been closed for replies.

    5 replies

    Super User
    May 10, 2024

    Is this a custom board with a custom PHY?

     

    Graduate II
    May 10, 2024

    Could be any number of reasons your design, implementation or code might fail

    Perhaps try with STM3210C-EVAL board if you can find one. There was an ST / uMicrium board with the F107, and a Golden Bull & Golden Dragon board.

    Perhaps don't design using decades old parts, support and interest is going to be very low.

    Perhaps look at current NUCLEO-144 boards with Ethernet as reference examples.

    https://www.st.com/en/development-tools/stm32-micrium.html

    https://community.st.com/t5/stm32-mcus-products/my-product-should-have-a-lifetime-of-10-years-so-using/td-p/92985

    https://www.hotmcu.com/stm32f107vct6-development-board-32-tft-lcd-p-115.html

    NaveenKAuthor
    Visitor II
    May 11, 2024

    Hi Pavel, yes it is.

    I suppose to use the same controller, as it was decided based on cost.

    Since the board is ready for bring up, I had no option left rather than continuing on it.

    I only needed is that, the supported firmware package on which the ethernet works(working model). So that I can continue to work and make it up.

     

     

    Super User
    May 11, 2024

    First, please ensure that your program can talk to the PHY and it sees the cable connection and speed/duplex detected correctly. When this checked, set breakpoint on the packet received point in the code and send any broadcast from other machine. You should get the breakpoint hit. Then you can proceed to the IP addresses, pings and so on.

    NaveenKAuthor
    Visitor II
    May 16, 2024

    Yes, cable is now detected. Initially, it was not detected after cross verifying the circuit it was observed that the pull ups on RX_DV/MII_MODE and CRS/CRS_DV/LED_CFG were missing and removed some passive components in the circuit.

    I started debugging by giving a ping command from windows terminal and observed step by step code execution. Then I found that the function call given below is returning with Null value,

    In this function HAL_ETH_ReadData();

    /* Check if descriptor is not owned by DMA */
    if ((READ_BIT(dmarxdesc->DESC0, ETH_DMARXDESC_OWN) == (uint32_t)RESET))
    { }

    the above condition is getting failed and HAL_error is returned.

    When I check with working board(with another MCU) the above section is executed.