529 views
in System Integration by

Hello,
I have a display problem when using double buffering. I get flickering effects like in the attached video. If I use the offset buffer I don't have such problems. It seems to me that this might be a problem with the synchronization. 

https://ask.embedded-wizard.de/?qa=blob&qa_blobid=6102480097685914325

I played around a bit with the LTDC settings(timings & clock), but could not get any improvement.

The used custom board is based on a STM32F769I-Eval but uses the display NHD5.0-800480TF-ATXL#-CTP instead.

The PCPolarity and DEPolarity do not seem to have any influence on the display.
It's also mentioned in the datasheet that the display works in DE mode and is therefore dependent on VSync and HSync.

  hLtdcHandler.Instance = LTDC;
  hLtdcHandler.Init.HSPolarity = LTDC_HSPOLARITY_AL;
  hLtdcHandler.Init.VSPolarity = LTDC_VSPOLARITY_AL;
  hLtdcHandler.Init.DEPolarity = LTDC_DEPOLARITY_AH;
  hLtdcHandler.Init.PCPolarity = LTDC_PCPOLARITY_IIPC;
  hLtdcHandler.Init.HorizontalSync = 1;
  hLtdcHandler.Init.VerticalSync = 2;
  hLtdcHandler.Init.AccumulatedHBP = 89;
  hLtdcHandler.Init.AccumulatedVBP = 34;
  hLtdcHandler.Init.AccumulatedActiveW = 889;
  hLtdcHandler.Init.AccumulatedActiveH = 514;
  hLtdcHandler.Init.TotalWidth = 929;
  hLtdcHandler.Init.TotalHeigh = 527;
  hLtdcHandler.Init.Backcolor.Blue = 0;
  hLtdcHandler.Init.Backcolor.Green = 0;
  hLtdcHandler.Init.Backcolor.Red = 0;

Does anyone have any advice?

 

Kind regards

Alex

1 Answer

0 votes
by

Hi Alex,

based on the provided video it's difficult to analyse the reason for the flickering.

Just a few questions: 

What do you mean with "if I use the offset buffer..."? 

Which version of Embedded Wizard are you using? If it is version 9.30 - please post your ewconfig.h file.

The STM32F769 Evalboard (and the software within our Build Environment) is using a display with DSI - which is completely different than your display that is connected via RGB. Did you adapt the file ew_bsp_display.c that is provided within the Build Environment for STM32F769 Evalboard - or did you use a template that is already based on LTDC - e.g. the Build Environment for STM32F756 Evalboard?

Best regards,

Manfred.

by
Hi Manfred,

 

Sorry I meant if I only use the offset buffer everything works fun. But I don't get the doublebuffering working.

I'm using version 9.20 of Embedded Wizard.

You are right, because of the DSI I used the STM32746G template. I modified it to run with our Hardware. In most cases it works very  well. My Build Environment is Keil ARM.

 

Best regards

Alex
by

Hi Alex,

o.k. I assume you are using "offscreen buffer" and not "offset buffer". But the goal is to work with the setting EW_USE_DOUBLE_BUFFER - correct?

In order to verify that double buffering is working, let me recommend to use this simple test application.

It contains a vertical bar that is moving right/left and a text displaying the current frames per second.

If everything works correctly, the bar should move without tearing (without any horizontal shift or steps) and the FPS should have the expected value, e.g. 60 fps.

Please let me know the result...

Best regards,

Manfred.

 

Embedded Wizard Website | Privacy Policy | Imprint

...