43. LCD-TFT display controller (LTDC)

43.1 LTDC introduction

The LTDC (liquid crystal display - thin film transistor) display controller provides a parallel digital RGB (Red, Green, Blue) and signals for horizontal, vertical synchronization, pixel clock and data enable as output to interface directly to a variety of LCD-TFT panels.

43.2 LTDC main features

Note: The above mentioned FourCC pixel formats are described at www.fourcc.org .

43.3 LTDC functional description

43.3.1 LTDC block diagram

Figure 444. LTDC block diagram

Figure 444. LTDC block diagram. The diagram shows the internal architecture of the LTDC. On the left, a 64-bit AXI bus connects to two AXI read blocks, which are followed by FIFOs. These lead into two parallel pixel pipes, 'Pixel pipe layer 1' and 'Pixel pipe layer 2'. Each pipe consists of 'Input and crop', 'Pixel format', 'YUV planar', 'YUV to RGB', 'CLUT', and 'Trans. keying' blocks. The outputs of these pipes are combined in a 'Window crop and Fore and alpha blend' block, which also receives a 'Background color'. The combined signal then passes through 'Gam-ma', 'RGB to YUV 422', 'Dither', and 'OUT SYNC and POL' blocks. The 'OUT SYNC and POL' block generates LCD signals: LCD_R[7:0], LCD_G[7:0], and LCD_B[7:0]. Below the pixel pipes is a 'Config and status registers APB slave' block connected to a 32-bit APB bus. This block is controlled by signals like ltde_pclk, ltde_lo_it, ltde_lo_err_it, ltde_up_it, ltde_up_err_it, ltde_lo_li, and ltde_up_li. To the right of the output pipe is a 'CRC HASH' block and an 'Output timing generator' which produces LCD_CLK, LCD_VSYNC, LCD_HSYNC, and LCD_DE signals. The diagram is labeled MSV71164V2 at the bottom right.
Figure 444. LTDC block diagram. The diagram shows the internal architecture of the LTDC. On the left, a 64-bit AXI bus connects to two AXI read blocks, which are followed by FIFOs. These lead into two parallel pixel pipes, 'Pixel pipe layer 1' and 'Pixel pipe layer 2'. Each pipe consists of 'Input and crop', 'Pixel format', 'YUV planar', 'YUV to RGB', 'CLUT', and 'Trans. keying' blocks. The outputs of these pipes are combined in a 'Window crop and Fore and alpha blend' block, which also receives a 'Background color'. The combined signal then passes through 'Gam-ma', 'RGB to YUV 422', 'Dither', and 'OUT SYNC and POL' blocks. The 'OUT SYNC and POL' block generates LCD signals: LCD_R[7:0], LCD_G[7:0], and LCD_B[7:0]. Below the pixel pipes is a 'Config and status registers APB slave' block connected to a 32-bit APB bus. This block is controlled by signals like ltde_pclk, ltde_lo_it, ltde_lo_err_it, ltde_up_it, ltde_up_err_it, ltde_lo_li, and ltde_up_li. To the right of the output pipe is a 'CRC HASH' block and an 'Output timing generator' which produces LCD_CLK, LCD_VSYNC, LCD_HSYNC, and LCD_DE signals. The diagram is labeled MSV71164V2 at the bottom right.

43.3.2 LTDC pins and internal signals

Table 380. LTDC pins

Pin namePin typeDescription
LCD_CLKOutputClock output
LCD_HSYNCHorizontal synchronization
LCD_VSYNCVertical synchronization
LCD_DENot data enable
LCD_R[7:0]8-bit Red data (or U/V component, if output is YUV422)
LCD_G[7:0]8-bit Green data (or Y component if output is YUV422)
LCD_B[7:0]8-bit Blue data

The LTDC pins must be configured by the user application. The unused pins can be used for other purposes.

Using less pins than the default 24 bpp

The LTDC outputs the pixels on 24 pins by default (RGB888). The user can however connect the display panel using less wires, for instance 16 wires (if RGB565) or 18 wires (RGB666). If so, R (resp. G, B) wires must be connected to the MSB of the LTDC R (resp. G, B) output pins (see Section 43.3.2 ).

Example: LTDC interfacing with a RGB565 16-bit display panel. Display panel R[4:0], G[5:0] and B[4:0] wires and input pins must be connected to LTDC_R[7:3], LCD_G[7:2], and LCD_B[7:3] output pins.

The following table shows how the LTDC is connected.

Table 381. LTDC trigger interconnections

Trigger nameDirectionTrigger source/destination
ltdc_lo_liOutputhpdma1_trigsel[20]
gpdma1_trigsel[20]
ltdc_up_liOutputhpdma1_trigsel[110]
gpdma1_trigsel[110]

43.3.3 LTDC reset and clocks

The LTDC uses the following clock domains:

Note: For normal operation, all clocks must be provided to allow clock domain crossing for read and write operations.

The following table lists the clock domains used to store the register values.

Table 382. Clock domain for each register

LTDC registerClock domain
LTDC_SSCRPixel clock
LTDC_BPCRAXI + pixel clock
LTDC_AWCR
LTDC_TWCR
LTDC_GCRAPB clock
LTDC_SRCRPixel clock
LTDC_GCCR
LTDC_BCCRAPB clock
LTDC_IER
LTDC_ISR
LTDC_ICR

Table 382. Clock domain for each register (continued)

LTDC registerClock domain
LTDC_LIPCRPixel clock
LTDC_CPSR
LTDC_CDSR
LTDC_EDCR
LTDC_IER2APB clock
LTDC_ISR2
LTDC_ICR2
LTDC_LIPCR2Pixel clock
LTDC_ECRCR
LTDC_CRCR
LTDC_FUTRPixel clock
LTDC_LxC0RAPB clock
LTDC_LxC1R
LTDC_LxRCR
LTDC_LxC RAXI + pixel clock
LTDC_LxWHP CRPixel clock
LTDC_LxWVPC R
LTDC_LxC KCR
LTDC_LxPFC R
LTDC_LxCAC R
LTDC_LxDCCR
LTDC_LxBFC R
LTDC_LxBLC RAXI clock
LTDC_LxPC RAXI + pixel clock
LTDC_LxC FBAR
LTDC_LxC FBLR
LTDC_LxC FBLNR
LTDC_L1AFBA0R
LTDC_L1AFBA1R
LTDC_L1AFBLR
LTDC_L1AFBLNR

Table 382. Clock domain for each register (continued)

LTDC registerClock domain
LTDC_LxCLUTWRPixel clock
LTDC_LxCYR0R
LTDC_LxCYR1R
LTDC_LxFPF0R
LTDC_LxFPR1R

While accessing LTDC registers, the APB bus is stalled during the access for a given time period detailed in the following table.

Table 383. LTDC register access and updated durations

Access typeAXI register clock domainAPB register clock domainPixel register clock domain
Read7 x ltdc_pclk + 5 x ltdc_aclk7 x ltdc_pclk7 x ltdc_pclk + 5 x ltdc_ker_clk
Write6 x ltdc_pclk + 5 x ltdc_aclk6 x ltdc_pclk6 x ltdc_pclk + 5 x ltdc_ker_clk

The LTDC can be reset by setting the corresponding bit in the RCC, that resets the three clock domains.

43.4 LTDC configuration parameters

The LTDC configuration parameters are sequenced following the pixel flow as shown in Figure 444 , starting at the input (AXI master that reads pixels) and ending at the pixel output.

Common controls (such as interrupts) are listed at the end.

43.4.1 AXI master

The AXI master busses perform the accesses to the memory and are driven by the internal logic. The LTDC internal per-layer FIFOs are fairly large to cope with reasonably long external memory latencies.

The LTDC generates long burst (128-byte) for higher external memory efficiency. For more granularity, it is possible to decrease the max burst size to 64 bytes, but it is not recommended.

Parameter in LTDC_LxBLCR

BL: burst length, in 64-bit words, with a default 0 for max size

Default configuration

The default AXI burst length is set at its maximum value after reset, with BL = 0.

43.4.2 Input layer definition and cropping

The LTDC supports two layers. Each layer is defined by:

Note: The pitch and number of bytes per line can be different if a sub-part of a frame is cropped to be displayed. If the full frame is displayed, the pitch and number of lines are the same.

Parameters

Specifically for multi-planar layers, the following additional registers have to be configured (only required for YUV420 semi-planar and full-planar pixel formats):

Configuration examples

43.4.3 Input pixel format

The LTDC reads the pixel data from memory buffers and maps it onto the internal LTDC format that is based on the definition of the input pixel format, defined per layer.

The pixel formats are grouped as follows:

Note: The LTDC hardware pipeline uses 8 bits per component: when reading and mapping a pixel format, with less than 8 bits per component. That component is extended to 8 bits by stuffing the LSB, that are recopied from its MSB. This applies mostly on RGB565.

For instance, a component on 5 bits (named: 43210) results in the following 8 bits mapped into the pipe: 43210432. A 3-bit input (named 210) results in 21021021.

Parameter when using the predefined ARGB formats

Parameters when using the flexible ARGB formats

Examples:

An RGB565 pixel format is defined as follows:

The BGRA8888 32 bpp pixel format is set as follows (default reset values of LTDC_LxFPF0R and LTDC_LxFPF1R):

Parameters when using the YUV formats

The YUV pixel format is defined and detailed in Section 43.4.4: YUV planar and supersedes any setting here.

The following table describes the memory mapping of the predefined ARGB pixel format.

Table 384. Pixel data mapping versus color format

ARGB8888 (PF = 000)
@+3
A x [7:0]
@+2
R x [7:0]
@+1
G x [7:0]
@
B x [7:0]
@+7
A x+1 [7:0]
@+6
R x+1 [7:0]
@+5
G x+1 [7:0]
@+4
B x+1 [7:0]
ABGR8888 (PF = 001)
@+3
A x [7:0]
@+2
B x [7:0]
@+1
G x [7:0]
@
R x [7:0]
@+7
A x+1 [7:0]
@+6
B x+1 [7:0]
@+5
G x+1 [7:0]
@+4
R x+1 [7:0]
RGBA8888 (PF = 010)
@+3
R x [7:0]
@+2
G x [7:0]
@+1
B x [7:0]
@
A x [7:0]
@+7
R x+1 [7:0]
@+6
G x+1 [7:0]
@+5
B x+1 [7:0]
@+4
A x+1 [7:0]
BGRA8888 (PF = 011)
@+3
B x [7:0]
@+2
G x [7:0]
@+1
R x [7:0]
@
A x [7:0]
@+7
B x+1 [7:0]
@+6
G x+1 [7:0]
@+5
R x+1 [7:0]
@+4
A x+1 [7:0]
RGB565 (PF = 100)
@+3
R x+1 [4:0] G x+1 [5:3]
@+2
G x+1 [2:0] B x+1 [4:0]
@+1
R x [4:0] G x [5:3]
@
G x [2:0] B x [4:0]
Table 384. Pixel data mapping versus color format (continued)
@+7
R x+3 [4:0] G x+3 [5:3]
@+6
G x+3 [2:0] B x+3 [4:0]
@+5
R x+2 [4:0] G x+2 [5:3]
@+4
G x+2 [2:0] B x+2 [4:0]
BGR565 (PF = 101)
@+3
B x+1 [4:0] G x+1 [5:3]
@+2
G x+1 [2:0] R x+1 [4:0]
@+1
B x [4:0] G x [5:3]
@
G x [2:0] R x [4:0]
@+7
B x+3 [4:0] G x+3 [5:3]
@+6
G x+3 [2:0] R x+3 [4:0]
@+5
B x+2 [4:0] G x+2 [5:3]
@+4
G x+2 [2:0] R x+2 [4:0]
RGB888 (PF = 110)
@+3
B x+1 [7:0]
@+2
R x [7:0]
@+1
G x [7:0]
@
B x [7:0]
@+7
G x+2 [7:0]
@+6
B x+2 [7:0]
@+5
R x+1 [7:0]
@+4
G x+1 [7:0]
The flexible format (PF = 111), not represented here, allows any above mapping.

