cancel
Showing results for 
Search instead for 
Did you mean: 

Problem with LTDC and FMC with external SDRAM

mark_dubo
Associate II

Hi,

I am using an STM32H743 with external SDRAM connected using the FMC interface, and HMDI transmitter connected using the LTDC interface. The frame buffer for the LTDC is located in external SDRAM.

The problem I am having is that when writing to external SDRAM, every so often the screen connected over HDMI will go blank for a second or 2 before displaying the normal image again.

The problem happens even if I am writing to another area in SDRAM (i.e. not the framebuffer).

I am assuming I have something set incorrectly, but do not know what it could be,

Has anyone had a similar experience, or anyone been able to a similar setup working?

Thanks

Mark

6 REPLIES 6
Mon2
Senior III

Hi.

a) what is the length and quality of your HDMI cable?

b) are you applying the use DMA channels where possible?

c) is this a custom PCB or using ST kits? Respectively, a clean and multilayer design with impedance controlled traces?

How wide is your SDRAM memory interface?

What is your screen resolution and update rate?

What speed are you clocking the LTDC?

Are you using DSI for HDMI?​

Driven HDMI and DVI panels with the F7s​

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
mark_dubo
Associate II

Hi Guys, thanks for the replies.

The HMDI cable is 1.8m and fairly good quality.

We have tried using DMA and simple memcpy to write to external SDRAM.

This is a custom PCB. 4-layer board with care taken routing between MCU and SDRAM. This is a REV02 of the PCB. The REV01 PCB used an F7 and it worked fine.

The SDRAM memory interface is 32-bit wide and we are running at 100MHz. We are using an AS4C8M32S-6TIN.

The image resolution we are sending is 640 x 480 (during testing from internal RAM we used a smaller image). We have tried various update rates - though the issue occurs even when we do not write to the framebuffer, but another area in external SDRAM.

We are not using DSI. We are interfacing with an  ADV7513 HDMI transmitter, so using LTDC to send the RGB data to the transmitter.

Thanks

The screen going blank for several seconds is a function of the panel detecting an issue with the sync/timing, the issue itself might be somewhat instantaneous. Most of the TV screens I've dealt with have a limited tolerance for non standard sync. Several of the monitors have an Info Menu which will actually display the Horizontal and Vertical rates.

640x480 should be relatively pedestrian (31.5 MHz) compared to 800x600 or 1024x768

I would suggest to use a scope or analyzer to determine the exact timing, and the nature of the glitching, and then present that to ST FAE's familiar with the H7. There are newer steppings of the core, and you will need to discuss those and the errata they address directly with ST.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
mark_dubo
Associate II

Another detail I should have added - We also see the problem when we set the framebuffer to internal RAM. When we write to external SDRAM we still get the problem even though the LTDC is not accessing external SDRAM.

Hi, Clive!

How can I use DSI for HDMI?8)