How to use LTDC layers from CM33 and CA35 simultaneously

Revision as of 13:09, 6 June 2024 by Registered User

1. Article purpose[edit source]

This article aims to specify how to use LTDC 3rd Layer controlled by CM33 while displaying standard HMI on Linux side using Cube Firmware examples.

This article also explains how to configure LTDC 3rd layer (Resolution, Window sizing, Opacity), how to make changes in OPTEE RIF settings from external-dt so that LTDC Layer can be controlled via CM33.

2. Prerequisite[edit source]

To demonstrate the use case, required Hardware and software stack are listed below:

  • The STM32MP257x-EV Board Kit (Along with LVDS Full HD display Panel)
  • The Cube Firmware Package for SMT32MP25xx

3. LTDC 3rd Layer Example Description[edit source]

The goal of this example is to demonstrate CM33 controlled 3rd Layer non-protected while displaying standard HMI on Linux side.

3.1. Steps to configure the 3rd Layer of LTDC[edit source]

  • Read back common registers to determine Panel info (height and width)
  • Configure the 3rd Layer with noReload trigger
  1. Window Sizing (Full Screen and Partial Screen Mode) controlled by "FULLSCREEN" Preprocessor
  2. Opacity (controlled by constA : set in such a way HMI will be visible)
  3. Input Pixel Format Input Pixel Format will be RGB565
  • Set Immediate reload type (reload)

3.2. LTDC 3rd Layer Display Content[edit source]

- Splash screen will be displayed with content (Example description, and ST logo) - Splash screen will be disappeared after 20 second timeout (SUCCESS)

3.3. Operating Mode[edit source]

After LCD initialization, the LCD layer 3 is configured as following:

  • FULLSCREEN Mode (with "FULLSCREEN" Preprocessor) layer 3 is configured to display a framebuffer content from DDR with direct

color (RGB565) as pixel format and 1024x600 px size.

LTDC 3rd Layer Framebuffer Content in FULLSCREEN Mode
  • Partial Screen Mode (with no "FULLSCREEN" Preprocessor) Layer 3 is configured to display a framebuffer content from DDR with direct

color (RGB565) as pixel format and 720x480 px size.

LTDC 3rd Layer Framebuffer content in PartialMode

3.4. Display Composition[edit source]

LTDC Layers Display Composition

4. How to run Cube Firmware Example[edit source]

To run the example on EVAL Board setup, perform following steps:

  • Open STM32CubeIDE
  • Build with config: CA35TDCID_m33_ns_sign
  • ssh root@192.168.7.1 'mkdir -p /home/root/LTDC_Display_3rdLayer/lib/firmware'
  • scp the signed firmware LTDC_Display_3rdLayer_CM33_NonSecure_sign.bin to root@192.168.7.1:/home/root/LTDC_Display_3rdLayer/lib/firmware
  • scp the script Firmware/Utilities/scripts/fw_cortex_m33.sh to root@192.168.7.1:/home/root/LTDC_Display_3rdLayer/
  • To run the example on target:

On target shell run: - cd /home/root/LTDC_Display_3rdLayer - ./fw_cortex_m33.sh start

No categories assignedEdit