cancel
Showing results for 
Search instead for 
Did you mean: 

Ethernet is not working on STM32F107RB

NaveenK
Associate II

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

 

5 REPLIES 5
Pavel A.
Evangelist III

Is this a custom board with a custom PHY?

 

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

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
NaveenK
Associate II

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.

 

 

Pavel A.
Evangelist III

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.

NaveenK
Associate II

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.