Poor Ethernet performance on a Seeed Arch Max board
Posted: Wed Jan 14, 2015 9:55 pm
I am having performance problems with Ethernet on a Seeed Arch Max board.
https://developer.mbed.org/platforms/Seeed-Arch-Max/
I defined a new board based on a STM32F407VGT6 with a DP83848 PHY. I am a real novice at this level and was amazed when the simple web server from demos worked the first time.
I then tried sending to the board from iperf on a PC and the result was very slow. I used Wireshark to look at the packets and found short bursts with 300 ms gaps. The problem seems to be retransmissions and dup acks. The 300 ms is the timeout before retransmission.
The same test with an Olimex STM32-E407 runs at 95 Mbit/sec. The Arch Max runs at 200 Kbits/sec.
I then did a search and found this demo for a STM32F4 Discovery.
https://github.com/Nomados/STM32F4Discovery-ethernet-PHY-DP83848-demo-ChibiOS
This demo also uses a STM32F407VGT6 with a DP83848 PHY so I tried it. It has the same problem when running on the Seeed Arch Max. The web server works but iperf is slow and Wireshark shows the same problem. The connection to the PHY on the Arch Max is identical to that used by Nomados.
I found other lwip users that had the same problem with retransmissions and dup acks. Often this is either a PHY problem or a driver problem.
Any suggestions where I should look? The PHY on the Seeed Arch Max is actually a DP83848J. Also the Seeed Arch Max is just released so it may be a hardware problem since I can't find any Ethernet examples for the Arch Max.
So any suggestions on how to debug this problem would be appreciated.
The good news is that I am learning a lot about lwip and Ethernet on STM32F4.
https://developer.mbed.org/platforms/Seeed-Arch-Max/
I defined a new board based on a STM32F407VGT6 with a DP83848 PHY. I am a real novice at this level and was amazed when the simple web server from demos worked the first time.
I then tried sending to the board from iperf on a PC and the result was very slow. I used Wireshark to look at the packets and found short bursts with 300 ms gaps. The problem seems to be retransmissions and dup acks. The 300 ms is the timeout before retransmission.
The same test with an Olimex STM32-E407 runs at 95 Mbit/sec. The Arch Max runs at 200 Kbits/sec.
I then did a search and found this demo for a STM32F4 Discovery.
https://github.com/Nomados/STM32F4Discovery-ethernet-PHY-DP83848-demo-ChibiOS
This demo also uses a STM32F407VGT6 with a DP83848 PHY so I tried it. It has the same problem when running on the Seeed Arch Max. The web server works but iperf is slow and Wireshark shows the same problem. The connection to the PHY on the Arch Max is identical to that used by Nomados.
I found other lwip users that had the same problem with retransmissions and dup acks. Often this is either a PHY problem or a driver problem.
Any suggestions where I should look? The PHY on the Seeed Arch Max is actually a DP83848J. Also the Seeed Arch Max is just released so it may be a hardware problem since I can't find any Ethernet examples for the Arch Max.
So any suggestions on how to debug this problem would be appreciated.
The good news is that I am learning a lot about lwip and Ethernet on STM32F4.