4.STM32 MCUs in GUI context
4.STM32 MCUs in GUI context
2
3
ARMED
5
STM32 Chrom-ART™ Accelerator
• DMA2D
• Mem-to-mem DMA transfer with programmable rectangle area
• Alpha-Blender
• per-object alpha
• per-pixel alpha
a
• Pixel Format convertor
• Input/output: ARGB8888 / RGB888 / RGB565 / ARGB1555 / ARGB4444
• Input-only: A4 /A8 alpha bitmap for glyphs, L8 for 256 colors CLUT
• YCbCr support for higher motion JPEG frame rate
7
HW JPEG Accelerator
• HW JPEG accelerator
• Fully hardware JPEG compression and decompression
• Supporting Motion JPEG videos (MJPEG)
• Saving CPU load for MJPEG processing
• Enhancing branding and user experience Frame
Rate 20 fps*
• Branding animations at startup
• End-product embedded tutorials 8 fps*
x2.50
faster
8
Chrom-GRC™
• Chrom-GRC™
• Graphical Resources Cutter for non square displays, fully configurable
• Works transparently as an Memory Management Unit with any memory of the system
• ➔ Saving up to 20% of RAM needs
For 400x400 round display
@16bpp: 250kBytes (vs.312kBytes)
@24bpp: 372kBytes (vs.469kBytes)
Saved Memory
9
Rendering process split
10
Graphic sub-system overview
ARMED
MCU DISPLAY
Display Timing
Display Controller Controller
Controller Source Driver Pixel values
Frame
Buffer
Frame (GRAM)
Buffer
Gate Driver
(GRAM)
TFT/OLED Name
RGB444
R
4-bit
G
4-bit
B
4-bit
Size
12bpp
Continuously refreshed
from the GRAM @ 60Hz RGB565 5-bit 6-bit 5-bit 16bpp
Backlight
Controller
14
MIPI-DSI host
TFT
GRAM
Ctrl.
15
STM32 supports all main display interfaces
• Intel 8080 and Motorola 6800 LCD interfaces for small resolution
STM32 Display
F
Chrom Frame M
-ART buffer 1 C Frame
buffer 2
• TFT controller for medium resolutions (up to XGA) and new generation MIP low power displays
STM32 STM32
Frame L External SDRAM L
T F
Chrom buffer 1 Display Chrom T
D M Display
-ART Frame Frame -ART D
Frame C C
buffer 1 buffer 2 C
buffer 2
16
STM32 supports all main display interfaces
• MIPI-DSI interface for medium resolutions, high pixel density GUI, mainly consumer today
STM32
L Display
Frame STM32
D F D
Chrom buffer 1 T Frame
S Display Chrom M S
-ART D -ART buffer 1 Frame
Frame I C I
C buffer 2
buffer 2
STM32
External SDRAM L
F D
Chrom T
M -ART
S Display
Frame Frame D
C I
buffer 1 buffer 2 C
17
STM32 supports all main display interfaces
STM32H7Ax/B3
Frame L
OctoSPI
External buffer 1 T Display
Chrom
Flash -ART D
(if needed) Frame C
buffer 2
18
Questions break time
20
STM32 ecosystem
STM32 Ecosystem
Configuration Tools
Drivers Web site
Evaluation boards Development &
RTOS Product selectors
Debug and Debugging Tools
Stacks and Communities & Social
Programming Probes Program & Monitoring
Application Bricks Media
Tools
22
HW Development Tools
Flexible Key feature Full feature Functionality From full evaluation to open
prototyping prototyping evaluation add-on hardware
www.st.com/stm32nucleo www.st.com/stm32discovery www.st.com/stm32evaltools www.st.com/x-nucleo
All Families 23
SW Development Tools
STM32CubeProgrammer
STM32CubeMX IDEs
STM32CubeMonitor
Configure & Generate Code Compile and Debug Program & Monitor
24
TouchGFX ecosystem integration
Developing with TouchGFX
Enabling TouchGFX involves
• UI Application development
• Creating the User Interface including setup of the graphical elements, handling user
events, communicating with the non-UI part of the system.
TouchGFX Designer main purpose
• TouchGFX AL development
• Build the software layer that connects the TouchGFX application with the hardware.
• BSP is provided by ST but only for DevKits peripherals (e.g. external SDRAM, Display)
TouchGFX Designer also provides it but only for ST development kits
CubeMX with TouchGFX plugin guide the customer in this task
26
TouchGFX in STM32 Ecosystem
27
Developing with TouchGFX
• Two use cases, two starting points
• UC-A. Prototyping / Proof-of-Concept on STM32 Display Kits
+
28
Developing with TouchGFX
• UC-A : Prototyping on STM32 Display Kits
• Use TouchGFX Designer to start your project
• Select premade Application Templates (AT) for the specific CubeMX
Application Project
STM32 Display Kit Templates (.ioc)
• Develop UI, build, flash from TouchGFX Designer,
• Modify your hardware setup using CubeMX
opening the AT associated .IOC CubeMX project file
• Change the IDE among CubeIDE, IAR or Keil gcc
toolchain
• Modify/Build/Flash application using selected toolchain
30
Enable Plugin in CubeMX
31
Configure Plugin in CubeMX
32
Generated code
• HAL (read-only)
• Mandatory set of classes
• Contains virtual members needed by the Library
• TouchGFXGeneratedHAL (read-only)
• GeneratedHAL is an HAL customization based on
TouchGFX Generator settings (e.g frame buffer size)
33
User intervention
• TouchGFXHAL (user-defined)
• Inherits from TouchGFXGeneratedHAL
• Generated once by CubeMX (skeleton)
• Need to be adapted to custom board (datasheet)
• e.g. a driver for transferring pixels from a
framebuffer over SPI, PWM for LCD backlight.
• Can even override/ignore the TouchGFXGeneratedHAL
code
34
TouchGFX Port for Specific Hardware
User Application
Text
Images, Fonts
Code
Layout
TouchGFX Config
TouchGFX Core
Widgets
Rendering
Event handling
Timing
FreeRTOS ST Devkit ST Devkit
OS TouchGFX HAL Drivers
Other OS Wrapper Generated HAL
Custom board
User Drivers
No OS HAL
36
ST Development Kit
User Application
Text
Images, Fonts
Code
Layout
TouchGFX Config
TouchGFX Core
Widgets
Rendering
Event handling
Timing
OS TouchGFX
ST Devkit ST Devkit
FreeRTOS Wrapper Generated HAL HAL Drivers
37
Custom Design
User Application
Text
Images, Fonts
Code
Layout
TouchGFX Config
TouchGFX Core
Widgets
Rendering
Event handling
Timing
OS TouchGFX
Custom board
Other OS Wrapper Generated HAL User Drivers
HAL
38
Summary
39
Doc – Basic concepts
40
Doc – TouchGFX Plugin
41
Doc – Abstraction Layer
42
Doc – Board bring-up
43
Doc – Rendering flow example
44
Extended Graphics ECO System
• TouchGFX Implementer Services
• Coupon support
• Porting
• Application Development
• Onsite Development
• Training
• Hardware Development
• Full Turnkey Solutions
• Electronic Manufacturing
• User experience
• Graphical Art-work
• .
Questions ?
© STMicroelectronics - All rights reserved.
The STMicroelectronics corporate logo is a registered trademark of the STMicroelectronics
group of companies. All other names are the property of their respective owners.