AnsweredAssumed Answered

STM32F767 Nucleo: ethernet not working

Question asked by Zhang.Yale on Jul 25, 2016
Latest reply on Jan 31, 2017 by squires.daniel.001
Has anyone got ethernet working on the STM32F767 or similar board? I didn't see any examples for this board, so I used the CubeMX tool to generate the initialization code with ethernet on. Then I adapted the LWIP example from another board. Basically, I copied all the HAL_ETH_* calls and am testing transmit only (HAL_ETH_TransmitFrame()). But I never get a TX complete interrupt or even the generic interrupt, ETH_IRQHandler().


Here's what I found so far:


1. The code generator got the PHY address (ETH_InitTypeDef::PhyAddress)  wrong. Should be 0 instead of 1. No wonder HAL_ETH_ReadPHYRegister() was returning 0xffff.


2. Using a DSO Quad oscilloscope, I can detect configuration register activity (MDIO and MDC pins).


3. PHY doesn't generate any reference clock cycles. This is the most obvious thing wrong. I've done a lot of debugging:


a. set oscilloscope to one shot trigger mode to capture any momentary clock pulses - nothing.


b. According to the PHY (LAN8742A) and Nucleo 144 documentation, the PHY should be configured to generate a 50MHz clock on pin 14 from a 25Mhz crystal. This is done by setting nINTSEL (pin 2) low during power-on-reset by. Verified.


c. I also probed the 2 pins connected to the 25MHz oscillator, but no signs of life detected. It's not clear if I'm supposed to detect anything. On the one hand, my scope is only good for up to 7 MHz. But I should at least see a heavily aliased, noisy signal, but instead I'm seeing a flat signal. Or is the reason I don't see anything because the impedance of the scope completely attenuates the oscillator?


thanks for any help

Outcomes