43.4.4 YUV planar

This operator handles the YUV planar formats, reading data from potentially several distinct buffers (Y versus Cb versus Cr) into a single pixel information. The feature is available for layer 1 and layer 2 (coplanar only for the layer 2).

The LTDC supports the following planar formats:

Following its configuration, the LTDC reads the relevant luminance and chrominance buffers, upscaling the chrominance components required to reach YUV444 pixels, and converts the color from YUV to RGB as described in Section 43.4.5 .

The LTDC allows swapping the memory locations of the Y and Cb/Cr data and of the Cb and Cr data. It also allows inverting the endianness of the Y data. This extends the amount of supported pixel format variants.

Parameters

Pixel format parameters are stored in LTDC_LxPCR:

When using a semi-planar or full-planar buffer, some additional base-address must be configured for auxiliary (chrominance) buffers, as well as the pitch of these buffers (see Section 43.4.2 ).

Configuration examples

Settings of OF, CBF, YF bits for a YCbCr 422 pixel format:

    • • OF = 0, CBF = 0, YF = 0 define the buffer word to contain Word[31:0] = Y1-Cb-Y0-Cr.
    • • OF = 1, CBF = 0, YF = 0 define the buffer word to contain Word[31:0] = Y0-Cb-Y1-Cr.
    • • OF = 0, CBF = 1, YF = 0 define the buffer word to contain Word[31:0] = Y0-Cr-Y1-Cb.
    • • OF = 0, CBF = 0, YF = 1 define the buffer word to contain Word[31:0] = Cb-Y1-Cr-Y0.
    • • OF = 1, CBF = 1, YF = 1 define the buffer word to contain Word[31:0] = Cr-Y0-Cb-Y1.
  1. These settings are also valid for YCbCr 420 pixel formats.

43.4.5 YUV-to-RGB color conversion

This operator handles the YUV-to-RGB color conversion of the YUV planar pixels. The color conversion is activated automatically, simultaneously with the YUV planar handling.

The color conversion is based on a semi-flexible 3x3 matrix multiplication:

Parameters

The full matrix computation, to convert from YCbCr to RGB, is defined as the following:

\[ \begin{pmatrix} R \\ G \\ B \end{pmatrix} = \begin{pmatrix} CR2R & 256 & 0 \\ -CR2G & 256 & -CB2G \\ 0 & 256 & CB2B \end{pmatrix} \times \begin{pmatrix} Cr - 128 \\ Y \\ Cb - 128 \end{pmatrix} \]

The CR2R, CB2B, CR2G, and CB2G coefficients are defined on 10 bits unsigned: as the operator works with 8-bit components, the coefficients are thus equivalent, in fixed-point, to 2-bit integer and 8-bit decimals.

The CR2G and CB2G coefficients are configured as unsigned positive, but are set negative in the hardware computation, as shown in the above matrix where a “-” is mentioned.

