2025-05-11 10:05 PM
Presently we are using STM32F767ZI for our ongoing projects. Our application demands high speed data transfer rate through ethernet. We are taking the help of UDP for transfer of real time audio data between 2 STM32F767ZI Nucleo Boards. Further we need to increase the speed of Transmission and Reception of this audio data. So, we seek help for the following information among the community members.
1.
Presently, the HAL Drivers are in polling. Can we convert this HAL Drivers to utilize DMA? Would it make any difference in the speed of Tx and Rx.?
2.
How to increase the speed of LwIP Ethernet in STM32F767ZI? With/ Without DMA!
3.
What parameters decide the speed of data transfer in LwIP middleware that is there in the cube IDE?
2025-05-11 10:14 PM
Let me try to help ... but you gave very little details on sw - post your code as full SMT32Cubeide project without debug files and we do not need to resort to glass ball ..
We dropped LwIP and moved to NetX as it already uses DMA, but I remember also Freertos had DMA; are you using any OS?
What speed are you looking for ? where you stand now?
The main bottleneck we found is not in Ethernet MAC controller but in MCU processing power; try to run a flood of syn test and you can easily see that you will not be able to get all packets.
Wireshark acquisition can help to see what happens and where you need to work ...
2025-05-11 10:24 PM
@mbarg.1
The code is as follows. Have posted both the Transmission and Reception code. If you need any more specifics, please let me know.
Thank You
2025-05-11 10:27 PM
@mbarg.1 wrote:but I remember also Freertos had DMA; are you using any OS?
What speed are you looking for ? where you stand now?
I am not using any O.S. It's a simple polling "udp send task" in while(1)/
I need the speed to be atleast 50mbps.
2025-05-11 10:50 PM
DMA by sure can do it with H7 ( we do not have benchmark with F7) as raw interface BUT you will need a lot of work if you do not rely on some library.
With DMA, you can get a stream of packets with minimal sw interventions but then you must have an application capable of processing packets and packet pool - here packet size can be critical.
My approach; do not re-invent the wheel.
Even if some modifications to libraries are recommended if you play the performance vs code portablity and modularity.
Should you decide to use NetX, we can help.
2025-05-11 11:02 PM
@mbarg.1 wrote:Should you decide to use NetX, we can help.
Where should I begin to start working with NetX middleware.?
2025-05-11 11:33 PM
Well, if you have an updated STM32CubeIde, start a new project with NX_UDP_Echo_Server and look at NetXDuoEthIpInstance statistics.
Are you windows or linux?
2025-05-12 2:15 AM
@mbarg.1 wrote:.Are you windows or linux?
Windows.
2025-05-12 2:29 AM
Remember that the "Lw" in LwIP" stands for lightweight: so it is optimised for size - not for speed.