AnsweredAssumed Answered

LTDC clock problem

Question asked by el_khadiri.yassine on Oct 22, 2015
Hello,

I'm targeting the STM32F429IIT6.
I have a problem with the LTDC driver clock.
I'm trying to drive this 800x480 screen at 30 fps.
In my system clock configuration, I have something like this :

PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LTDC;
PeriphClkInitStruct.PLLSAI.PLLSAIN = 120;
PeriphClkInitStruct.PLLSAI.PLLSAIR = 4;
PeriphClkInitStruct.PLLSAIDivR = RCC_PLLSAIDIVR_4;
HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);
 
HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);

With this I get a display with a visible scan line like shown here
(120/4/4 = 7.5 MHz for the pixel clock).
According to the datasheet, the maximum pixel clock supported is 50MHz (from which we are quite far).

As soon as I try to bring the pixel clock a little higher :

PeriphClkInitStruct.PLLSAI.PLLSAIR = 2;
PeriphClkInitStruct.PLLSAIDivR = RCC_PLLSAIDIVR_4;

or :

PeriphClkInitStruct.PLLSAI.PLLSAIR = 2;
PeriphClkInitStruct.PLLSAIDivR = RCC_PLLSAIDIVR_2;

I get this.

Am I doing something horribly wrong?

Outcomes