cancel
Showing results for 
Search instead for 
Did you mean: 

Ethernet problem - Link state detection and handling

jacques.v
Associate

Hi All

I am in need of some assistance and your help will be greatly appreciated.

First off, I am totally new to anything vaguely resembling an ARM MCU, realtime operating systems and LWIP so please go easy on me as I proceed demonstrate my profound ignorance...

Details follow:

--------------------------------------------------------------------------------------------------------------

STM32CubeMX v5.1.0 using STM32Cube FW_F4 V1.24.0 firmware

STM32F407ET on custom hardware with LAN8710Ai ethernet phy.

Atollic TrueSTUDIO® for STM32, Built on Eclipse Neon.1a. Version: 9.3.0

--------------------------------------------------------------------------------------------------------------

Middleware:

FREERTOS

LWIP with HTTPD, CGI and SSI enabled

--------------------------------------------------------------------------------------------------------------

Device is to be configured by means of a self hosted web interface.

I am up and running with three threads doing nothing at the moment (excluding ethernet thread/s).

Problems:

#1. LAN8710Ai starts up with auto negotiate enabled (hardwired MODE - compliments of the board designer) and happily negotiates a 100mbps full duplex connection. Sadly, no comms to host PC. I force the host PC's ethernet adapter to 10mbps full duplex and we can talk, pings and serves web page without trouble (after auto negotiation).

Q. Any idea's why 100mbps won't work.

#2. I'm happy to use 10mbps but the link state monitoring doesn't appear to function (at all/or properly) so, without breaking the STM32CubeMX configuration...

Q. How do I get the link state monitoring to work correctly so that I can force the LAN8710Ai to re-negotiate the connection when the ethernet cable is plugged in (and not only on power up).

I have found a couple of posts (here) in this regard but none have provided a solution that works, my ignorance may be playing a role here as I have practically zero understanding of threads and semaphores and how they all keep things running... so some good advice will come in very handy.

Thanks in advance.

Jacques

0 REPLIES 0