How to write a low resolution and slow interface display panel driver

Revision as of 12:34, 22 July 2024 by Registered User (→‎Article purpose)
Applicable for STM32MP13x lines, STM32MP15x lines, STM32MP25x lines


1. Article purpose[edit source]

Low resolution display panels can be connected to STM32 boards using low speed interfaces like I2C, SPI or FMC. Some famous of this category of display panels are:

  • the SSD1306 monochrome OLED panels,
  • the GC9A01 round 16-bit color panels,
  • the 1602 monochrome 2 text lines panels.

The purpose of this article is to:

  • briefly describe the main characteristics of the low resolution panels,
  • present some hardware attention points to consider before writing a panel software driver,
  • introduce the Linux® kernel frameworks used to control these display panels,
  • describe how to write, test and debug your own display panel driver,
  • demonstrate simple use cases based on these display panels,
  • suggest alternatives for driving these display panels.

{{Info | Before you continue reading this article, you might be interested in the following articles: DRM KMS overview, How to write a display panel or bridge driver, I2C overview, [[SPI overview].}}

2. Prerequisites and preparations[edit source]

What is required to complete the following steps or to achieve the goal?

3. Hardware considerations[edit source]

4. Linux Kernel[edit source]

4.1. Architecture[edit source]

4.2. Software frameworks and drivers[edit source]

4.3. Tests and Debug[edit source]

4.4. Performance considerations[edit source]

5. Use case examples[edit source]

5.1. System monitoring[edit source]

5.2. Video playbacks[edit source]

5.3. Graphics with GPU[edit source]

6. Backlight[edit source]

7. U-boot[edit source]

8. Procedure 1[edit source]

Explain the outcome of this procedure. In the table below, list each high-level step which will be documented in detail below the table.

Step What to do Notes
1
2
3

8.1. Step-by-step instructions[edit source]

  1. Do step 1
  2. Do step 2
    1. Do substep 2.1
  3. Do step 3

9. Procedure 2[edit source]

Explain the outcome of this procedure. In the table below, list each high-level step which will be documented in detail below the table.

Step What to do Notes
1
2
3

9.1. Step-by-step instructions[edit source]

  1. Do step 1
  2. Do step 2
    1. Do substep 2.1
  3. Do step 3

10. Related pages[edit source]

  • Link to related page 1
  • Link to related page 2


11. References[edit source]