STM32H743 LTDC with no framebuffer
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-11-02 9:09 AM
Is it possible to use STM32H743's LTDC with no frambuffer and fill its FIFO "on the fly"?
Solved! Go to Solution.
- Labels:
-
LCD-LTDC
-
STM32H7 series
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-11-30 7:26 AM
Generating custom image with no fullframe static RAM buffer
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-11-30 7:27 AM
set 72 to 104 and when you dont see your memory isnt ready and work, Mayby you choose memory not accesible on bus with LTDC or init is bad.
Too MPU have role...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-11-30 7:30 AM
custom image over fullframe? You will need reload it on dotclock speed , mybe this idea isnt good.
Second q is from where is your image.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-11-30 7:50 AM
Yes, moving buffer from SRAM1 to AXI-SRAM helped, thank you!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-11-30 9:31 AM
However, manipulating window position on-the-fly doesnt work
void LTDC_IRQHandler(void)
{
static unsigned int line_num = 72;
LED1_GPIO_Port->ODR |=LED1_Pin;
line_num +=10;
if (line_num>=672)
line_num = 72;
__HAL_LTDC_CLEAR_FLAG(&hltdc, LTDC_FLAG_LI);
__HAL_LTDC_DISABLE_IT(&hltdc, LTDC_IT_LI);
LTDC->LIPCR = line_num;
__HAL_LTDC_ENABLE_IT(&hltdc, LTDC_IT_LI);
HAL_LTDC_SetWindowPosition(&hltdc, 10, line_num, 0);
LED1_GPIO_Port->ODR &=~LED1_Pin;
}
When I set a breakpoint in interrupt code works as designed - every interrupt moving window 10 lines down. But when no breakpoint is active - blank screen.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-11-30 9:37 AM
HAL_LTDC_SetWindowPosition(&hltdc, 10, line_num, 0);
??? and as i write i dont understand your idea
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-12-01 12:21 AM
Ok mistake in code,
HAL_LTDC_SetWindowPosition(&hltdc, 10, line_num-9, 0);
but idea is the same. Every 10th line I set window position (buffer output) to line position+1 (buffer size changed to 10 lines).
I wanted to see if window position will update immediately or on the next frame. There is a posibility Im not getting whole mechanism right
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-12-01 3:01 AM
Try inspire here
void TouchGFXGeneratedHAL::setTFTFrameBuffer(uint16_t* adr)
{
LTDC_Layer1->CFBAR = (uint32_t)adr;
/* Reload immediate */
LTDC->SRCR = (uint32_t)LTDC_SRCR_IMR;
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-12-01 3:23 AM
Its not gonna work, buffer addres is still same. But window position on the screen should be moved down
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-12-01 3:50 AM
Ahh pls this is example you need change CFBAR to line management and use IMR ...
