2021-06-14 04:25 AM
Hai everyone ....,
I am new to touchGFX, I have a STM32F746IGT based waveshare development board and 7 Inch display (800X480 Pixels) SDRAM with 16bit data bus from Micron,QSPI flash.
I firstly try to configure LTDC to display a image on LCD from flash i got success so means i am able to configure LTDC ok.
Then iniatlize SDARM i just give LTDC frame start address as 0xD0000000. Configure TouchGFX and generated code. But it not workout.
please let me know how to debug where is my mistake?
My doubt in SDRAM .
how to check SDRAM initialize working or not , How change image data flash to SDRAM?
Image data from flash just is i use:
pLayerCfg.FBStartAdress = (uint32_t)& image_data_Hello_World;
Thanks & Regards
M.Govind
2021-06-14 07:34 AM
SDRAM check is simple. comment out RTOS start and
2021-06-15 11:34 AM
Hai...<
Thanks for replay......,
Yes...., It's work TouchGFX, But if one switch OFF and ON the controller again display showing some color's.
go to .ioc file and change LTDC --> Layer Setting --> color frame buffer start address : 0xD0000000, change to 0xC0000000,(this time display show Whit color) and again change 0xD0000000 or this all done in main.c file " pLayerCfg.FBStartAdress = 0xD0000000;" (Change run the code and make some changes and run the code after some attempts it will work) some thing do like this
LTDC_LayerCfgTypeDef pLayerCfg = {0};
/* USER CODE BEGIN LTDC_Init 1 */
/* USER CODE END LTDC_Init 1 */
hltdc.Instance = LTDC;
hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
hltdc.Init.HorizontalSync = 19;
hltdc.Init.VerticalSync = 2;
hltdc.Init.AccumulatedHBP = 159;
hltdc.Init.AccumulatedVBP = 22;
hltdc.Init.AccumulatedActiveW = 1183;
hltdc.Init.AccumulatedActiveH = 622;
hltdc.Init.TotalWidth = 1343;
hltdc.Init.TotalHeigh = 634;
hltdc.Init.Backcolor.Blue = 0;
hltdc.Init.Backcolor.Green = 0;
hltdc.Init.Backcolor.Red = 0;
if (HAL_LTDC_Init(&hltdc) != HAL_OK)
{
Error_Handler();
}
pLayerCfg.WindowX0 = 0;
pLayerCfg.WindowX1 = 1024;
pLayerCfg.WindowY0 = 0;
pLayerCfg.WindowY1 = 600;
pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
pLayerCfg.Alpha = 255;
pLayerCfg.Alpha0 = 0;
pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
pLayerCfg.FBStartAdress = 0xD0000000;
pLayerCfg.ImageWidth = 1024;
pLayerCfg.ImageHeight = 600;
pLayerCfg.Backcolor.Blue = 0;
pLayerCfg.Backcolor.Green = 0;
pLayerCfg.Backcolor.Red = 0;
if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
{
Error_Handler();
}
switch OFF the controller again start from first.
Why some time it will work some time not work,
Where i need check? where i am make mistakes?
Please let me know.
Thanks
M.Govind
2021-06-15 10:35 PM
Display IC have some selftest commands and maybe when init sequence is bad show selftest and with this setup all LTDC is ignored, too LTDC address is overwrited with TouchGFX HAL then must be setup properly on two places .