STM32 Embedded 5” display is all-in-one complete and open-platform solution being able to independently handle the visual layer of devices with the need for high computing performance. The 5-inch STM32 Embedded Displays series are industrial-quality LCD-TFT solutions based on the STM32U599NJH6Q or STM32U5A9NJH6Q microcontroller. It has been designed in a way that allows to meet most of the hardware and programming challenges faced by engineers, including access to all interfaces.
The benchmark uses a screen-sized partial buffer and copies a rendered area to a frame buffer with DMA2D. No VSYNC is used, therfore some tearing is visible in some test cases.
You can purchase the 5-inch Riverdi STM32 Embedded Displays from several sources:
The example is configured for 16-bit RGB565 color format, which is the native color format of the panel. The project uses LVGL's LV_DISPLAY_RENDER_MODE_PARTIAL
mode with two 60 line (1/10th of the height of the screen) buffers. A single buffer requires 120kB memory.
If more memory is needed for the application, a single buffer may be used, or the size of the buffer can be reduced. There is no strict rule for the optimum buffer size, as it depends on many factors (screen size, screen content, processor speed, RAM speed, type of the LCD interface). In practice a 1/10th screen size buffer is a good compromise between performance and memory use, but this is an area for potential optimization, depending on the application.
The buffer configuration can be found in the file lv_port_riverdi_stm32u5/Core/Src/lvgl_port_display.c.
TODO: update benchmark video and certificate links
- MCU STM32U599NJH6Q/STM32U5A9NJH6Q (Cotex-M33, 160MHz)
- RAM 2.5MB
- Flash 4MB
- GPU Neo-Chrom (GPU2D), Chrom-Art (DMA2D), Chrom-GRC (GFXMMU)
- Resolution 800x480
- Display size 5.0”
- Color depth 24bit
- Technology IPS
- Brightness 850 nits
- DPI 188 px/inch
- Touch pad Projected Capacitive
- RS485, RS232
- Expansion connector (40 GPIOs to access 2x I2C, 1x UART, 1x USART, 1x SPI, 1x USB, 7x PWMs, 2x DACs, 2x ADCs)
- 2x CAN FD
- RiBUS connector
- USB
- Haptic feedback driver output (DRV2605L)
To be able to flash and debug your program you will need to purchase an SWD debug probe which supports the ARM Cortex-M7 core, e.g the STMicro ST-Link V2/V3 or the Segger J-Link.
- Connect a 6-48V power supply to the POWER header on the board using the supplied cable. The board draws about 0.28A at 9V.
- Connect a debug probe to the SWD header using the supplied cable.
- Install STM32 CubeIDE.
- Clone the project:
git clone --recursive https://github.com/lvgl/lv_port_riverdi_stm32u5
- Open STM32CubeIDE and import project:
File => Open Projects from File System... => Directory => Select the "STM32CubeIde" folder => Finish
- Build the project (for the best performance use Release configuration with -O2 flag):
Project => Build Project
- Click the Run button to flash the project
- After building the project click the Debug button to flash the project. You will need to select the correct debug probe for the first run.
This repository supports all configuration of 5-inch Riverdi STM32 Embedded Displays:
If you find any issues with the development board feel free to open an Issue in this repository. For LVGL related issues (features, bugs, etc) please use the main lvgl repository.
If you found a bug and found a solution too please send a Pull request. If you are new to Pull requests refer to Our Guide to learn the basics.