AnsweredAssumed Answered

Ethernet frames get corrupted on custom board

Question asked by suzuki.isaque on Aug 28, 2014
Latest reply on Aug 29, 2014 by suzuki.isaque
Hello everyone, 

I'm using:
- STM32CubeMX version 4.3.0
- uVision version 5.11.1.0
- ST-LINK/V2 SWD mode
- custom board described below

I have designed a custom board with a STM32F207VET6 microcontroller and a 3-port switch KSZ8873MLL from Micrel. Port 1 and 2 are connected to magnetics and RJ-45 receptacles. Port 3 is connected to STM32 in PHY-mode using MII.

After connecting my board to PC and changing some lines to adjust to my board, I had no data received. So I changed some bits in MAC and DMA configuration:

Enabled  MAC ETH_RECEIVEALL
Disabled ETH_DROPTCPIPCHECKSUMERRORFRAME
Disabled ETH_RECEIVESTOREFORWARD

But all packets received were missing its 11 first bytes (destination address and 5 bytes of source address). The first byte received is always the 6th byte of source address. Also, in the DMA description structure, the lenght reflect these missing bytes. And some bits inside the frame are corrupted too.

Using an oscilloscope and logic analyser I've checked the MII bus, but all frames seem to be alright. The signal integrity also seems to be ok. Wireshark confirmed the data.

I can send all files, images, block diagrams, schematics and pcb. Also, I can set up a TeamViewer session to debug and see the osciloscope.

Thanks,

Isaque

Outcomes