2025-10-21 11:26 PM - last edited on 2025-10-30 8:03 AM by mƎALLEm
Split from this thread.
Thank you for your previous responses and guidance.
Please confirm this so that we can proceed further based on your feedback
2025-10-24 4:34 AM
@DmitryR wrote:And one more advice. Latest STM32H7 chips have LVDS transmitter inside.
Which models? I couldn't find any reference to LVDS. I only see some support MIPI-DSI, none support LVDS directly. We use an RGB to LVDS conversion chip.
2025-10-24 5:55 AM
Good day @unsigned_char_array
yes, I have meant MIPI-DSI. MIPI-DSI also uses LVDS signaling.
With best regards,
Dmitry
2025-10-26 10:49 AM - edited 2025-10-26 10:50 AM
Test1 is an application created for the STM32H750 development kit.
AP021_cb_test1 is an application created for our custom board, which uses the STM32H750IBT6 MCU.
The development kit uses the STM32H750XBH6 MCU.
Please find the attached images of the .sal file, which are the logic analyzer outputs.
Chn0(D0)- render time
Chn1(D1)- frame rate
render time
frame rate
2025-10-30 7:48 AM
2025-11-03 9:54 AM
Good day Geethat,
once again, what exactly answer are you waiting from me? These timings look pretty good. Did you have considered things that I have written in my previous comment?
With best regards,
Dmitry
2025-11-06 11:10 PM
Hi @DmitryR
There are two cases
In the development board, we tested two applications:
Designer (TouchGFX) Application:
MCU output signal toggles high and low correctly.
Rendering time: 16 ms (perfectly stable).
Customized Application:
MCU signal remains low continuously.
Rendering time: 16 ms, which is also perfectly stable.
Components used in the Development Board:
SDRAM: MT48LC4M32B2B5-6A IT_L TR
QSPI: MT25QL512ABB8ESF-0SIT
Display: MIPI display with RK043FN48H-CT672B IC
In our custom board, we tested the customized application, and the following behavior was observed:
The MCU signal always stays low.
Rendering time observed is 44 ms on the custom board, whereas it is 16 ms on the devkit custom application. I have followed the same procedure while creating the application for my custom board.
Components used in the Custom Board:
SDRAM: IS42S32400J-6TL
QSPI: MT25QL512ABB8ESF-0SIT (same as dev board)
Display: LVDS display using DS90C385AMTX_NOPB DRIVER
In the development board, both applications run at 16 ms rendering time, even when the MCU signal is low for the customized application.
In the custom board, the MCU signal also remains low, but the rendering time increases to 44 ms.
The main hardware differences are the SDRAM and display interface (MIPI vs. LVDS).
Even though we have followed the same procedure in creating the customized application,
Why is the MCU signal always low in customized applications?
Why is the rendering time 44 ms on the custom board, while it is 16 ms on the development board even though we have followed the same procedure as followed in dev kit for creating the application?
A Google Drive link is provided containing the following:
STM32H750_DEVKIT – includes customized and designer applications, schematics of the development board, logic analyzer details.
STM32H750IBT6_CUSTOMIZED_PCB – includes the customized application and schematics of our custom PCB.
https://drive.google.com/drive/folders/1gRN57SEOsggQLu3D-8KF0PUx5QgAT255
Custom PCB custom application test result:
Showing 44ms rendering time and mcu active low.
custom board custom application results
NOTE: To open both the customized and development board application files which are in ".sal" format, please install this application https://support.saleae.com/product/logic-software/sw-download \
Thank you for your time and support, your reply will be very helpful for our further steps.
2025-11-07 1:12 AM
Hello Getthat,
I do not understand what MCU signal stays low and why is it so important. For the rendering time I have already answered: you are using display with a 2,5 times higher resolution that on the kit so the rendering time is higher accordingly.
With best regards,
Dmitry
2025-11-07 3:08 AM - edited 2025-11-07 3:09 AM
@Geethat wrote:Hi @DmitryR
In our custom board, we tested the customized application, and the following behavior was observed:
The MCU signal always stays low.
I have a custom board and I had to implement the MCU signal myself. It wasn't enabled by default.
I don't use an RTOS so I made my own idle loop architecture.
void (*idleTask_p)(void) = nullptr;
void OSWrappers::takeFrameBufferSemaphore()
{
if (fb_sem)
{
if (idleTask_p != nullptr)
{
while (fb_sem)
{
idleTask_p();
}
}
else
{
while (fb_sem);
}
}
fb_sem = 1;
}
void OSWrappers::giveFrameBufferSemaphore()
{
fb_sem = 0;
if (idleTask_p != nullptr)
{
idleTask_p();
}
}
void OSWrappers::tryTakeFrameBufferSemaphore()
{
fb_sem = 1;
if (idleTask_p != nullptr)
{
idleTask_p();
}
}In your idle task you can set MCU_active to false at the start.
int main(void)
{
//..
idleTask_p = mainLoop;
while(1)
{
mainLoop();
MX_TouchGFX_Process();
}
}
static void mainLoop()
{
// set mcu active to false
// do non TouchGFX things here
// set mcu active to true
}
in TouchGFXHAL.cpp, which is used when using FreeRTOS, it is implemented for you:
portBASE_TYPE IdleTaskHook(void* p)
{
if ((int)p) //idle task sched out
{
touchgfx::HAL::getInstance()->setMCUActive(true);
}
else //idle task sched in
{
touchgfx::HAL::getInstance()->setMCUActive(false);
}
return pdTRUE;
}