Help to fix a TouchGFX custom board project
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2022-07-14 12:19 PM
MCU : STM32H743ZI
STM32CubeIDE 1.10.1
TouchGFX 4.18.1
I created a stm32h743 project with cubeMX and created a simple red screen as in this video https://www.youtube.com/watch?v=SRQD8JMeg_k&t=3034s
I added the fix in this topic https://community.st.com/s/question/0D53W00000j6zuDSAQ/exact-steps-to-configure-touchgfx
I also added in stm32h7xx_it.c :
extern LTDC_HandleTypeDef hltdc;
void LTDC_IRQHandler(void)
{
HAL_LTDC_IRQHandler(&hltdc);
}
But my project isn't working, what can I do to debug it ? Should I add MPU code ?
- Labels:
-
LCD-LTDC
-
STM32H7 Series
-
TouchGFX
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2022-07-14 12:52 PM
I have doubts about something :
In the IOC in TouchGFX, I chose
Framebuffer Strategy : Single Buffer
Buffer Location : By Allocation
BUT in LTDC/layer settings :
Layer 0 - Color Frame Buffer Start Address = 0
Layer 0 - Color Line length = 320
Layer 0 - Color Number of lines = 240
For now I put 0 in address because it is supposed to be allocated right ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2022-07-14 11:44 PM
Hi,
First please change:
- Buffer Location : By Adddress
- Start address: address in memory ex. 0xC0000000
- Layer 0 - Color Frame Buffer Start Address = ex. 0xC0000000
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2022-07-15 06:50 AM
Hi, thanks for the help,
I chose 0x2403E800 as it is the half of D1RAM (I use the other half for my code)
I changed
Buffer Location = By Address
Address = 0x2403E800
Layer 0 - Color Frame Buffer Start Address = 0x2403E800
I now get LTDC Line interrupts but my screen is still dark (it is supposed to display a red screen)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2022-07-15 06:59 AM
Hi,
Please share Your project. What type a display do You have? Do You have write correctly parameters for display?
Best Regards,
Slawek
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2022-07-15 07:06 AM
I also added a MPU region
address = 0x2403E800
size = 256kB
my display is a RK035HQ01
https://www.digimax.it/media_import/DISPLAY/ROCKTECH/TFT%20LCD/RK035HQ01-T/RK035HQ01-T_DS_001.pdf
I think I filled the specs correctly
If you want to check I attached my project to the post
What I set
hltdc.Init.HorizontalSync = 3;
hltdc.Init.VerticalSync = 3;
hltdc.Init.AccumulatedHBP = 46;
hltdc.Init.AccumulatedVBP = 15;
hltdc.Init.AccumulatedActiveW = 366;
hltdc.Init.AccumulatedActiveH = 255;
hltdc.Init.TotalWidth = 374;
hltdc.Init.TotalHeigh = 263;
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2022-07-16 12:04 AM
Hi,
Please send the project in the STM32CUBEIDE.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2022-07-16 09:54 AM
As i reply in dup your linker script is bad if framebuffer by your address
fx_ui\STM32H743ZITX_FLASH.ld
/* Entry Point */
ENTRY(Reset_Handler)
/* Highest address of the user mode stack */
_estack = ORIGIN(RAM_D1) + LENGTH(RAM_D1); /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
_Min_Heap_Size = 0x1000 ; /* required amount of heap */
_Min_Stack_Size = 0x1000 ; /* required amount of stack */
/* Specify the memory areas */
MEMORY
{
FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 2048K
DTCMRAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K
RAM_D1 (xrw) : ORIGIN = 0x24000000, LENGTH = 512K
RAM_D2 (xrw) : ORIGIN = 0x30000000, LENGTH = 288K
RAM_D3 (xrw) : ORIGIN = 0x38000000, LENGTH = 64K
ITCMRAM (xrw) : ORIGIN = 0x00000000, LENGTH = 64K
}
For custom LCD starting steps are :
- Open IDE workspace and start new project
- Select your MCU and config it in opened MX wizard without TouchGFX
- Config CLOCK and LTDC precise
- Generate and build code
- In LTDC layer config set background color and test LCD ...
- After all work add TouchGFX to project.