When the luminance scaling is active (YREN = 1, thus where the YCbCr input is assumed in the range of 16 to 235/240, and RGB in 0 to 255), then the Y input value is first scaled in hardware to \( Y' = 255/219 * (Y - 16) \) . That first result is then inserted as input to the above matrix multiplication.

Configuration examples

To read an ITU-R BT.601 layer and to convert its YCbCr (assuming a default reduced dynamic in 16 to 235/240) to RGB (with full dynamic in 0 to 255), the recommended coefficients are:

To read an ITU-R BT.709 layer and to convert its YCbCr (assuming a default reduced dynamic in 16 to 235/240) to RGB (with full dynamic in 0 to 255), the recommended values to configure coefficients are:

43.4.6 Horizontal or vertical mirroring

The LTDC can mirror horizontally or vertically its input layers, thus to read them from right to left, and/or from bottom to top.

It applies on both coplanar (ARGB, YUV422) and multi-planar (YUV420) pixel formats.

Parameters for horizontal mirroring

To mirror a layer horizontally, the LTDC must be configured to extract the pixels from right to left (backward), and to set the layer base-address at the right-end of the line.

The configuration bitfields are the following:

Parameters for vertical mirroring

To mirror a layer vertically, the LTDC must be configured to start reading this layer from the bottom, and line per line, to come upward. The layer base-address must be set to the start of the bottom line, and a negative line-per-line pitch must be provided.

The configuration bitfields for the base-address are (all to be set at bottom line start):

The configuration bitfields for the pitch are (all to be set with a negative pitch):

43.4.7 Default layer color

Every layer has a default color in the format ARGB8888, that is used outside the defined layer window or when a layer is disabled. This default color can be configured as active or absent.

Parameters

The default layer color parameters are:

Default configuration

By default, and after reset, the default layer color is inactive (DCBEN = 0 and DCALPHA = 0).

Note: The blending of a layer is always performed even when a layer is disabled. To avoid displaying the default color when a layer is disabled, the default Alpha must be set to null (DCALPHA = 0), or the whole default color must be disabled (with DCBEN).

43.4.8 Color look-up table (CLUT)

The LTDC supports frame buffers with each pixel defined as an index to a color table, allowing a display with a set of 256 colors, but stored in memory with only 8 bpp.

The CLUT defines 256 colors and must be indexed with a maximum 8-bit pixel format (typically L8 or AL44). Such format can be extracted using the flexible RGB approach described in Section 43.4.3 .

The CLUT table is differentiated for each layer. It must be initialized with one RGB888 value per color index, with the color index corresponding to the CLUT address:

Parameters

The RGB888 values and color indices are configured through the following bitfields in LTDC_LxCLUTWR:

43.4.9 Transparency color keying

Pixels can be defined as transparent using a color key. If the pixel RGB components equals the defined RGB color key, that pixel is considered transparent and its Alpha channel is forced null.

A pixel forced to transparent is transparent when proceeding to the later blending phase, and shows the pixel of the underlying layer.

The color key is defined as an RGB888 value, that is compared with the flowing pixel after some processing in the input format operator (where LSBs are stuffed by replication) and CLUT processing. The constant color keying parameters must take these previous processing into account.

Parameters

The color keying parameters are the following:

Configuration example

A mid-yellow color (50 % Red + 50 % Green) is used as the transparent color key. The color keying parameters take it into account as follows:

43.4.10 Display composition - windowing

When performing the display composition, every layer can be cropped and positioned into the active display area. The window position and size are configured by defining its top-left and bottom-right corners.

Note: The locations are defined versus the internal timing generator that must take into account the potential synchronization header, the back porch size and the chosen active pixel area (as shown in Figure 445).

The mapping between the input layer and the visible window is performed as follows:

Parameters:

The following parameters are defined versus the top-left of the synchronization:

Figure 445. Layer window programmable parameters

Diagram illustrating the layer window programmable parameters. A yellow rectangle labeled 'Window' is shown within a larger gray rectangle labeled 'Active data area'. The horizontal start position (WHSTPOS) is indicated by a double-headed arrow from the left edge of the active data area to the left edge of the window. The horizontal end position (WHSPPPOS) is indicated by a double-headed arrow from the left edge of the active data area to the right edge of the window. The vertical start position (WVSTPOS) is indicated by a double-headed arrow from the top edge of the active data area to the top edge of the window. The vertical end position (WVSPPOS) is indicated by a double-headed arrow from the top edge of the active data area to the bottom edge of the window. The diagram is labeled MSV19676V4 in the bottom right corner.
Diagram illustrating the layer window programmable parameters. A yellow rectangle labeled 'Window' is shown within a larger gray rectangle labeled 'Active data area'. The horizontal start position (WHSTPOS) is indicated by a double-headed arrow from the left edge of the active data area to the left edge of the window. The horizontal end position (WHSPPPOS) is indicated by a double-headed arrow from the left edge of the active data area to the right edge of the window. The vertical start position (WVSTPOS) is indicated by a double-headed arrow from the top edge of the active data area to the top edge of the window. The vertical end position (WVSPPOS) is indicated by a double-headed arrow from the top edge of the active data area to the bottom edge of the window. The diagram is labeled MSV19676V4 in the bottom right corner.

Configuration examples

43.4.11 Display composition - blending

The Alpha blending stage is used to blend together the 2 input layers, on top of a background color.

It is possible to select the sequence of the layers (foreground, middle, and background), to apply a global multiplicative Alpha per-layer, and to define an underlying background color.

The blending computation is performed from back to front, sequentially, as shown the following figure.

Figure 446. Blending two layers

Diagram illustrating the sequential blending of two layers (Layer 1 and Layer 2) on a background (BG). The process is shown in three steps: 1. Layer 2 is on top of Layer 1, which is on top of the BG. 2. Layer 1 and the BG are blended together. 3. Layer 2 is then blended with the result of the previous step (Layer 1 + BG). The final result is Layer 2 + Layer 1 + BG. The diagram is labeled MSV48123V1.
Diagram illustrating the sequential blending of two layers (Layer 1 and Layer 2) on a background (BG). The process is shown in three steps: 1. Layer 2 is on top of Layer 1, which is on top of the BG. 2. Layer 1 and the BG are blended together. 3. Layer 2 is then blended with the result of the previous step (Layer 1 + BG). The final result is Layer 2 + Layer 1 + BG. The diagram is labeled MSV48123V1.

The general formula for a 2-to-1 blending is \( CR = (BF1 \times C1) + (BF2 \times C2) \) where:

Both blending factor, BF1 and BF2, can be defined as one of the following:

Parameters

The background color is defined by the following bitfields in LTDC_BCCR:

Note: For secure purposes, in case of an inconsistent configuration, the blending order falls back to a fixed order, with the layer 2 on the foreground, and layer 1 in background, followed by the underlying background color.

The inconsistent fallback is setup to protect a potential secure layer. If a secure software configures the secure layer2 to be on the foreground, and a malware tries to place that another layer on the foreground, the inconsistency is detected, and the secure layer is automatically forced on the foreground, guaranteeing that it is visible.

Configuration example

Only layer 1 is enabled, BF1 configured to constant alpha. BF2 configured to 1 - constant alpha. The constant alpha programmed in LTDC_LxCACR is 240 (0xF0). Thus, the constant alpha value is \( 240 / 255 = 0.94 \) . C: current layer color is 128. Cs: background color is 48. Layer 1 is blended with the background color.

\( BC = \text{constant alpha} \times C + (1 - \text{constant alpha}) \times Cs = 0.94 \times 128 + (1 - 0.94) \times 48 = 123 \) .

Default configuration

All active layers can be made visible and blended by keeping the following configuration values after reset:

43.4.12 Gamma correction

The gamma correction is a non-linear operator that adapts the pixel to the non-linear display, using a compensating pre-distortion. The R, G, B components can be independently adapted, using a configurable non-linear transformation.

The non-linear transformation is implemented in the LTDC as eight independent linearly-interpolated segments: the desired non-linear transformation must thus be mapped onto the eight segments, and the shape of the eight segments configured in LTDC registers.

Parameters

Note: As the gamma correction works with eight interpolated segments. The only table indices to write-in are located at index: 0, 32, 64, 96, ..., 224, 255. The value to provide for index 255 contains the value for the pseudo-index 256.

Example configuration

The gamma correction is recommended to be set to pre-compensate the pixels with a gamma exponent of 2.2: Red, Green, and Blue components are compensated the same way by the Gamma. The configuration of Red, Green, and Blue tables is then usually the same.

Default configuration

The gamma correction is disabled with the default configuration after reset, with GAMEN = 0.

43.4.13 YUV output conversion

The default RGB888 24 bpp output can be converted to a YUV422 16 bpp output (coplanar), in order to reduce the bitrate or the interface width, if necessary.

The operator can convert the RGB to YUV with either ITU-R BT.601 versus BT.709 reference, and filter down the chrominance, to output the pixels as a YUV422 interface.

When the conversion is enabled, the Y is output on the LCD_G (green bits) and the Cb/Cr are output on the LCD_R (red bits).

Parameters in LTDC_EDCR

The configuration must follow what is expected by the external display panel.

Default configuration

The YUV output conversion is disabled with the default configuration after reset, with OCYEN = 0, allowing a default RGB888 to be output.

43.4.14 Dithering

The dithering operator allows a clean conversion of the RGB888 output into a reduced pixel format, like RGB565 or RGB666, and so avoiding the usual artifact of flat area that occurs when no dithering is available.

The dithering is based on a LFSR (polynomial generating random) and adds pseudo-random noise on the LSB of each of the displayed component (bit 2 in case of an RGB666), and makes that the average of the local pixels represents the information content of the full 8-component value.

Once the LTDC is enabled, the LFSR starts running with the first active pixel and it is kept running even during blanking periods and when dithering is switched off. If the LTDC is disabled, the LFSR is reset.

Parameters in LTDC_GCR

Example

To dither from RGB888 to RGB565 (assuming a RGB565 display panel):

Similarly, a dithering to RGB666 requires DRW = DGW = DBW = 2.

Default configuration

The dithering is disabled with the default configuration after reset, with DEN = 0, allowing a default RGB888 to be output.

43.4.15 CRC hashing

The CRC operator allows a 16-bit signature to be extracted for each frame, by hashing the R,G,B components of all the frame pixels.

The computed CRC can be read in LTDC_CRCR.

An expected CRC value can be configured: if the computed CRC does not match the expected CRC, the CRC interrupt is triggered. It allows a system test, letting the LTDC run for hours, and be warned only if a failed frame occurs.

Parameters

Default configuration

The CRC hashing is disabled with the default configuration after reset, with CRCEN = 0.

43.4.16 Display timing

This section describes the configuration of the display timings, so that the LTDC matches what is expected by the external display panel.

The configuration defines the horizontal and vertical duration of each of the following items:

These timings are described in the following figure.

Figure 447. LTDC synchronous timings

Figure 447. LTDC synchronous timings diagram showing horizontal and vertical timing parameters for a display. The diagram illustrates the relationship between total width/height, active width/height, and synchronization periods (HSYNC, VSYNC, HBP, HFP, VBP, VFP).

The diagram illustrates the timing parameters for an LCD-TFT display controller (LTDC). It shows a rectangular frame representing the total display area. The horizontal dimensions are labeled as 'Total width' (the full width of the frame) and 'Active width' (the width of the active display area). The vertical dimensions are labeled as 'Total height' (the full height of the frame) and 'Active height' (the height of the active display area). The active display area is shown as a shaded rectangle within the frame, containing 'Data1, Line1' at the top-left and 'Data(n), Line(n)' at the bottom-right. The horizontal synchronization parameters are: 'HSYNC width' (the duration of the horizontal sync signal), 'HBP' (horizontal back porch, the time from the start of HSYNC to the start of active data), and 'HFP' (horizontal front porch, the time from the end of active data to the start of the next HSYNC). The vertical synchronization parameters are: 'VSYNC width' (the duration of the vertical sync signal), 'VBP' (vertical back porch, the time from the start of VSYNC to the start of active data), and 'VFP' (vertical front porch, the time from the end of active data to the start of the next VSYNC). A note at the bottom states: 'Note: HBP and HFP are respectively the horizontal back porch and front porch period. VBP and VFP are respectively the vertical back porch and front porch period.' The diagram is labeled 'MSv19674V2' in the bottom right corner.

Figure 447. LTDC synchronous timings diagram showing horizontal and vertical timing parameters for a display. The diagram illustrates the relationship between total width/height, active width/height, and synchronization periods (HSYNC, VSYNC, HBP, HFP, VBP, VFP).

As a result of these timings, the LTDC samples in pixels during the active display duration, and generates the output synchronization signals (HSYNC, VSYNC), the pixel data, and the data-enable signal.

Parameters

All the timings configured next are absolute timings, computed from the display start position, and not the relative increment (or width or height) of each area.

All these bitfields indicate the last pixel of each area, and hence are subtracted 1.

Note: When the LTDC is enabled, timings generated start at the position (X, Y) = (0, 0), and generate immediately the first horizontal synchronization pixel in the vertical synchronization, followed by the back porch, then the active display area, and finally the front porch.

When the LTDC is disabled, the timing generator block is reset to X = total width - 1, Y = total height - 1. It holds the last pixel before the vertical synchronization phase and the FIFO are flushed. Therefore, only blanking data is output continuously.

Example of synchronous timing configuration

Assume the following display panel timings (to be extracted from panel datasheet):

Bitfield values to configure become:

Default configuration

There is no default configuration to propose. As display timings depend on the specific display panel and its own required timings, all these parameters must be extracted from the display panel specification.

Note: The configuration of all the above is mandatory to have the LTDC driving correctly the external display panel.

43.4.17 Output interface polarity

The polarity of the control signals of the output interface includes the clock polarity, the vertical/horizontal synchronization, and the data-enable signal.

Parameters in LTDC_GCR

Default configuration

There is not default configuration, as the configuration of the polarity depends on the display panel specifications.

The following configuration can be used to have all items working with a positive polarity:

43.4.18 Shadow registers

When activated, the LTDC is expected to display continuously data, frame after frame.

The user may want to modify some settings: for example, add a new layer, modify the layer window location, or update the displayed content by updating the pointer to the buffer that is displayed.

The LTDC provides shadow registers for most of its configuration registers to allow transitions to occur cleanly synchronized during the short vertical synchronization, when nothing is displayed: while the LTDC is busy working with a copy of its configuration registers to control the ongoing display (the active set), a new version of the registers can be progressively updated by software (the shadow set). When ready, and at the exact VSync event, the shadow set is copied into the active set, ready for the next frame.

Once the shadow set is fully updated, there are two ways to transfer it in the active set:

Note: In case of delayed copy, shadow registers must not be modified again before the reload has been done.

Reading from shadow registers returns the current active value. The new written value can only be read after the reload has taken place.

The impossibility to read a temporary value in a shadow register makes impossible to perform a read-modify-write to set/reset a single bit inside a shadow register.

A register reload interrupt can be generated if enabled in LTDC_IER or LTDC_IER2.

Shadowed registers

Non-layer registers

The non-layer registers (not prefixed with LTDC_Lx) are all non-shadowed. They contain static configurations dependent mostly on the attached display panel. They do not require update during an ongoing display.

Layer registers

The layer registers are prefixed with LTDC_Lx. Most are shadowed to support a clean frame-to-frame update. The following are not shadowed, either because their shadowing

must be too costly or because they are not expected to require frequent or synchronized updates:

Parameters

The centralized reload of the shadow register is controlled with bitfields in LTDC_SRCR:

A per-layer reload control is available with bitfields in LTDC_LxRCR:

Default configuration

For the initial LTDC configuration, when the display is inactive, the IMR mode must be used to copy the initial configuration to the active set.

When the display is active, it is recommended to use VBR to update any parameters: the parameter transition occurs then from frame-to-frame, and not inside an ongoing frame. Applying an immediate change of the LTDC configuration within a frame results in an unpredictable behavior.

43.4.19 General control

The final and mandatory step, after all the above configurations, is to trigger the display. The LTDC has two working mode:

Parameters in LTDC_GCR

43.4.20 Hardware trigger generation

The LTDC can generate an hardware trigger on a line event to synchronize with other peripherals.

As these hardware events reuse the interrupt circuitry, the enable bit must be set in order to properly generate the hardware event. The interrupt masking must thus be done at NVIC level.

Table 385. LTDC hardware triggers

Event lineEventEvent flagEnable control bitEvent clear method
ltdc_lo_liLower-layer line interruptLIF
(LTDC_ISR)
LIE
(LTDC_IER)
write 1 in CLIF
(LTDC_ICR)
ltdc_up_liUpper-layer line interruptLIF
(LTDC_ISR2)
LIE
(LTDC_IER2)
write 1 in CLIF
(LTDC_ICR2)

43.4.21 Provision for a secure layer

The LTDC allows a secure layer support, with the addition of a wrapper around the LTDC that secures the access to its registers (register-per-register), and secures the access of its AXI master to the layer framebuffers.

The layer 2 can be secured thanks to the measures described in the following sub-sections.

Configuration registers

The granularity between secure versus nonsecure items is at register level:

There is no merge of secure and nonsecure bitfields in a same register. It allows all registers to be segregated between secure ones (with an access only by secure software) and open ones (with an access by any nonsecure software).

Interrupts

The interruption logic has been duplicated, with one secure interrupt logic (register and pin) reserved for secure software, and another open interrupt logic (second register set and second output pin) for nonsecure software.

Blending

The blending order (foreground to background) is defined in per-layer register, so that the blending order of the secure layer2 can be securely defined as foreground. If some nonsecure software defines layer 1 in foreground, the integrated hardware consistency check reverses the blending order to a fixed one, forcing the secure layer to be in the foreground.

CRC

The CRC configuration registers stated next can also be defined as secure, to secure the extracted signature of the displayed frame. The CRC that computes a signature of the displayed frame has its configuration located in specific registers that can be defined as secure, too.

43.5 LTDC interrupts

The LTDC provides various maskable interrupts, that are grouped into two global interrupt pins: one working interrupt pin, and one error interrupt pin.

These maskable interrupts and two global output pins are duplicated for the secure software usage, resulting in a duplicated set of registers (for masking) and a duplicated set of output pin. Hence a total of four interrupt output pins: global working, global error, secure global, secure global error.

The following working interrupts on which to synchronize software are ORed together as a global working interrupt:

The following error interrupts warn about some internal processing errors, and are ORed together as a global error interrupt:

The LTDC also provides an observation mean, to retrieve X and Y positions of the currently displayed pixel.

Parameters

The following nonsecure registers are used to handle the interrupts:

The duplicated secure registers are used to handle the interrupts (with same respective content as the nonsecure ones): LTDC_LIPCR2, LTDC_IER2, LTDC_ISR2, LTDC_ICR2.

The following table lists the bitfields of the available interrupts, and shows the four pins on which these bitfields are directed:

Table 386. LTDC interrupt requests

RegistersInterrupt eventEvent bitEnable control bitInterrupt signal
Nonsecure registers (IER, ISR, ICR)Line numberLIFLIEltdc_lo_li
Register reloadRRIFRIEltdc_lo_li
FIFO underrun warningFUWIFFUWIEltdc_lo_li
FIFO underrun errorFUIFFUIEltdc_lo_err_it
Bus transfer errorTERRIFTERRIEltdc_lo_err_it
CRC errorCRCIFCRCIEltdc_lo_err_it
Secure registers (IER2, ISR2, ICR2)Line numberLIFLIEltdc_up_li
Register reloadRRIFRIEltdc_up_li
FIFO underrun warningFUWIFFUWIEltdc_up_li
FIFO underrun errorFUIFFUIEltdc_up_err_it
Bus transfer errorTERRIFTERRIEltdc_up_err_it
CRC errorCRCIFCRCIEltdc_up_err_it

43.6 LTDC programming procedure

The LTDC programming procedure consists to activate the clocks, to follow all the operator sequence (as listed in Section 43.4 ) from the beginning (AXI master) to the end (output interface polarity), and to configure the needed operators as described.

The minimum configuration that must be performed is the following:

  1. 1. Enable the LTDC clock in the RCC register:
    • – APB slave
    • – AXI master
    • – Pixel clock that fits display panel requirements (resolution, blanking, frame rate)
  2. 2. Define the buffer of at least one input layer (see Section 43.4.2 , with for example, layer base-address, size, or buffer pitch).
  3. 3. Define this layer pixel format (see Section 43.4.3 ). ARGB8888 can simply be used, depending on the stored buffer.
  4. 4. Define where this layer is inserted in the final display (see Section 43.4.10 ): typically the top-left and bottom-right corners of the display.
  5. 5. Define how this layer is blended in the final display (see Section 43.4.11 ).
  6. 6. Define timings of the display panel to drive (see Section 43.4.16 ).
  1. 7. Define polarity of the output signals (see Section 43.4.17 ).
  2. 8. Copy all above settings, once, using the immediate global reload (see Section 43.4.18 ).
  3. 9. Start the display by activating the main enable (see Section 43.4.18 ).

Note: Most layer registers are shadowed. Once a register is written, it must not be modified again before the reload has been done. A new write to the same register overrides the previous configuration if not yet reloaded. It is also not possible to read the temporary value of a shadowed register, which makes impossible to perform read-modify-write to set/reset a single bit inside a register.

43.7 LTDC registers

43.7.1 LTDC synchronization size configuration register (LTDC_SSCR)

Address offset: 0x008

Reset value: 0x0000 0000

This register defines the number of horizontal synchronization pixels minus 1, and the number of vertical synchronization lines minus 1. Refer to Figure 447 and Section 43.4 for a configuration example.

31302928272625242322212019181716
Res.Res.Res.Res.HSW[11:0]
rwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.VSH[11:0]
rwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:28 Reserved, must be kept at reset value.

Bits 27:16 HSW[11:0] : Horizontal synchronization width (in units of pixel clock period)

This bitfield defines the number of horizontal synchronization pixel minus 1.

Bits 15:12 Reserved, must be kept at reset value.

Bits 11:0 VSH[11:0] : Vertical synchronization height (in units of horizontal scan line)

This bitfield defines the vertical synchronization height minus 1. It represents the number of horizontal synchronization lines.

43.7.2 LTDC back porch configuration register (LTDC_BPCR)

Address offset: 0x00C

Reset value: 0x0000 0000

This register defines the accumulated number of horizontal synchronization and back porch pixels minus 1 (HSYNC width + HBP - 1), and the accumulated number of vertical

synchronization and back porch lines minus 1 (VSYNC height + VBP - 1).
Refer to Figure 447 and Section 43.4 for a configuration example.

31302928272625242322212019181716
Res.Res.Res.Res.AHBP[11:0]
rwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.AVBP[11:0]
rwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:28 Reserved, must be kept at reset value.

Bits 27:16 AHBP[11:0] : Accumulated horizontal back porch (in units of pixel clock period)

This bitfield defines the accumulated horizontal back porch width that includes the horizontal synchronization and horizontal back porch pixels minus 1.

The horizontal back porch is the period between horizontal synchronization going inactive, and the start of the active display part of the next scan line.

Bits 15:12 Reserved, must be kept at reset value.

Bits 11:0 AVBP[11:0] : Accumulated Vertical back porch (in units of horizontal scan line)

This bitfield defines the accumulated vertical back porch width that includes the vertical synchronization and vertical back porch lines minus 1.

The vertical back porch is the number of horizontal scan lines at a start of frame to the start of the first active scan line of the next frame.

43.7.3 LTDC active width configuration register (LTDC_AWCR)

Address offset: 0x010

Reset value: 0x0000 0000

This register defines the accumulated number of horizontal synchronization, back porch and active pixels minus 1 (HSYNC width + HBP + active width - 1), and the accumulated number of vertical synchronization, back porch lines and active lines minus 1 (VSYNC height + BVBP + active height - 1). Refer to Figure 447 and Section 43.4 for a configuration example.

31302928272625242322212019181716
Res.Res.Res.Res.AAW[11:0]
rwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.AAH[11:0]
rwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:28 Reserved, must be kept at reset value.

Bits 27:16 AAW[11:0] : Accumulated active width (in units of pixel clock period)

This bitfield defines the accumulated active width that includes the horizontal synchronization, horizontal back porch and active pixels minus 1. The active width is the number of pixels in active display area of the panel scan line.

Refer to device datasheet for the maximum active width supported following the maximum pixel clock.

Bits 15:12 Reserved, must be kept at reset value.

Bits 11:0 AAH[11:0] : Accumulated active height (in units of horizontal scan line)

This bitfield defines the accumulated height that includes the vertical synchronization, vertical back porch and the active height lines minus 1. The active height is the number of active lines in the panel.

Refer to device datasheet for the maximum active height supported following the maximum pixel clock.

43.7.4 LTDC total width configuration register (LTDC_TWCR)

Address offset: 0x014

Reset value: 0x0000 0000

This register defines the accumulated number of horizontal synchronization, back porch, active and front porch pixels minus 1 (HSYNC width + HBP + active width + HFP - 1), and the accumulated number of vertical synchronization, back porch lines, active and front lines minus 1 (VSYNC height + VBP + active height + VFP - 1). Refer to Figure 447 and Section 43.4 for a configuration example.

31302928272625242322212019181716
Res.Res.Res.Res.TOTALW[11:0]
rwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.TOTALH[11:0]
rwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:28 Reserved, must be kept at reset value.

Bits 27:16 TOTALW[11:0] : Total width (in units of pixel clock period)

This bitfield defines the accumulated total width that includes the horizontal synchronization, horizontal back porch, active width and horizontal front porch pixels minus 1.

Bits 15:12 Reserved, must be kept at reset value.

Bits 11:0 TOTALH[11:0] : Total height (in units of horizontal scan line)

This bitfield defines the accumulated height that includes the vertical synchronization, vertical back porch, the active height and vertical front porch height lines minus 1.

43.7.5 LTDC global control register (LTDC_GCR)

Address offset: 0x018

Reset value: 0x0000 2220

This register defines the LTDC global configuration.

31302928272625242322212019181716
HSPOLVSPOLDEPOLPCPOLRes.Res.SFSWTRSFENRes.Res.Res.Res.CRCE
N
Res.Res.DEN
rwrwrwrwwrwrwrw
1514131211109876543210
Res.DRW[2:0]Res.DGW[2:0]Res.DBW[2:0]Res.Res.GAME
N
LTDCE
N
rrrrrrrrrrwrw

Bit 31 HSPOL : Horizontal synchronization polarity

This bit is set and cleared by software.

0: Horizontal synchronization polarity is active low.

1: Horizontal synchronization polarity is active high.

Bit 30 VSPOL : Vertical synchronization polarity

This bit is set and cleared by software.

0: Vertical synchronization is active low.

1: Vertical synchronization is active high.

Bit 29 DEPOL : Blanking (no data/pixel) polarity

This bit is set and cleared by software.

0: Blanking (no data/pixel) polarity is active low.

1: Blanking (no data/pixel) polarity is active high.

Bit 28 PCPOL : Pixel clock polarity

This bit is set and cleared by software.

0: The pixel and sync data are generated at the rising-edge of the output LCD_CLK clock.

1: The pixel and sync data are generated at the falling-edge of the output LCD_CLK clock.

Bits 27:26 Reserved, must be kept at reset value.

Bit 25 SFSWTR : Single-frame mode software trigger

This bit is set by software and cleared by hardware.

0: No action

1: Triggers one frame

Bit 24 SFEN : Single-frame mode enable

This bit is set and cleared by software.

0: Single-frame disabled: a trigger (on SFSWTR) generates a continuous flow.

1: Single-frame enabled: a trigger (on SFSWTR) generates a single frame.

Bits 23:20 Reserved, must be kept at reset value.

Bit 19 CRCEN : CRC enable

This bit is set and cleared by software.

0: CRC disabled

1: CRC enabled

Bits 18:17 Reserved, must be kept at reset value.

Bit 16 DEN : Dither enable

This bit is set and cleared by software.

0: Dither disabled

1: Dither enabled

Bit 15 Reserved, must be kept at reset value.

Bits 14:12 DRW[2:0] : Dither red width

This bitfield returns the dither red bits.

Bit 11 Reserved, must be kept at reset value.

Bits 10:8 DGW[2:0] : Dither green width

This bitfield returns the dither green bits.

Bit 7 Reserved, must be kept at reset value.

Bits 6:4 DBW[2:0] : Dither blue width

This bitfield returns the dither Blue bits.

Bits 3:2 Reserved, must be kept at reset value.

Bit 1 GAMEN : Gamma correction enable

This bit is set and cleared by software.

0: Gamma correction disabled (pixels bypass the gamma operator)

1: Gamma correction enabled

Bit 0 LTDCEN : LTDC global enable

This bit is set and cleared by software.

0: LTDC disabled

1: LTDC enabled

43.7.6 LTDC shadow reload configuration register (LTDC_SRCR)

Address offset: 0x024

Reset value: 0x0000 0000

This register allows the reload, either immediately or during the vertical blanking period, of shadow register values to the active registers. Shadow registers are all layer x ones, except LTDC_L1CLUTWR and LTDC_L2CLUTWR.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.VBR
rw
IMR
rw

Bits 31:2 Reserved, must be kept at reset value.

Bit 1 VBR : Vertical blanking reload request

This bit is set by software and cleared only by hardware after reload (it cannot be cleared through register write once it is set).

0: No effect

1: The shadow registers are reloaded during the vertical blanking period (at the beginning of the first line after the active display area).

Bit 0 IMR : Immediate reload trigger

This bit is set by software and cleared only by hardware after reload.

0: No effect

1: The shadow registers are reloaded immediately.

43.7.7 LTDC gamma correction configuration register (LTDC_GCCR)

Address offset: 0x028

Reset value: 0x0000 0000

This register performs indirect access to the gamma correction R,G,B tables.

31302928272625242322212019181716
ResResResResResResResResResResResResResRENGENBEN
www
1514131211109876543210
COMP[7:0]ADDR[7:0]
wwwwwwwwwwwwwwww

Bits 31:19 Reserved, must be kept at reset value.

Bit 18 REN : Write trigger to the red table

0: No action

1: COMP is written at ADDR in the red table.

Bit 17 GEN : Write trigger to the green table

0: No action

1: COMP is written at ADDR in the green table.

Bit 16 BEN : Write trigger to the blue table

0: No action

1: COMP is written at ADDR in the blue table.

Bits 15:8 COMP[7:0] : Color component to be written, in either (or all) the R,G,B tables

Bits 7:0 ADDR[7:0] : Address of the R,G,B table where the COMP component is written

When LTDC_GC1R.GCT=2, the gamma is implemented with eight interpolated segment. In that case, the valid ADDR addresses are: 0, 32, 64, 96, 128, 160, 192, 224, 255.

Note: For ADDR = 255, the gamma interpolation hardware considers that the address is 256.

43.7.8 LTDC background color configuration register (LTDC_BCCR)

Address offset: 0x02C

Reset value: 0x0000 0000

This register defines the background color (RGB888).

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.BCRED[7:0]
rwrwrwrwrwrwrwrw
1514131211109876543210
BCGREEN[7:0]BCBLUE[7:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:24 Reserved, must be kept at reset value.

Bits 23:16 BCRED[7:0] : Background color red value

This bitfield configures the background red value.

Bits 15:8 BCGREEN[7:0] : Background color green value

This bitfield configures the background green value.

Bits 7:0 BCBLUE[7:0] : Background color blue value

This bitfield configures the background blue value.

43.7.9 LTDC interrupt enable register (LTDC_IER)

Address offset: 0x034

Reset value: 0x0000 0000

This register determines which status flags generate an interrupt request, by setting the corresponding bit to 1.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.CRCIEFUIERes.Res.RRIETERRIEFUWIELIE
rwrwrwrwrwrw

Bits 31:8 Reserved, must be kept at reset value.

Bit 7 CRCIE : CRC error interrupt enable

This bit is set and cleared by software.

0: CRC error disabled

1: CRC error interrupt enabled

Bit 6 FUIE : FIFO underrun interrupt enable

This bit is set and cleared by software.

0: FIFO underrun interrupt disabled

1: FIFO underrun Interrupt enabled

Bits 5:4 Reserved, must be kept at reset value.

Bit 3 RRIE : Register reload interrupt enable

This bit is set and cleared by software.

0: Register reload interrupt disabled

1: Register reload interrupt enabled

Bit 2 TERRIE : Transfer error interrupt enable

This bit is set and cleared by software.

0: Transfer error interrupt disabled

1: Transfer error interrupt enabled

Bit 1 FUWIE : FIFO underrun warning interrupt enable

This bit is set and cleared by software.

0: FIFO underrun interrupt disabled

1: FIFO underrun Interrupt enabled

Bit 0 LIE : Line interrupt enable

This bit is set and cleared by software.

0: line interrupt disabled

1: line interrupt enabled

43.7.10 LTDC interrupt status register (LTDC_ISR)

Address offset: 0x038

Reset value: 0x0000 0000

This register returns the interrupt status flag.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.CRCIFFUIFRes.Res.RRIFTERRIFFUWIFLIF
rrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bit 7 CRCIF : CRC error interrupt flag

0: No CRC error interrupt generated

1: CRC error interrupt generated when a bus error occurs

Bit 6 FUIF : FIFO underrun interrupt flag

0: No FIFO underrun interrupt generated

1: FIFO underrun interrupt generated, if one of the layer FIFOs is empty and many pixel data are read from the FIFO

Bits 5:4 Reserved, must be kept at reset value.

Bit 3 RRIF : Register reload interrupt flag

0: No register reload interrupt generated

1: Register reload interrupt generated when a vertical blanking reload occurs (and the first line after the active area is reached)

Bit 2 TERRIF : Transfer error interrupt flag

0: No transfer error interrupt generated

1: Transfer error interrupt generated when a bus error occurs

Bit 1 FUWIF : FIFO underrun warning interrupt flag

0: No FIFO underrun warning interrupt generated

1: FIFO underrun warning interrupt generated, if one of the layer FIFO is empty and pixel data is read from the FIFO

Bit 0 LIF : Line interrupt flag

0: No line interrupt generated

1: Line interrupt generated when a programmed line is reached

43.7.11 LTDC interrupt clear register (LTDC_ICR)

Address offset: 0x03C

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.CCRCIFCFUIFRes.Res.CRRIFCTERRIFCFUWIFCLIF
wwwwww

Bits 31:8 Reserved, must be kept at reset value.

Bit 7 CCRCIF : CRC error interrupt flag clear

0: No effect

1: Clear CRCIF flag in LTDC_ISR.

Bit 6 CFUIF : FIFO underrun interrupt flag clear

0: No effect

1: Clear FUIF flag in LTDC_ISR.

Bits 5:4 Reserved, must be kept at reset value.

Bit 3 CRRIF : Register reload interrupt flag clear

0: No effect

1: Clear RRIF flag in LTDC_ISR.

Bit 2 CTERRIF : Transfer error interrupt flag clear

0: No effect

1: Clear TERRIF flag in LTDC_ISR.

Bit 1 CFUWIF : FIFO underrun warning interrupt flag clear

0: No effect

1: Clear FUWIF flag in LTDC_ISR.

Bit 0 CLIF : Line-interrupt flag clear

0: No effect

1: Clear LIF flag in LTDC_ISR.

43.7.12 LTDC line interrupt position configuration register (LTDC_LIPCR)

Address offset: 0x040

Reset value: 0x0000 0000

This register defines the line interrupt position. The line value to be programmed depends on timing parameters (see Figure 447 ).

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.LIPOS[11:0]
rwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:12 Reserved, must be kept at reset value.

Bits 11:0 LIPOS[11:0] : Line interrupt position

This bitfield configures the line interrupt position.

43.7.13 LTDC current position status register (LTDC_CPSR)

Address offset: 0x044

Reset value: 0x0000 0000

This register returns the X,Y position of the currently displayed pixel.

31302928272625242322212019181716
Res.Res.Res.Res.CXPOS[11:0]
rrrrrrrrrrrr
1514131211109876543210
Res.Res.Res.Res.CYPOS[11:0]
rrrrrrrrrrrr

Bits 31:28 Reserved, must be kept at reset value.

Bits 27:16 CXPOS[11:0] : Current X position

Bits 15:12 Reserved, must be kept at reset value.

Bits 11:0 CYPOS[11:0] : Current Y position

43.7.14 LTDC current display status register (LTDC_CDSR)

Address offset: 0x048

Reset value: 0x0000 0003

This register returns the status of the current display phase that is controlled by HSYNC, VSYNC, and horizontal/vertical data-enable signals.

Example: if the current display phase is the vertical synchronization, VSYNC is active high. If the current display phase is the horizontal synchronization, HSYNC is active high.

The returned status does not depend on the configured polarity in LTDC_GCR: it returns the current active display phase.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.HSYNC
S
VSYNC
S
HDESVDES
rrrr

Bits 31:4 Reserved, must be kept at reset value.

Bit 3 HSYNC : Horizontal synchronization display status

0: Active low
1: Active high

Bit 2 VSYNC : Vertical synchronization display status

0: Active low
1: Active high

Bit 1 HDES : Horizontal data enable display status

0: Active low

1: Active high

Bit 0 VDES : Vertical data enable display status

0: Active low

1: Active high

43.7.15 LTDC external display control register (LTDC_EDCR)

Address offset: 0x060

Reset value: 0x0000 0000

This register controls the external display interface.

31302928272625242322212019181716
Res.Res.Res.Res.OCYCOOCYSELOCYENRes.Res.Res.Res.Res.Res.Res.Res.Res.
rwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.

Bits 31:28 Reserved, must be kept at reset value.

Bit 27 OCYCO : Output conversion to YCbCr 422

This bit defines the chrominance order (whether Cb or Cr is output first).

0: Cb is output first (Y0Cb, then Y1Cr, Y2Cb and so on).

1: Cr is output first (Y0Cr, then Y1Cb, Y2Cr and so on).

Bit 26 OCYSEL : Output conversion to YCbCr 422

This bit selects the set of CCIR hard-wired coefficients (ITU-R BT.601 or 709).

0: Use ITU-R BT.601 set (for typically SDTV analog-like displays).

1: Use ITU-R BT.709 set (for typically HDTV digital-like displays).

Bit 25 OCYEN : Output conversion to YCbCr 422 enable

0: Conversion disabled

1: Conversion enabled

Bits 24:0 Reserved, must be kept at reset value.

43.7.16 LTDC interrupt enable register 2 (LTDC_IER2)

Address offset: 0x064

Reset value: 0x0000 0000

This register determines which status flags generate an interrupt request, by setting the corresponding bit to 1.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.CRCIEFUIERes.Res.RRIETERRIEFUWIELIE
rwrwrwrwrwrw

Bits 31:8 Reserved, must be kept at reset value.

Bit 7 CRCIE : CRC error interrupt enable
This bit is set and cleared by software.
0: CRC error disabled
1: CRC error interrupt enabled

Bit 6 FUIE : FIFO underrun interrupt enable
This bit is set and cleared by software.
0: FIFO underrun interrupt disabled
1: FIFO underrun Interrupt enabled

Bits 5:4 Reserved, must be kept at reset value.

Bit 3 RRIE : Register reload interrupt enable
This bit is set and cleared by software.
0: Register reload interrupt disabled
1: Register reload interrupt enabled

Bit 2 TERRIE : Transfer error interrupt enable
This bit is set and cleared by software.
0: Transfer error interrupt disabled
1: Transfer error interrupt enabled

Bit 1 FUWIE : FIFO underrun warning interrupt enable
This bit is set and cleared by software.
0: FIFO underrun interrupt disabled
1: FIFO underrun Interrupt enabled

Bit 0 LIE : Line interrupt enable
This bit is set and cleared by software.
0: Line interrupt disabled
1: Line interrupt enabled

43.7.17 LTDC interrupt status register 2 (LTDC_ISR2)

Address offset: 0x068

Reset value: 0x0000 0000

This register returns the interrupt status flag.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.CRCIFFUIFRes.Res.RRIFTERRIFFUWIFLIF
rrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bit 7 CRCIF : CRC Error interrupt flag

0: No CRC error interrupt generated

1: CRC error interrupt generated when a bus error occurs

Bit 6 FUIF : FIFO underrun interrupt flag

0: No FIFO underrun interrupt generated.

1: FIFO underrun interrupt generated, if one of the layer FIFO is empty and many pixel data are read from the FIFO

Bits 5:4 Reserved, must be kept at reset value.

Bit 3 RRIF : Register reload interrupt flag

0: No register reload interrupt generated

1: Register reload interrupt generated when a vertical blanking reload occurs (and the first line after the active area is reached)

Bit 2 TERRIF : Transfer error interrupt flag

0: No transfer error interrupt generated

1: Transfer error interrupt generated when a bus error occurs

Bit 1 FUWIF : FIFO underrun warning interrupt flag

0: No FIFO underrun warning interrupt generated.

1: FIFO underrun warning interrupt generated, if one of the layer FIFO is empty and pixel data is read from the FIFO

Bit 0 LIF : Line interrupt flag

0: No line interrupt generated

1: Line interrupt generated when a programmed line is reached

43.7.18 LTDC interrupt clear register 2 (LTDC_ICR2)

Address offset: 0x06C

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.CCRCIFCFUIFRes.Res.CRRIFCTERRIFCFUWIFCLIF
wwwwww

Bits 31:8 Reserved, must be kept at reset value.

43.7.19 LTDC line interrupt position configuration register 2 (LTDC_LIPCR2)

Address offset: 0x070

Reset value: 0x0000 0000

This register defines the line interrupt position. The line value to be programmed depends on timing parameters (see Figure 447 ).

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.rwrwrwrwrwrwrwrwrwrwrwrw
LIPOS[11:0]

Bits 31:12 Reserved, must be kept at reset value.

Bits 11:0 LIPOS[11:0] : Line interrupt position

43.7.20 LTDC expected CRC register (LTDC_ECRCR)

Address offset: 0x078

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
ECRC[15:0]

Bits 31:16 Reserved, must be kept at reset value.

Bits 15:0 ECRC[15:0] : Expected CRC of frame

43.7.21 LTDC computed CRC register (LTDC_CCRCR)

Address offset: 0x07C

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
rrrrrrrrrrrrrrrr
CCRC[15:0]

Bits 31:16 Reserved, must be kept at reset value.

Bits 15:0 CCRC[15:0] : Computed CRC of frame

43.7.22 LTDC FIFO underrun threshold register (LTDC_FUTR)

Address offset: 0x090

Reset value: 0x0000 0010

A default value for THRE[15:0] is 0x80, that represents 128 words of 64 bits, thus 256 pixels 32bpp or 1024 luminance of a YUV420 pixel.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
THRE[15:0]

Bits 31:16 Reserved, must be kept at reset value.

Bits 15:0 THRE[15:0] : Threshold to trigger a FIFO underrun interrupt (per FIFO word, 64 bits)
Threshold above which a FIFO underrun warning becomes a FIFO underrun error.

43.7.23 LTDC layer x configuration 0 register (LTDC_LxC0R)

Address offset: \( 0x100 + 0x100 * (x - 1) \) , ( \( x = 1 \) to \( 2 \) )

Reset value: 0xFF50 A075

31302928272625242322212019181716
ARGB888ABGR888RGBA888BGRA888RGB565BGR565RGB888FFF11PCF1PCF11CF1CF11PF1PF10F11
rrrrrrrrrrrrrrrr
1514131211109876543210
F21PCF2PCF21CF2CF21PF2PF20F21CKRACLUTAWINADCPAPACFBPACFBDACKTA
rrrrrrrrrrrrrrrr

Bit 31 ARGB888 : Pixel format, ability for argb8888

Bit 30 ABGR8888 : Pixel format, ability for abgr8888

Bit 29 RGBA8888 : Pixel format, ability for rgba8888

Bit 28 BGRA8888 : Pixel format, ability for bgra8888

Bit 27 RGB565 : Pixel format, ability for rgb565

Bit 26 BGR565 : Pixel format, ability for bgr565

Bit 25 RGB888 : Pixel format, ability for rgb888

Bit 24 FF : Flexible pixel format, ability

Bit 23 F11PC : Blending factor 1, ability for \( 1.0 - (\text{pixel\_alpha} * \text{constant\_alpha}) \)

Bit 22 F1PC : Blending factor 1, ability for \( \text{pixel\_alpha} * \text{constant\_alpha} \)

Bit 21 F11C : Blending factor 1, ability for \( 1.0 - \text{constant\_alpha} \)

Bit 20 F1C : Blending factor 1, ability for \( \text{constant\_alpha} \)

Bit 19 F11P : Blending factor 1, ability for \( 1.0 - \text{pixel\_alpha} \)

Bit 18 F1P : Blending factor 1, ability for \( \text{pixel\_alpha} \)

Bit 17 F10 : Blending factor 1, ability for 0.0

Bit 16 F11 : Blending factor 1, ability for 1.0

Bit 15 F21PC : Blending factor 2, ability for \( 1.0 - (\text{pixel\_alpha} * \text{constant\_alpha}) \)

Bit 14 F2PC : Blending factor 2, ability for \( \text{pixel\_alpha} * \text{constant\_alpha} \)

Bit 13 F21C : Blending factor 2, ability for \( 1.0 - \text{constant\_alpha} \)

Bit 12 F2C : Blending factor 2, ability for \( \text{constant\_alpha} \)

Bit 11 F21P : Blending factor 2, ability for \( 1.0 - \text{pixel\_alpha} \)

Bit 10 F2P : Blending factor 2, ability for \( \text{pixel\_alpha} \)

Bit 9 F20 : Blending factor 2, ability for 0.0

Bit 8 F21 : Blending factor 2, ability for 1.0

Bit 7 CKRA : Color key replace ability

Bit 6 CLUTA : CLUT ability

Bit 5 WINA : Windowing ability

  1. Bit 4 DCP : Default color programmability
    Bit 3 APA : Alpha plane ability
    Bit 2 CFBPA : Color frame buffer pitch ability
    Bit 1 CFBDA : Color frame buffer duplication ability
    Bit 0 CKTA : Color key transparency ability

43.7.24 LTDC layer x configuration 1 register (LTDC_LxC1R)

Address offset: 0x104 + 0x100 * (x - 1), (x = 1 to 2)

Reset value: 0x0000 0007, 0x0000 0001

31302928272625242322212019181716
SCARes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
r
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.YFPAYSPAYIA
rrr
  1. Bit 31 SCA : Scaling ability for this layer
    0: Scaling not available
    1: Scaling available
    Bits 30:3 Reserved, must be kept at reset value.
    Bit 2 YFPA : YCbCr 420 full-planar ability for this layer
    0: Full planar not available
    1: Full planar available
    Bit 1 YSPA : YCbCr 420 semi-planar ability for this layer
    0: Semi-planar not available
    1: Semi-planar available
    Bit 0 YIA : YCbCr 422 interleaved ability for this layer
    0: Interleaved not available
    1: Interleaved available

43.7.25 LTDC layer x reload control register (LTDC_LxRCR)

Address offset: 0x108 + 0x100 * (x - 1), (x = 1 to 2)

Reset value: 0x0000 0004

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.GRMS
K
VBRIMR
rwrww

Bits 31:3 Reserved, must be kept at reset value.

Bit 2 GRMSK : Shadow reload control, global (centralized) reload masked

This bit is set and cleared by software.

0: Global reload masked for this layer (control from LTDC_SRCR disabled)

1: Global reload active for this layer (control from LTDC_SRCR enabled)

Bit 1 VBR : Vertical blanking reload request

This bit is set by software and cleared only by hardware after reload (it cannot be cleared through register write once it is set).

0: No effect

1: Shadow registers are reloaded during the vertical blanking period (at the beginning of the first line after the active display area).

Bit 0 IMR : Immediate reload trigger

This bit is set by software and cleared only by hardware after reload.

0: No effect

1: Shadow registers are reloaded immediately.

43.7.26 LTDC layer x control register (LTDC_LxCR)

Address offset: 0x10C + 0x100 * (x - 1), (x = 1 to 2)

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.DCBENHMENRes.Res.Res.CLUTENRes.Res.CKENLEN
rwrwrwrwrw

Bits 31:10 Reserved, must be kept at reset value.

Bit 9 DCBEN : Default color blending enable

This bit is set and cleared by software.

0: Blending disabled

1: Blending enabled

Bit 8 HMEN : Horizontal mirroring enable

This bit is set and cleared by software.

0: Mirror disabled

1: Mirror enabled (if so, the color frame buffer start address has to be set to the last byte of the first line, so for instance: if line is 100 pixels, 24 bpp, then address is set to 299)

Bits 7:5 Reserved, must be kept at reset value.

Bit 4 CLUTEN : Color look-up table enable

This bit is set and cleared by software.

0: Color look-up table disabled

1: Color look-up table enabled

The CLUT is only meaningful for L8, AL44 and AL88 pixel format.

Bits 3:2 Reserved, must be kept at reset value.

Bit 1 CKEN : Color keying enable

This bit is set and cleared by software.

Bit 0 LEN : Layer enable

This bit is used to enable/disable the presence of this whole layer. It is set and cleared by software.

43.7.27 LTDC layer x window horizontal position configuration register (LTDC_LxWHPCR)

Address offset: 0x110 + 0x100 * (x - 1), (x = 1 to 2)

Reset value: 0x0000 0000

This register defines the horizontal position (first and last pixel) of the window of layer 1/2.

The first visible pixel of a line is the programmed value of AHBP[11:0] + 1 in LTDC_BPCR.

The last visible pixel of a line is the programmed value of AAW[11:0] in LTDC_AWCR.

31302928272625242322212019181716
Res.Res.Res.Res.WHSPPOS[11:0]
rwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.WHSTPOS[11:0]
rwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:28 Reserved, must be kept at reset value.

Bits 27:16 WHSPPOS[11:0] : Window horizontal stop position

This bitfield configures the last visible pixel of a line of the layer window.

WHSPPOS[11:0] must be \( \geq \) AHBP[11:0] bits + 1 (programmed in LTDC_BPCR).

Bits 15:12 Reserved, must be kept at reset value.

Bits 11:0 WHSTPOS[11:0] : Window horizontal start position

This bitfield configures the first visible pixel of a line of the layer window.

WHSTPOS[11:0] must be \( \leq \) AAW[11:0] bits (programmed in LTDC_AWCR).

43.7.28 LTDC layer x window vertical position configuration register (LTDC_LxWVPCR)

Address offset: \( 0x114 + 0x100 * (x - 1) \) , ( \( x = 1 \) to \( 2 \) )

Reset value: \( 0x0000\ 0000 \)

This register defines the vertical position (first and last line) of the layer 1 or 2 window.

The first visible line of a frame is the programmed value of AVBP[11:0] + 1 in LTDC_BPCR.

The last visible line of a frame is the programmed value of AAH[11:0] in LTDC_AWCR.

31302928272625242322212019181716
Res.Res.Res.Res.WVSPPOS[11:0]
rwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.WVSTPOS[11:0]
rwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:28 Reserved, must be kept at reset value.

Bits 27:16 WVSPPOS[11:0] : Window vertical stop position

This bitfield configures the last visible line of the layer window.

WVSPPOS[11:0] must be \( \geq \) AVBP[11:0] + 1 (programmed in LTDC_BPCR).

Bits 15:12 Reserved, must be kept at reset value.

Bits 11:0 WVSTPOS[11:0] : Window vertical start position

This bitfield configures the first visible line of the layer window.

WVSTPOS[11:0] must be \( \leq \) AAH[11:0] (programmed in LTDC_AWCR).

43.7.29 LTDC layer x color keying configuration register (LTDC_LxCKCR)

Address offset: \( 0x118 + 0x100 * (x - 1) \) , ( \( x = 1 \) to \( 2 \) )

Reset value: \( 0x0000\ 0000 \)

This register defines the color key value (RGB), that is used by the color keying.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.CKRED[7:0]
rwrwrwrwrwrwrwrw
1514131211109876543210
CKGREEN[7:0]CKBLUE[7:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:24 Reserved, must be kept at reset value.

Bits 23:16 CKRED[7:0] : Color key red value

Bits 15:8 CKGREEN[7:0] : Color key green value

Bits 7:0 CKBLUE[7:0] : Color key blue value

43.7.30 LTDC layer x pixel format configuration register (LTDC_LxPFCR)

Address offset: \( 0x11C + 0x100 \times (x - 1) \) , ( \( x = 1 \) to \( 2 \) )

Reset value: 0x0000 0000

This register defines the pixel format that is used for the stored data in the frame buffer of a layer. The pixel data is read from the frame buffer and then transformed to the internal format 8888 (ARGB). When components are provided with less than 8 bits per component, they get expanded to 8 bits by replication of their MSB onto their LSB.

When the Alpha value is not defined in the input pixel format, Alpha is assumed for farther needs to be equal to 255 (opaque layer).

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PF[2:0]
rwrwrw

Bits 31:3 Reserved, must be kept at reset value.

Bits 2:0 PF[2:0] : Pixel format

This bitfield configures the pixel format.

43.7.31 LTDC layer x constant alpha configuration register (LTDC_LxCACR)

Address offset: \( 0x120 + 0x100 \times (x - 1) \) , ( \( x = 1 \) to \( 2 \) )

Reset value: 0x0000 00FF

This register defines the constant alpha value (divided by 255 by hardware), that is used in the alpha blending (see LTDC_LxBFCR).

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.CONSTA[7:0]
rwrwrwrwrwrwrwrw

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 CONSTA[7:0] : Constant alpha

This bitfield configures the constant alpha used for blending. The constant alpha is divided by 255 by hardware.

Example: if the programmed constant alpha is 0xFF, the floating alpha value is \( 255 / 255 = 1 \) .

43.7.32 LTDC layer x default color configuration register (LTDC_LxDCCR)

Address offset: \( 0x124 + 0x100 * (x - 1) \) , ( \( x = 1 \) to \( 2 \) )

Reset value: 0x0000 0000

This register defines the default color of a layer in the format ARGB. The default color is used outside the defined layer window or when a layer is disabled. The reset value of 0x00000000 defines a transparent black color.

31302928272625242322212019181716
DCALPHA[7:0]DCRED[7:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
DCGREEN[7:0]DCBLUE[7:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:24 DCALPHA[7:0] : Default color alpha

This bitfield configures the default alpha value.

Bits 23:16 DCRED[7:0] : Default color red

This bitfield configures the default red value.

Bits 15:8 DCGREEN[7:0] : Default color green

This bitfield configures the default green value.

Bits 7:0 DCBLUE[7:0] : Default color blue

This bitfield configures the default blue value.

43.7.33 LTDC layer x blending factors configuration register (LTDC_LxBFCR)

Address offset: \( 0x128 + 0x100 * (x - 1) \) , ( \( x = 1 \) to \( 2 \) )

Reset value: 0x0000 0607, 0x0001 0607,

This register defines the blending order, and the factors BF1 and BF2. The constant alpha value is the programmed value in LTDC_LxCACR, divided by 255 by hardware.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.BOR
rw
1514131211109876543210
Res.Res.Res.Res.Res.BF1[2:0]Res.Res.Res.Res.Res.BF2[2:0]
rwrwrwrwrwrw

Bits 31:17 Reserved, must be kept at reset value.

Bit 16 BOR : Default order

This bit defines the blending order of the layer. If two layers have the same BOR value, the layer with the highest index is on the foreground.
0: layer set in background
1: layer set in foreground

Bits 15:11 Reserved, must be kept at reset value.

Bits 10:8 BF1[2:0] : Default factor 1

This bitfield selects the blending factor F1.
100: Constant alpha
110: Pixel alpha x constant alpha
Others: Reserved

Bits 7:3 Reserved, must be kept at reset value.

Bits 2:0 BF2[2:0] : Blending factor 2

This bitfield selects the blending factor F2.
101: 1 - constant alpha
111: 1 - (pixel alpha x constant alpha)
Others: Reserved

43.7.34 LTDC layer x burst length configuration register (LTDC_LxBLCR)

Address offset: \( 0x12C + 0x100 * (x - 1) \) , ( \( x = 1 \) to 2)

Reset value: 0x0000 0000

This register defines the length of the bursts requested by layer x.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.BL[4:0]
rwrwrwrwrw

Bits 31:5 Reserved, must be kept at reset value.

Bits 4:0 BL[4:0] : Burst length

0x00: maximum burst length (16 words 64 bits, thus 128 Bytes)
0x01: 1 word (of 64 bits) per burst
0x10: 16 words (of 64 bits) per burst
Others: Reserved

43.7.35 LTDC layer x planar configuration register (LTDC_LxPCR)

Address offset: \( 0x130 + 0x100 * (x - 1) \) , ( \( x = 1 \) to \( 2 \) )

Reset value: 0x0000 0000

This register defines, for layer x, the configuration when accessing planar or semi-planar buffers.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
15141312111098765      43210
Res.Res.Res.Res.Res.Res.YRENOFCBFYFYCM[1:0]YCENRes.Res.Res.
rwrwrwrwrwrw

Bits 31:10 Reserved , must be kept at reset value.

Bit 9 YREN : Y rescale enable for the color dynamic range

When enabled, incoming Y values in range 16 to 235, are re-scaled to range 0 to 255.
0: Rescaling disabled (input component thus assumed provided in 0 to 255)
1: Rescaling enabled (input component thus assumed provided in 16 to 235).

Bit 8 OF : Odd pixel first

This bit defines if the byte 0 of a word (in LSB) contains the odd pixel.
0: Odd pixel disabled (thus even pixel on byte 0)
1: Odd pixel enabled (thus odd pixel on byte 0)

Bit 7 CBF : Cb component first

This bit defines if the byte 0 and 1 of a word (in LSB) contains the Cb component. The setting impacts only for interleaved and semi-planar modes, as it has no meaning in full-planar mode.
0: Cb disabled (thus Cr component is on byte 0 and 1)
1: Cb enabled (thus Cb component is on byte 0 and 1)

Bit 6 YF : Y component first

This bit defines if the byte 0 of a word (in LSB) contains the Y component.
0: Y component disabled (thus Cr or Cb component is on byte 0)
1: Y component enabled (thus Y component is on byte 0)

Bits 5:4 YCM[1:0] : YCbCr conversion mode

This bitfield defines the type of input that is considered and converted to a YCbCr 444.
00: Interleaved 422 (Cb and Cr component are replicated horizontally for pixels P and P+1)
01: Semi-Planar 420: (Cb and Cr component are replicated horizontally and vertically. The layer main configuration defines the access to the Y buffer, and auxiliary registers define the access to the Cb and Cr buffers).
10: Full-Planar 420: (Cb and Cr component are replicated horizontally and vertically. The layer main configuration defines the access to the Y buffer, and auxiliary registers define the access to the Cb and Cr buffers).
11: Reserved

Bit 3 YCEN : YCbCr-to-RGB conversion enable

0: Conversion disabled
1: YCbCr conversion enabled, using the YCM setting above

Bits 2:0 Reserved, must be kept at reset value.

43.7.36 LTDC layer x color frame buffer address register (LTDC_LxCFBAR)

Address offset: \( 0x134 + 0x100 * (x - 1) \) , ( \( x = 1 \) to \( 2 \) )

Reset value: 0x0000 0000

This register defines the color frame buffer start address, which has to point to the address where the pixel data of the top-left pixel of a layer is stored in the frame buffer.

31302928272625242322212019181716
CFBADD[31:16]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
CFBADD[15:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:0 CFBADD[31:0] : Color frame buffer start address

This bitfield defines the color frame buffer start address.

43.7.37 LTDC layer x color frame buffer length register (LTDC_LxCFBLR)

Address offset: \( 0x138 + 0x100 * (x - 1) \) , ( \( x = 1 \) to \( 2 \) )

Reset value: 0x0000 0000

This register defines the color frame buffer line length and pitch.

31302928272625242322212019181716
Res.CFBP[14:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.CFBLL[13:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bit 31 Reserved, must be kept at reset value. Upon reading, this bit returns the value of the bit 30.

Bits 30:16 CFBP[14:0] : Color frame buffer pitch in bytes

This bitfield defines the pitch that is the increment from the start of one line of pixels to the start of the next line in bytes.

Negative values (with MSB bit = 1) are allowed, to read the buffer from bottom to top, and thus to flip it vertically. When vertically flipped, as the address register must provide the address of the first line to be read, the address register must point to the start of the bottom line of the buffer.

Bits 15:14 Reserved, must be kept at reset value.

Bits 13:0 CFBLL[13:0] : Color frame buffer line length

This bitfield defines the length of one line of pixels in bytes + 7.

The line length is computed as follows: active high width * number of bytes per pixel + 7.

43.7.38 LTDC layer x color frame buffer line number register (LTDC_LxCFBLNR)

Address offset: \( 0x13C + 0x100 * (x - 1) \) , ( \( x = 1 \) to \( 2 \) )

Reset value: 0x0000 0000

This register defines the number of lines in the color frame buffer. The number of lines and line-length settings define how much data are fetched per frame for every layer. If it is configured to less bytes than required, a FIFO underrun interrupt is generated if enabled. The start address and pitch settings define the correct start of every line in memory.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.CFBLNBR[11:0]
rwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:12 Reserved, must be kept at reset value.

Bits 11:0 CFBLNBR[11:0] : Frame buffer line number

This bitfield defines the number of lines in the frame buffer that corresponds to the active high width.

43.7.39 LTDC layer 1 auxiliary frame buffer address 0 register (LTDC_L1AFBA0R)

Address offset: 0x140

Reset value: 0x0000 0000

This register defines the start address for the auxiliary 0 frame buffer. It has to point to the address where the pixel data of the top left pixel of a layer is stored in the frame buffer. The auxiliary 0 and 1 frame buffers are for YCbCr semi-planar or full-planar pixel formats: the color frame buffer is used to store the Y components, while the auxiliary buffers 0 and 1 are used to store the other one (for semi-planar) or two (for full-planar) planes of components.

31302928272625242322212019181716
AFBADD0[31:16]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
AFBADD0[15:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:0 AFBADD0[31:0] : Frame buffer start address

This bitfield defines the color frame buffer start address.

43.7.40 LTDC layer 1 auxiliary frame buffer address 1 register (LTDC_L1AFBA1R)

Address offset: 0x144

Reset value: 0x0000 0000

This register defines the start address for the auxiliary 1 frame buffer. It has to point to the address where the pixel data of the top left pixel of a layer is stored in the frame buffer (the auxiliary 0 and 1 frame buffers are for YCbCr semi-planar or full-planar pixel formats).

31302928272625242322212019181716
AFBADD1[31:16]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
AFBADD1[15:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:0 AFBADD1[31:0] : Auxiliary frame buffer start address
This bitfield defines the color frame buffer start address.

43.7.41 LTDC layer 1 auxiliary frame buffer length register (LTDC_L1AFBLR)

Address offset: 0x148

Reset value: 0x0000 0000

This register defines the auxiliary 0 and 1 frame buffer line length and pitch (the auxiliary 0 and 1 frame buffers are for YCbCr semi-planar or full-planar pixel formats).

31302928272625242322212019181716
Res.AFBP[14:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.AFBLL[13:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bit 31 Reserved, must be kept at reset value. Upon reading, this bit returns the value of the bit 30.

Bits 30:16 AFBP[14:0] : Auxiliary frame buffer pitch in bytes

This bitfield defines the pitch that is the increment from the start of one line of pixels to the start of the next line in bytes.

Negative values (with MSB bit = 1) are allowed, to read the buffer from bottom to top, and thus to flip it vertically. When vertically flipped, as the address register must provide the address of the first line to be read, the address register must point to the start of the bottom line of the buffer.

Bits 15:14 Reserved, must be kept at reset value.

Bits 13:0 AFBLL[13:0] : Auxiliary frame buffer line length

This bitfield defines the length of one line of pixels in bytes + 7.

The line length is computed as follows:

active high width * number of bytes per pixel + 7.

43.7.42 LTDC layer 1 auxiliary frame buffer line number register (LTDC_L1AFBLNR)

Address offset: 0x14C

Reset value: 0x0000 0000

This register defines the number of lines in the auxiliary 0 and 1 frame buffers (the auxiliary 0 and 1 frame buffers are for YCbCr semi-planar or full-planar pixel formats). The number of lines and line length settings define how much data is fetched per frame for every layer. If it is configured to less bytes than required, a FIFO underrun interrupt is generated if enabled. The start address and pitch settings define the correct start of every line in memory.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.AFBLNBR[11:0]
rwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:12 Reserved, must be kept at reset value.

Bits 11:0 AFBLNBR[11:0] : Auxiliary frame buffer line number

This bitfield defines the number of lines in the auxiliary frame buffer that corresponds to the active high width.

43.7.43 LTDC layer x CLUT write register (LTDC_LxCLUTWR)

Address offset: 0x150 + 0x100 * (x - 1), (x = 1 to 2)

Reset value: 0x0000 0000

This register defines the CLUT address and the RGB value. The CLUT write register must only be configured during blanking period or if the layer is disabled. The CLUT can be enabled or disabled in LTDC_LxCR. The CLUT is only meaningful for L8, AL44, and AL88 pixel format.

31302928272625242322212019181716
CLUTADD[7:0]RED[7:0]
wwwwwwwwwwwwwwww
1514131211109876543210
GREEN[7:0]BLUE[7:0]
wwwwwwwwwwwwwwww

Bits 31:24 CLUTADD[7:0] : CLUT address

This bitfield configures the CLUT address (color position within the CLUT) of each RGB value.

Bits 23:16 RED[7:0] : Red value

This bitfield configures the red value.

Bits 15:8 GREEN[7:0] : Green value

This bitfield configures the green value.

Bits 7:0 BLUE[7:0] : Blue value

This bitfield configures the blue value.

43.7.44 LTDC layer x conversion YCbCr RGB 0 register (LTDC_LxCYR0R)

Address offset: \( 0x16C + 0x100 * (x - 1) \) , ( \( x = 1 \) to \( 2 \) )

Reset value: 0x0000 0000

This register defines the coefficients to convert from YCbCr to RGB.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.CB2B[9:0]
rwrwrwrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.CR2R[9:0]
rwrwrwrwrwrwrwrwrwrw

Bits 31:26 Reserved, must be kept at reset value.

Bits 25:16 CB2B[9:0] : Cb-to-Blue coefficient, with bits 9:8 as positive integer and 7:0 as decimals.

Bits 15:10 Reserved, must be kept at reset value.

Bits 9:0 CR2R[9:0] : Cr-to-Red coefficient, with bits 9:8 as positive integer and 7:0 as decimals.

43.7.45 LTDC layer x conversion YCbCr RGB 1 register (LTDC_LxCYR1R)

Address offset: \( 0x170 + 0x100 * (x - 1) \) , ( \( x = 1 \) to \( 2 \) )

Reset value: 0x0000 0000

This register defines the coefficients to convert from YCbCr to RGB.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.CB2G[9:0]
rwrwrwrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.CR2G[9:0]
rwrwrwrwrwrwrwrwrwrw

Bits 31:26 Reserved, must be kept at reset value.

Bits 25:16 CB2G[9:0] : Cb-to-Green coefficient, with bits 9:8 as positive integer and 7:0 as decimals.

Bits 15:10 Reserved, must be kept at reset value.

Bits 9:0 CR2G[9:0] : Cr-to-Green coefficient, with bits 9:8 as positive integer and 7:0 as decimals.

43.7.46 LTDC layer x flexible pixel format 0 register (LTDC_LxFPF0R)

Address offset: \( 0x174 + 0x100 * (x - 1) \) , ( \( x = 1 \) to \( 2 \) )

Reset value: \( 0x0002\ 1100 \)

This register is one of the registers that define the flexible color format, by specifying the location and width of all A, R, G, B components in a memory word. Components A and R are defined in this specific register.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.RLEN[3:2]
1514131211109876543210
RLEN[1:0]RPOS[4:0]ALEN[3:0]APOS[4:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:18 Reserved, must be kept at reset value.

Bits 17:14 RLEN[3:0] : Width of the red component (in bits)

Bits 13:9 RPOS[4:0] : Location of the red component inside the pixel memory word (in bits)

Bits 8:5 ALEN[3:0] : Width of the alpha component (in bits)

Bits 4:0 APOS[4:0] : Location of the alpha component inside the pixel memory word (in bits)

43.7.47 LTDC layer x flexible pixel format 1 register (LTDC_LxFPF1R)

Address offset: \( 0x178 + 0x100 * (x - 1) \) , ( \( x = 1 \) to \( 2 \) )

Reset value: \( 0x0012\ 3110 \)

This register is one of the registers that define the flexible color format, by specifying the location and width of all A, R, G, B components in a memory word. Components G and B are defined in this specific register.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PSIZE[2:0]BLEN[3:2]
1514131211109876543210
BLEN[1:0]BPOS[4:0]GLEN[3:0]GPOS[4:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:21 Reserved, must be kept at reset value.

Bits 20:18 PSIZE[2:0] : Pixel size (in bytes)

Bits 17:14 BLEN[3:0] : Width of the blue component (in bits)

Bits 13:9 BPOS[4:0] : Location of the blue component inside the pixel memory word (in bits)

Bits 8:5 GLEN[3:0] : Width of the green component (in bits)

Bits 4:0 GPOS[4:0] : Location of the green component inside the pixel memory word (in bits)

43.7.48 LTDC register map

Table 387. LTDC register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x008LTDC_SSCRResResResResResHSW[11:0]ResResResResVSH[11:0]
Reset value00000000000000000000000
0x00CLTDC_BPCRResResResResResAHBP[11:0]ResResResResAVBP[11:0]
Reset value00000000000000000000000
0x010LTDC_AWCRResResResResResAAW[11:0]ResResResResAAH[11:0]
Reset value00000000000000000000000
0x014LTDC_TWCRResResResResResTOTALW[11:0]ResResResResTOTALH[11:0]
Reset value00000000000000000000000
0x018LTDC_GCRHSPOLVSPOLDEPOLPCPOLResResSFSWTRSFENResResResResCRCENResResDENResDRW[2:0]ResDGW[2:0]ResDBW[2:0]ResResResResGAMENLTDEN
Reset value0000000001001001000
0x024LTDC_SRCRResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResVBRIMR
Reset value00
0x028LTDC_GCCRResResResResResResResResResResResResRENGENBENCOMP[7:0]ADDR[7:0]
Reset value0000000000000000000
0x02CLTDC_BCCRResResResResResResResResResResResResBCRED[7:0]BCGREEN[7:0]BCBLUE[7:0]
Reset value0000000000000000000
0x030ReservedReserved
0x034LTDC_IERResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResRes
Reset value00
0x038LTDC_ISRResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResRes
Reset value00
0x03CLTDC_ICRResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResRes
Reset value00
0x040LTDC_LIPCRResResResResResResResResResResResResResResResResResResResResLIPOS[11:0]
Reset value000000000000
0x044LTDC_CPSRResResResResResResResResResResResResResResResResResResResResCXPOS[11:0]
Reset value000000000000
0x048LTDC_CDSRResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResRes
Reset value00
0x04C-0x05CReservedReserved

Table 387. LTDC register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x060LTDC_EDCRRes.Res.Res.Res.OCYCOOCYSELOCYENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value000
0x064LTDC_IE2RRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CRCIEFUIERes.Res.RRIETERRIEFUWIELIE
Reset value000000
0x068LTDC_ISR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CRCIFFUIFRes.Res.RRIFTERRIFFUWIFLIF
Reset value000000
0x06CLTDC_ICR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CCRCIFCFUIFRes.Res.CRRIFCTERRIFCFUWIFCLIF
Reset value000000
0x070LTDC_LIPCR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.LIPOS[11:0]
Reset value000000000000
0x074ReservedReserved
0x078LTDC_ECRCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.ECRC[15:0]
Reset value0000000000000000
0x07CLTDC_CCRCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CCRC[15:0]
Reset value0000000000000000
0x080-0x08CReservedReserved
0x090LTDC_FUTRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.THRE[15:0]
Reset value0000000000000000
0x094-0x0FCReservedReserved
0x100LTDC_L1C0RARGB8888ABGR8888RGBA8888BGRA8888RGB565BGR565RGB888FFF11PCF1PCF11CF1CF11PF1PF10F11F21PCF2PCF21CF2CF21PF2PF20F21CKRACLUTAWINADCPAPACFBPACFBDACKTA
Reset value11111111010100001010000001110101
0x104LTDC_L1C1RSCARes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.YFPAYSPYIA
Reset value0111
0x108LTDC_L1RCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.GRMSKVBRIMR
Reset value100
0x10CLTDC_L1CRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DCBENHMENRes.Res.Res.CLUTENHPDENVPDENCKENLEN
Reset value0000000
0x110LTDC_L1WHPCRRes.Res.Res.Res.WHSPPOS[11:0]Res.Res.Res.Res.WHSTPOS[11:0]
Reset value000000000000000000000000
0x114LTDC_L1WVPCRRes.Res.Res.Res.WVSPPOS[11:0]Res.Res.Res.Res.WVSTPOS[11:0]
Reset value000000000000000000000000
Table 387. LTDC register map and reset values (continued)
OffsetRegister name313029282726252423222120191817161514131211109876543210
0x118LTDC_L1CKCRRes.Res.Res.Res.Res.Res.Res.Res.CKRED[7:0]CKGREEN[7:0]CKBLUE[7:0]
Reset value000000000000000000000000
0x11CLTDC_L1PFCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PF[2:0]
Reset value000
0x120LTDC_L1CACRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CONSTA[7:0]
Reset value11111111
0x124LTDC_L1DCCRDCALPHA[7:0]DCRED[7:0]DCGREEN[7:0]DCBLUE[7:0]
Reset value00000000000000000000000000000000
0x128LTDC_L1BFCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.BORRes.Res.Res.Res.Res.BF1[2:0]Res.Res.Res.Res.Res.BF2[2:0]
Reset value0110111
0x12CLTDC_L1BLCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.BL[4:0]
Reset value00000
0x130LTDC_L1PCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.YRENOFCBFYFYCM [1:0]YCENRes.Res.Res.
Reset value0000000
0x134LTDC_L1CFBARCFBADD[31:0]
Reset value00000000000000000000000000000000
0x138LTDC_L1CFBLRRes.CFBP[14:0]Res.Res.CFBLL[13:0]
Reset value00000000000000000000000000000
0x13CLTDC_L1CFBLNRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CFBLNBR[11:0]
Reset value000000000000
0x140LTDC_L1AFBA0RAFBADD0[31:0]
Reset value00000000000000000000000000000000
0x144LTDC_L1AFBA1RAFBADD1[31:0]
Reset value00000000000000000000000000000000
0x148LTDC_L1AFBLRRes.AFBP[14:0]Res.Res.AFBLL[13:0]
Reset value00000000000000000000000000000
0x14CLTDC_L1AFBLNRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.AFBLNBR[11:0]
Reset value000000000000
0x150LTDC_L1CLUTWRCLUTADD[7:0]RED[7:0]GREEN[7:0]BLUE[7:0]
Reset value00000000000000000000000000000000
0x154-0x168ReservedReserved
0x16CLTDC_L1CYR0RRes.Res.Res.Res.Res.Res.CB2B[9:0]Res.Res.Res.Res.Res.Res.Res.Res.CR2R[9:0]
Reset value00000000000000000000
0x170LTDC_L1CYR1RRes.Res.Res.Res.Res.Res.CB2G[9:0]Res.Res.Res.Res.Res.Res.Res.Res.CR2G[9:0]
Reset value00000000000000000000
0x174LTDC_L1FPF0RRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.RLEN[3:0]RPOS[4:0]ALEN[3:0]APOS[4:0]
Reset value10000100010000000
0x178LTDC_L1FPF1RRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PSIZE [2:0]BLEN[3:0]BPOS[4:0]GLEN[3:0]GPOS[4:0]
Reset value10010001100010001000

Table 387. LTDC register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x17C-
0x1FC
ReservedReserved
0x200LTDC_L2C0RARG8888ABGR8888RGB8888BGR8888RGB565BGR565RGB888FFF11PCF1PCF11CF1CF11PF1PF10F11F21PCF2PCF21CF2CF21PF2PF20F21CKRAGLUTAWINADCPAPACFBPACFBDACKTA
Reset value11111111010100001010000001110101
0x204LTDC_L2C1RSCARes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.YFPAYSPYIA
Reset value0001
0x208LTDC_L2RCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.GRMSKVBRIMR
Reset value-100
0x20CLTDC_L2CRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DCBENHMENRes.Res.Res.Res.CLUTENHPDENVPDENCKENLEN
Reset value0000000
0x210LTDC_L2WHPERRes.Res.Res.Res.WHSPPOS[11:0]Res.Res.Res.Res.Res.WHSTPOS[11:0]
Reset value00000000000000000000000
0x214LTDC_L2WVPERRes.Res.Res.Res.WVSPPOS[11:0]Res.Res.Res.Res.Res.WVSTPOS[11:0]
Reset value00000000000000000000000
0x218LTDC_L2CKCRRes.Res.Res.Res.Res.Res.Res.Res.CKRED[7:0]CKGREEN[7:0]CKBLUE[7:0]
Reset value00000000000000000000000
0x21CLTDC_L2PFCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PF[2:0]
Reset value000
0x220LTDC_L2CACRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CONSTA[7:0]
Reset value111
0x224LTDC_L2DCCRDCALPHA[7:0]DCRED[7:0]DCGREEN[7:0]DCBLUE[7:0]
Reset value00000000000000000000000000000000
0x228LTDC_L2BFCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.BORRes.Res.Res.Res.Res.Res.BF1[2:0]Res.Res.Res.Res.Res.Res.Res.Res.BF2[2:0]
Reset value0110111
0x22CLTDC_L2BLCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.BL[4:0]
Reset value000
0x230LTDC_L2PCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.YRENOFCBFYFYCM[1:0]YCENRes.Res.Res.Res.
Reset value0000000000
0x234LTDC_L2CFBARCFBADD[31:0]
Reset value00000000000000000000000000000000
0x238LTDC_L2CFBLRRes.CFBP[14:0]Res.Res.CFBLL[13:0]
Reset value00000000000000000000000000000
0x23CLTDC_L2CFBLNRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CFBLNBR[11:0]
Reset value000
0x240-
0x24C
ReservedReserved

Table 387. LTDC register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x250LTDC_L2CLUTWRCLUTADD[7:0]RED[7:0]GREEN[7:0]BLUE[7:0]
Reset value00000000000000000000000000000000
0x254-0x268ReservedReserved
0x26CLTDC_L2CYR0RResResResResResResCB2B[9:0]ResResResResResResCR2R[9:0]
Reset value00000000000000000000
0x270LTDC_L2CYR1RResResResResResResCB2G[9:0]ResResResResResResCR2G[9:0]
Reset value00000000000000000000
0x274LTDC_L2FPF0RResResResResResResResResResResResResResResRLEN[3:0]RPOS[4:0]ALEN[3:0]APOS[4:0]
Reset value100001000100000000
0x278LTDC_L2FPF1RResResResResResResResResResResResResPSIZE[2:0]BLEN[3:0]BPOS[4:0]GLEN[3:0]GPOS[4:0]
Reset value10010001100010001000

Refer to Section 2.3: Memory organization for the register boundary addresses.