Problem with ethernet bandwidth on custom board with LCD.
Hey,
I'm working on a custom board project .
On board i have:
- TFT-LCD display with 800x480 resolution
- External 16-bit SDRAM for storing two frame buffers
- Ethernet driver LAN8742
- MCU - STM32F767IIT
I managed to run a simple http server with source from ST. Server works pretty well until I turn on LTDC. I tested the connection (IPERF client) with LTDC on and LTDC off. When LTDC is on I get bandwidth around 200kbit/sec. Also what I noticed is that link activity led is constantly blinking with 11.9Hz. When LTDC is off I get bandwidth around 50 Mbit/sec and the led is blinking properly as it should. My first thoughts were that MCU is overloaded. So I measured MCU load and got on average 15% of MCU load. I'm using touchgfx framework which is pretty well optimized for MCU so it uses a very small portion of processor time . Then I tried to lower the frequency for display from 26 MHZ (60HZ refresh rate) to 7MHZ (17HZ refresh rate) and I got bandwidth around 50Mbit/sec and a good working http server without freezing. So I think I have a problem with the overused AHB bus matrix which is shared between ETHERNET DMA and LTDC (ethernet is using internal SRAM and LTDC external SDRAM). Is there any way to test or calculate that so I can be definitely sure that the problem is with hardware design. I'm not very familiar with ethernet so please excuse me if I'm not thinking right.
Any help would be really appreciated.
