30. DSI Host (DSI) applied to STM32L4R9xx and STM32L4S9xx only

30.1 Introduction

Portions Copyright (c) Synopsys, Inc. All rights reserved. Used with permission.

The display serial interface (DSI) is part of a group of communication protocols defined by the MIPI ® Alliance.

The MIPI ® DSI Host controller is a digital core that implements all protocol functions defined in the MIPI ® DSI specification. It provides an interface between the system and the MIPI ® D-PHY, allowing the user to communicate with a DSI-compliant display.

30.2 Standard and references

30.3 DSI Host main features

30.4 DSI Host functional description

30.4.1 General description

The MIPI® DSI Host includes dedicated video interfaces internally connected to the LTDC and a generic APB interface that can be used to transmit information to the display. More in detail:

The block diagram is shown in Figure 203 .

Figure 203. DSI block diagram

DSI block diagram showing internal components like LTDC interface, APB to generic, Video mode pattern generator, Packet handler, D-PHY interface control, Register bank, and Error management connected to DSI pins (DSI_D1P, DSI_D1N, DSI_D0P, DSI_D0N, DSI_CKP, DSI_CKN) and internal signals (RGB, DSI_TE, 32-bit APB bus, ds1_it).

The block diagram illustrates the internal architecture of the DSI Host. On the left, external inputs include RGB and DSI_TE. A 32-bit APB bus connects to a Register bank. The Register bank is linked to an APB to generic block, a Video mode pattern generator, and an Error management block. The APB to generic block connects to a Generic FIFO, which in turn connects to a Packet handler. The LTDC interface block contains LTDC Ctrl FIFO and LTDC Pixel FIFO, which also connect to the Packet handler. The Packet handler is connected to a D-PHY interface control block, which is further connected to a D-PHY block via a PPI (Parallel Peripheral Interface). The D-PHY block outputs to external pins: DSI_D1P, DSI_D1N, DSI_D0P, DSI_D0N, DSI_CKP, and DSI_CKN. An internal signal ds1_it is also shown outputting from the D-PHY block.

DSI block diagram showing internal components like LTDC interface, APB to generic, Video mode pattern generator, Packet handler, D-PHY interface control, Register bank, and Error management connected to DSI pins (DSI_D1P, DSI_D1N, DSI_D0P, DSI_D0N, DSI_CKP, DSI_CKN) and internal signals (RGB, DSI_TE, 32-bit APB bus, ds1_it).

30.4.2 DSI Host pins and internal signals

Table 199 and Table 200 list, respectively, the DSI pins (alternate functions) and the internal input/output signals.

Table 199. DSI pins

Signal nameSignal typeDescription
DSI_D0P/D0NInput/OutputDifferential Data lane 0
DSI_D1P/D1NOutputDifferential Data lane 1

Table 199. DSI pins (continued)

Signal nameSignal typeDescription
DSI_CKP
DSI_CKN
OutputDifferential clock
DSI_TEInputDSI tearing effect pin

Table 200. DSI internal input/output signals

Signal nameSignal typeDescription
dsi_itOutputDSI global interrupt

30.4.3 Supported resolutions and frame rates

The DSI specification does not define supported standard resolutions or frame rates. Display resolution, blanking periods, synchronization events duration, frame rates, and pixel color depth play a fundamental role in the required bandwidth. In addition, other link related attributes can influence the ability of the link to support a DSI-specific device, namely display input buffering capabilities, video transmission mode (burst or non-burst), bus turn-around (BTA) time, concurrent command mode traffic in a video mode transmission, or display device specifics. All these variables make it difficult to define a standard procedure to estimate the minimum lane rate and the minimum number of lanes that support a specific display device.

The basic assumptions for estimates are:

30.4.4 System level architecture

Figure 204 shows the architecture of the DSI Host

Figure 204. DSI Host architecture

Figure 204. DSI Host architecture diagram showing the internal components and their interconnections. The diagram includes an LTDC block connected to a DSI Wrapper, which is then connected to a DSI Host block. The DSI Host block contains several sub-components: LTDC I/F, APB to Generic, Register Bank, Packet Handler, D-PHY I/F, and Error Management. The DSI Host is connected to a D-PHY block, which is further connected to a Regulator and a PLL. The D-PHY block has multiple output lanes labeled DATAP1, DATAN1, DATAP0, DATAN0, CLKP, and CLKN. The LTDC block is also connected to the DSI Wrapper via Ctrl, RGB, and APB signals. The DSI Wrapper is connected to the DSI Host via RGB and APB signals. The DSI Host is connected to the D-PHY via a PPI signal. The Regulator and PLL are connected to the DSI Host via a common power supply line.
Figure 204. DSI Host architecture diagram showing the internal components and their interconnections. The diagram includes an LTDC block connected to a DSI Wrapper, which is then connected to a DSI Host block. The DSI Host block contains several sub-components: LTDC I/F, APB to Generic, Register Bank, Packet Handler, D-PHY I/F, and Error Management. The DSI Host is connected to a D-PHY block, which is further connected to a Regulator and a PLL. The D-PHY block has multiple output lanes labeled DATAP1, DATAN1, DATAP0, DATAN0, CLKP, and CLKN. The LTDC block is also connected to the DSI Wrapper via Ctrl, RGB, and APB signals. The DSI Wrapper is connected to the DSI Host via RGB and APB signals. The DSI Host is connected to the D-PHY via a PPI signal. The Regulator and PLL are connected to the DSI Host via a common power supply line.

The different parts have the following functions:

long or short packet generating correspondent ECC and CRC codes. This block also performs the following functions:

30.5 Functional description: video mode on LTDC interface

The LTDC interface captures the data and control signals and conveys them to the FIFO interfaces that transmit them to the DSI link.

Two different streams of data are present at the interface, namely video control signals and pixel data. Depending on the interface color coding, the pixel data is disposed differently throughout the LTDC bus.

Interface pixel color coding is summarized in Table 201 .

Table 201. Location of color components in the LTDC interface

Location16-bit18-bit24-bit
Config 1Config 2Config 3Config 1Config 2
D23-----R[7]
D22-----R[6]
D21--R[4]-R[5]R[5]
D20-R[4]R[3]-R[4]R[4]
D19-R[3]R[2]-R[3]R[3]
D18-R[2]R[1]-R[2]R[2]
D17-R[1]R[0]R[5]R[1]R[1]
D16-R[0]-R[4]R[0]R[0]
D15R[4]--R[3]-G[7]
D14R[3]--R[2]-G[6]
D13R[2]G[5]G[5]R[1]G[5]G[5]
D12R[1]G[4]G[4]R[0]G[4]G[4]
D11R[0]G[3]G[3]G[5]G[3]G[3]
D10G[5]G[2]G[2]G[4]G[2]G[2]
D9G[4]G[1]G[1]G[3]G[1]G[1]
D8G[3]G[0]G[0]G[2]G[0]G[0]
D7G[2]--G[1]-B[7]
D6G[1]--G[0]-B[6]
D5G[0]-B[4]B[5]B[5]B[5]
D4B[4]B[4]B[3]B[4]B[4]B[4]
D3B[3]B[3]B[2]B[3]B[3]B[3]
D2B[2]B[2]B[1]B[2]B[2]B[2]
D1B[1]B[1]B[0]B[1]B[1]B[1]
D0B[0]B[0]-B[0]B[0]B[0]

The LTDC interface can be configured to increase flexibility and promote correct use of this interface for several systems. The following configuration options are available:

For SHTDN and COLM sampling and transmission, the video streaming from the LTDC must be active. This means that if the LTDC is not actively generating the video signals like VSYNC and HSYNC, these signals are not transmitted through the DSI link. Because of such constraints and for commands to be correctly transmitted, the first VSYNC active pulse must occur for the command sampling and transmission. When shutting down the display, it is necessary for the LTDC to be kept active for one frame after the command being issued. This ensures that the commands are correctly transmitted before actually disabling the video generation at the LTDC interface.

The SHTDN and COLM values can be programmed in the DSI Wrapper control register (DSI_WCR).

For all of the data types, one entire pixel is received per each clock cycle. The number of pixels of payload is restricted to a multiple of a value, as shown in Table 202 .

Table 202. Multiplicity of the payload size in pixels for each data type

ValueData types
116-bit
18-bit loosely packed
24-bit
2Loosely packed pixel stream
418-bit non-loosely packed

30.5.1 Video transmission mode

There are different video transmission modes, namely:

Burst mode

In this mode, the entire active pixel line is buffered into a FIFO and transmitted in a single packet with no interruptions. This transmission mode requires that the DPI pixel FIFO has the capacity to store a full line of active pixel data inside it. This mode is optimally used when the difference between the pixel required bandwidth and DSI link bandwidth is significant, it enables the DSI Host to quickly dispatch the entire active video line in a single burst of data and then return to low-power mode.

Non-burst mode

In this mode, the processor uses the partitioning properties of the DSI Host to divide the video line transmission into several DSI packets. This is done to match the pixel required bandwidth with the DSI link bandwidth. With this mode, the controller configuration does not require a full line of pixel data to be stored inside the LTDC interface pixel FIFO. It requires only the content of one video packet.

Guidelines for selecting the burst or non-burst mode

Selecting the burst and non-burst mode is mainly dependent on the system configuration and the device requirements. Choose the video transmission mode that suits the application scenario. The burst mode is more beneficial because it increases the probability of the link spending more time in the low-power mode, decreasing power consumption. The following conditions must be met to get the maximum benefits from the burst mode of operation:

If the system cannot meet these requirements, it is likely that the pixel data is lost causing the malfunctioning of the display device while using the burst mode. These errors are related to the capabilities of the system to store the temporary pixel data.

If all the conditions for using the burst mode cannot be met, use the non-burst mode to avoid errors. The non-burst mode provides a better matching of rates for pixel transmission, enabling:

The DSI non-burst mode must be configured so that the DSI output pixel ratio matches with the LTDC interface input pixel ratio, reducing the memory requirements on both host and/or device side. This is achieved by dividing a pixel line into several chunks of pixels and optionally interleaving them with null packets.

The following equations show how the DSI Host core transmission parameters must be programmed in non-burst mode to match the DSI link pixel output ratio (left hand side of the “=” sign) and LTDC interface pixel input (right hand side of the “=” sign).

When the null packets are enabled:

\[ \text{lanebyteclkperiod} * \text{NUMC} (\text{VPSIZE} * \text{bytes\_per\_pixel} + 12 + \text{NPSIZE}) / \text{number\_of\_lanes} \\ = \text{pixels\_per\_line} * \text{LTDC\_Clock\_period} \]

When the null packets are disabled:

\[ \text{lanebyteclkperiod} * \text{NUMC} (\text{VPSIZE} * \text{bytes\_per\_pixel} + 6) / \text{number\_of\_lanes} \\ = \text{pixels\_per\_line} * \text{LTDC\_Clock\_period} \]

30.5.2 Updating the LTDC interface configuration in video mode

It is possible to update the LTDC interface configuration on the fly without impacting the current frame. It is done with the help of shadow registers. This feature is controlled by the DSI Host video shadow control register (DSI_VSCR).

The new configuration is only used when the system requests for it. To update the video configuration during the transmission of a video frame, the configuration of that frame needs to be stored in the auxiliary registers. This way, the new frame configurations can be set through the APB interface without corrupting the current frame.

By default, this feature is disabled. To enable this feature, set the enable (EN) bit of the DSI Host video shadow control register (DSI_VSCR) to 1.

When this feature is enabled, the system supplies the configuration stored in the auxiliary registers.

Figure 205 shows the necessary steps to update the LTDC interface configuration.

Figure 205. Flow to update the LTDC interface configuration using shadow registers

Flowchart illustrating the steps to update the LTDC interface configuration using shadow registers. The process starts with 'Configure the LTDC interface', which leads to 'Request update'. 'Request update' leads to 'Read DSI Host LTDC shadow control register'. From this register, a decision 'UR' is made. If 'Active', it loops back to 'Read DSI Host LTDC shadow control register'. If 'Accepted', it leads to 'Start video engine', which leads to 'New resolution', which loops back to 'Configure the LTDC interface'.
graph TD
    A[Configure the LTDC interface] --> B[Request update]
    B --> C[Read DSI Host LTDC shadow control register]
    C --> D{UR}
    D -- Active --> C
    D -- Accepted --> E[Start video engine]
    E --> F[New resolution]
    F --> A
  

MSV35855V1

Flowchart illustrating the steps to update the LTDC interface configuration using shadow registers. The process starts with 'Configure the LTDC interface', which leads to 'Request update'. 'Request update' leads to 'Read DSI Host LTDC shadow control register'. From this register, a decision 'UR' is made. If 'Active', it loops back to 'Read DSI Host LTDC shadow control register'. If 'Accepted', it leads to 'Start video engine', which leads to 'New resolution', which loops back to 'Configure the LTDC interface'.

Immediate update

When the shadow register feature is active, the auxiliary registers requires the LTDC configuration before the video engine starts. This means that, after a reset, update register (UR) bit is immediately granted.

When it is required to immediately update the active registers without the reset (as in Figure 206 ), ensure that the enable (EN) and update register (UR) bits of the DSI Host video shadow control register (DSI_VSCR) are set to 0.

Figure 206. Immediate update procedure

Diagram illustrating the immediate update procedure. It shows two states of the DSI Host. The initial state contains 'Default DPI Config', 'EN=0', and 'UR=0'. An arrow labeled 'DPI CONFIG 1' points to this state. A transition arrow labeled 'Video Shadow Update' leads to the final state, which contains 'DPI Config 1', 'EN=1', and 'UR=1'. A small code 'MSv35856V2' is in the bottom right corner.
Diagram illustrating the immediate update procedure. It shows two states of the DSI Host. The initial state contains 'Default DPI Config', 'EN=0', and 'UR=0'. An arrow labeled 'DPI CONFIG 1' points to this state. A transition arrow labeled 'Video Shadow Update' leads to the final state, which contains 'DPI Config 1', 'EN=1', and 'UR=1'. A small code 'MSv35856V2' is in the bottom right corner.

Updating the configuration during the transmission of a frame using APB

To update the LTDC interface configuration, follow the steps shown in Figure 207 :

  1. 1. Ensure that the enable (EN) bit of the DSI Host video shadow control register (DSI_VSCR) register is set to 1.
  2. 2. Set the update register (UR) bit of DSI Host video shadow control register (DSI_VSCR) to 1.
  3. 3. Monitor the update register (UR) bit. This bit is set to 0 when the update is complete.

Figure 207. Configuration update during the transmission of a frame

Diagram illustrating the configuration update during the transmission of a frame. The initial state contains 'Default DPI Config', 'EN=1', and 'UR=0'. An arrow labeled 'DPI CONFIG 1' points to this state. A transition arrow labeled 'Video Shadow Request' leads to the final state, which contains 'DPI Config 1', 'EN=1', and 'UR=1'. A small code 'MSv35857V2' is in the bottom right corner.
Diagram illustrating the configuration update during the transmission of a frame. The initial state contains 'Default DPI Config', 'EN=1', and 'UR=0'. An arrow labeled 'DPI CONFIG 1' points to this state. A transition arrow labeled 'Video Shadow Request' leads to the final state, which contains 'DPI Config 1', 'EN=1', and 'UR=1'. A small code 'MSv35857V2' is in the bottom right corner.

Requesting a configuration update

It is possible to request for the LTDC interface configuration update at any part of the frame. DSI Host waits until the end of the frame to change the configuration. However, avoid sending the update request during the first line of the frame because the data must propagate between clock domains.

30.6 Functional description: adapted command mode on LTDC interface

The adapted command mode, enables the system to input a stream of pixel from the LTDC that is conveyed by DSI Host using the command mode transmission (using the DCS packets). The adapted command mode also supports pixel input control rate signaling and tearing effect report mechanism.

The adapted command mode makes it possible to send large amounts of data through the memory_write_start (WMS) and memory_write_continue (WMC) DCS commands. It helps in delivering a wider data bandwidth for the memory write operations sent in command mode to MIPI® displays and to refresh large areas of pixels in high resolution displays. If additional commands such as display configuration commands, read back commands, and tearing effect initialization are to be transferred, then the APB slave generic interface must be used to complement the adapted command mode functionality.

Adapted command mode of operation supports 16 bpp, 18 bpp, and 24 bpp RGB.

To transmit the image data in adapted command mode:

To transmit the image data, follow these steps:

Figure 208 shows the adapted command mode usage flow.

Figure 208. Adapted command mode usage flow

Sequence diagram showing the adapted command mode usage flow between a Video engine, a DSI controller, and a Display. The Video engine sends genIF: set_column_address and genIF: set_page_address to the DSI controller, which then sends DCS: set_column_address and DCS: set_page_address to the Display. The Video engine also sends LTDCIF: vsync = 1, dpidataen = 1 to the DSI controller, which then sends DCS: write_memory_start to the Display. The Video engine sends LTDCIF: vsync = 0, dpidataen = 0 to the DSI controller, which then sends DCS: write_memory_continue1, DCS: write_memory_continue2, and DCS: write_memory_continue3 to the Display.
sequenceDiagram
    participant VE as Video engine
    participant DC as DSI controller
    participant D as Display
    Note left of VE: 
    VE->>DC: genIF: set_column_address
    DC->>D: DCS: set_column_address
    Note left of VE: 
    VE->>DC: genIF: set_page_address
    DC->>D: DCS: set_page_address
    Note left of VE: 
    VE->>DC: LTDCIF: vsync = 1, dpidataen = 1
    DC->>D: DCS: write_memory_start
    Note left of VE: 
    VE->>DC: LTDCIF: vsync = 0, dpidataen = 0
    DC->>D: DCS: write_memory_continue1
    DC->>D: DCS: write_memory_continue2
    DC->>D: DCS: write_memory_continue3
    Note right of D: MSv35860V1
  
Sequence diagram showing the adapted command mode usage flow between a Video engine, a DSI controller, and a Display. The Video engine sends genIF: set_column_address and genIF: set_page_address to the DSI controller, which then sends DCS: set_column_address and DCS: set_page_address to the Display. The Video engine also sends LTDCIF: vsync = 1, dpidataen = 1 to the DSI controller, which then sends DCS: write_memory_start to the Display. The Video engine sends LTDCIF: vsync = 0, dpidataen = 0 to the DSI controller, which then sends DCS: write_memory_continue1, DCS: write_memory_continue2, and DCS: write_memory_continue3 to the Display.

When the command mode (CMDM) bit of the DSI Host mode configuration register (DSI_CFGR) is set to 1, the LTDC interface assume the behavior corresponding to the adapted command mode.

In this mode, the host processor can use the LTDC interface to transmit a continuous stream of pixels to be written in the local frame buffer of the peripheral. It uses a pixel input bus to receive the pixels and controls the flow automatically to limit the stream of continuous pixels. When the first pixel is received, the current value of the command size (CMDSIZE) field of the DSI Host LTDC command configuration register (DSI_LCCR), is shadowed to the internal interface function. The interface increments a counter on every valid pixel that is input through the interface. When this pixel counter reaches command size (CMDSIZE), a command is written into the command FIFO and the packet is ready to be transmitted through the DSI link.

If the last pixel arrives before the counter reaches the value of shadowed command size (CMDSIZE), a WMS command is issued to the command FIFO with word count (WC) set to the amount of bytes corresponding to the value of the counter. If more than CMDSIZE pixels are received (shadowed value), a WMS command is sent to the command FIFO with WC set to the number of bytes corresponding to the command size (CMDSIZE) and the counter is restarted.

After the first WMS command has been written to the FIFO, the circuit behaves in a similar way, but issues WMC commands instead of WMS commands. The process is repeated until the last pixel of the image is received. The core automatically starts sending a new packet

when the last pixel of the image is received, falls or command size (CMDSIZE) limit is reached.

Synchronization with the LTDC

The DSI Wrapper performs the synchronization of the transfer process by:

The transfer to refresh the display frame buffer can be triggered

The selection between manual and automatic mode is done through the automatic refresh (AR) bit of the DSI Wrapper configuration register (DSI_WCFGR).

Once the transfer of one frame is done whatever in manual or automatic refresh mode, the DSI Wrapper is halting the TFT display controller (LTDC) resetting the LTDC enable (LTDCEN) bit of the DSI Wrapper control register (DSI_WCR) and set the end of refresh interrupt flag (ERIF) flag of the DSI Wrapper status register (DSI_WSR). If the end of refresh interrupt enable (ERIE) bit of the DSI Wrapper configuration register (DSI_WCFGR) is set, an interrupt is generated.

The end of refresh interrupt flag (ERIF) flag of the DSI Wrapper status register (DSI_WSR) can be reset setting the clear end of refresh interrupt flag (CERIF) bit of the DSI Wrapper clear interrupt flag register (DSI_WCIFR).

The halting of the TFT display controller (LTDC) by the DSI Wrapper is done synchronously on a rising edge or a falling edge of VSync according to the VSync polarity (VSPOL) bit of the DSI Wrapper configuration register (DSI_WCFGR).

Support of tearing effect

The DSI specification supports tearing effect function in command mode displays. It enables the Host processor to receive timing accurate information about where the display peripheral is in the process of reading the content of its frame buffer.

The tearing effect can be managed through

Tearing effect through a GPIO

When the tearing effect source (TESRC) bit of the DSI Wrapper configuration register (DSI_WCFGR) is set, the tearing effect is signaled through a GPIO.

The polarity of the input signal can be configured by the tearing effect polarity (TEPOL) bit of the DSI Wrapper configuration register (DSI_WCFGR).

When the programmed edge is detected, the tearing effect interrupt flag (TEIF) bit of the DSI Wrapper interrupt and status register (DSI_WISR) is set.

If the tearing effect interrupt enable (TEIE) bit of the DSI Wrapper interrupt enable register (DSI_WIER) is set, an interrupt is generated.

When the TESRC bit of the DSI Wrapper configuration register (DSI_WCFGR) is reset, the tearing effect is managed through the DSI link:

The DSI Host performs a double bus turn-around (BTA) after sending the set_tear_on command granting the ownership of the link to the DSI display. The display holds the ownership of the bus until the tear event occurs, which is indicated to the DSI Host by a D-PHY trigger event. The DSI Host then decodes the trigger and reports the event setting the tearing effect interrupt flag (TEIF) bit of the DSI Wrapper interrupt and status register (DSI_WISR).

If the tearing effect interrupt enable (TEIE) bit of the DSI Wrapper interrupt enable register (DSI_WIER) is set, an interrupt is generated.

To use this function, it is necessary to issue a set_tear_on command after the update of the display using the WMS and WMC DCS commands. This procedure halts the DSI link until the display is ready to receive a new frame update.

The DSI Host does not automatically generate the tearing effect request (double BTA) after a WMS/WMC sequence for flexibility purposes, so several regions of the display can be updated improving DSI bandwidth usage. Tearing effect request must always be triggered by a set_tear_on command in the DSI Host implementation.

Configure the following registers to activate the tearing effect:

30.7 Functional description: APB slave generic interface

The APB slave interface allows the transmission of generic information in command mode, and follows a proprietary register interface. Commands sent through this interface are not constrained to comply with the DCS specification, and can include generic commands described in the DSI specification as manufacturer-specific.

The DSI Host supports the transmission of write and read command mode packets as described in the DSI specification. These packets are built using the APB register access. The DSI Host generic payload data register (DSI_GPDR) has two distinct functions based on the operation. Writing to this register sends the data as payload when sending a command mode packet. Reading this register returns the payload of a read back operation. The DSI Host generic header configuration register (DSI_GHCR) contains the command mode packet header type and header data. Writing to this register triggers the transmission of the packet implying that for a long command mode packet, the packet payload needs to be written in advance in the DSI Host generic payload data register (DSI_GPDR).

The valid packets that can be transmitted through the generic interface are the following:

A set of bits in the DSI Host generic packet status register (DSI_GPSR) reports the status of the FIFO associated with APB interface support.

Generic interface packets are always transported using one of the DSI transmission modes, i.e. video mode or command mode. If neither of these modes is selected, the packets are not transmitted through the link and the related FIFO eventually becomes overflowed.

30.7.1 Packet transmission using the generic interface

The transfer of packets through the APB bus is based on the following conditions:

In this formula, the number 32 represents the APB data bus width, and the division by two is present because each APB write procedure takes two clock cycles to be executed.

To drive the APB interface to achieve high bandwidth command mode traffic transported by the DSI link, the DSI Host must operate in the command mode only and the APB interface must be the only data source that is currently in use. Thus, the APB interface has the entire bandwidth of the DSI link and does not share it with any another input interface source.

The memory write commands require maximum throughput from the APB interface, because they contain the most amount of data conveyed by the DSI link. While writing the packet information, first write the payload of a given packet into the payload FIFO using the DSI Host generic payload data register (DSI_GPCR). When the payload data is for the command parameters, place the first byte to be transmitted in the least significant byte position of the APB data bus.

After writing the payload, write the packet header into the command FIFO. For more information about the packet header organization on the 32-bit APB data bus, so that it is correctly stored inside the command FIFO.

When the payload data is for a memory write command, it contains pixel information and it must follow the pixel to byte conversion organization referred in the Annexe A of the DCS specification.

Figures 209 to 213 show how the pixel data must be organized in the APB data write bus.

The memory write commands are conveyed in DCS long packets, encapsulated in a DSI packet. The DSI specifies that the DCS command must be present in the first payload byte of the packet. This is also included in the diagrams. In figures 209 to 213, the write memory command can be replaced by the DCS command write memory Start and write memory Continue .

Figure 209. 24 bpp APB pixel to byte organization

Diagram showing the 24 bpp APB pixel to byte organization. It illustrates five rows of pixel data (pwdata(0) to pwdata(4)) across a 32-bit bus, divided into four 8-bit segments. Each row contains four 8-bit color components (R, G, B) in a specific interleaved order. A legend on the right shows the color mapping for a single pixel: R0 (Red), G0 (Green), and B0 (Blue).

The diagram illustrates the organization of pixel data on the APB data bus for a 24-bit per pixel (bpp) format. The bus width is 32 bits, divided into four 8-bit segments. The data is organized into five rows (pwdata(0) to pwdata(4)). Each row contains four 8-bit color components (R, G, B) in a specific interleaved order. The color mapping for a single pixel is shown on the right: R0 (Red), G0 (Green), and B0 (Blue).

RowSegment 1 (Bits 31-24)Segment 2 (Bits 23-16)Segment 3 (Bits 15-8)Segment 4 (Bits 7-0)
pwdata(0)B0[7:0]G0[7:0]R0[7:0]Write_mem Command
pwdata(1)R2[7:0]B1[7:0]G1[7:0]R1[7:0]
pwdata(2)G3[7:0]R3[7:0]B2[7:0]G2[7:0]
pwdata(3)B4[7:0]G4[7:0]R4[7:0]B3[7:0]
pwdata(4)R6[7:0]B5[7:0]G5[7:0]R5[7:0]

Pixel 24 bpp color mapping:

MSv35861V1

Diagram showing the 24 bpp APB pixel to byte organization. It illustrates five rows of pixel data (pwdata(0) to pwdata(4)) across a 32-bit bus, divided into four 8-bit segments. Each row contains four 8-bit color components (R, G, B) in a specific interleaved order. A legend on the right shows the color mapping for a single pixel: R0 (Red), G0 (Green), and B0 (Blue).

Figure 210. 18 bpp APB pixel to byte organization

Figure 210: 18 bpp APB pixel to byte organization diagram showing the mapping of 18-bit pixel data to 32-bit APB words across five rows (pwdata(0) to pwdata(4)).

Figure 210 illustrates the 18 bpp APB pixel to byte organization. The diagram shows a 32-bit word structure [31 ..... 0] divided into four 8-bit segments. The data is organized into five rows (pwdata(0) to pwdata(4)), each containing a sequence of color components and a 'Write_mem Command'.

The color components are mapped as follows (from MSB to LSB):

On the right side, a 'Pixel 18 bpp' summary shows the color components for a single pixel: R0 [5:0], G0 [5:0], and B0 [5:0]. The diagram is labeled MSv35862V1.

Figure 210: 18 bpp APB pixel to byte organization diagram showing the mapping of 18-bit pixel data to 32-bit APB words across five rows (pwdata(0) to pwdata(4)).

Figure 211. 16 bpp APB pixel to byte organization

Figure 211: 16 bpp APB pixel to byte organization diagram showing the mapping of 16-bit pixel data to 32-bit APB words across four rows (pwdata(0) to pwdata(3)).

Figure 211 illustrates the 16 bpp APB pixel to byte organization. The diagram shows a 32-bit word structure [31 ..... 0] divided into four 8-bit segments. The data is organized into four rows (pwdata(0) to pwdata(3)).

The color components are mapped as follows (from MSB to LSB):

On the right side, a 'Pixel 16 bpp' summary shows the color components for a single pixel: R0 [4:0], G0 [5:0], and B0 [4:0]. The diagram is labeled MSv35863V1.

Figure 211: 16 bpp APB pixel to byte organization diagram showing the mapping of 16-bit pixel data to 32-bit APB words across four rows (pwdata(0) to pwdata(3)).

Figure 212. 12 bpp APB pixel to byte organization

Diagram showing 12 bpp APB pixel to byte organization with four rows of pixel data (pwdata(0) to pwdata(3)) and their corresponding pixel components (R, G, B) with bit widths.

The diagram illustrates the organization of 12 bpp APB pixel data across four rows (pwdata(0) to pwdata(3)). Each row contains 8 bytes, with a 'Write_mem Command' at the end of the first row. The data is organized into 4-bit nibbles (R, G, B) as shown in the following table:

RowByte 0Byte 1Byte 2Byte 3Byte 4Byte 5Byte 6Byte 7Byte 8Byte 9Byte 10Byte 11Byte 12Byte 13Byte 14Byte 15
pwdata(0)G1 [3:0]B1 [3:0]B0 [3:0]R1 [3:0]R0 [3:0]G0 [3:0]Write_mem Command
pwdata(1)R4 [3:0]G4 [3:0]G3 [3:0]B3 [3:0]B2 [3:0]R3 [3:0]R2 [3:0]G2 [3:0]
pwdata(2)B6 [3:0]R7 [3:0]R6 [3:0]G6 [3:0]G5 [3:0]B5 [3:0]B4 [3:0]R5 [3:0]
pwdata(3)G9 [3:0]B9 [3:0]B8 [3:0]R9 [3:0]R8 [3:0]G8 [3:0]G7 [3:0]B7 [3:0]

Pixel 12 bpp components: R0 [3:0], G0 [3:0], B0 [3:0]. MSv35864V1

Diagram showing 12 bpp APB pixel to byte organization with four rows of pixel data (pwdata(0) to pwdata(3)) and their corresponding pixel components (R, G, B) with bit widths.

Figure 213. 8 bpp APB pixel to byte organization

Diagram showing 8 bpp APB pixel to byte organization with three rows of pixel data (pwdata(0) to pwdata(2)) and their corresponding pixel components (R, G, B) with bit widths.

The diagram illustrates the organization of 8 bpp APB pixel data across three rows (pwdata(0) to pwdata(2)). Each row contains 12 bytes, with a 'Write_mem Command' at the end of the first row. The data is organized into 4-bit nibbles (R, G, B) as shown in the following table:

RowByte 0Byte 1Byte 2Byte 3Byte 4Byte 5Byte 6Byte 7Byte 8Byte 9Byte 10Byte 11Byte 12Byte 13Byte 14Byte 15
pwdata(0)R2 [2:0]G2 [2:0]B2 [1:0]R1 [2:0]G1 [2:0]B1 [1:0]R0 [2:0]G0 [2:0]B0 [1:0]Write_mem Command
pwdata(1)R6 [2:0]G6 [2:0]B6 [1:0]R5 [2:0]G5 [2:0]B5 [1:0]R4 [2:0]G4 [2:0]B4 [1:0]R3 [2:0]G3 [2:0]B3 [1:0]
pwdata(2)R10 [2:0]G10 [2:0]B10 [1:0]R9 [2:0]G9 [2:0]B9 [1:0]R8 [2:0]G8 [2:0]B8 [1:0]R7 [2:0]G7 [2:0]B7 [1:0]

Pixel 8 bpp components: R0 [2:0], G0 [2:0], B0 [1:0]. MSv35865V1

Diagram showing 8 bpp APB pixel to byte organization with three rows of pixel data (pwdata(0) to pwdata(2)) and their corresponding pixel components (R, G, B) with bit widths.

30.8 Functional description: timeout counters

The DSI Host includes counters to manage timeout during the various communication phases. The duration of each timeout can be configured by the six timeout counter configuration registers (DSI_TCCR0...5).

There are two types of counters:

30.8.1 Contention error detection timeout counters

The DSI Host implements a set of counters and conditions to notify the errors. It features a set of registers to control the timers used to determine if a timeout has occurred, and also contains a set of interruption status registers that are cleared upon a read operation (detailed in Table 203 ). Optionally, these registers also trigger an interrupt signal that can be used by the system to be activated when an error occurs within the DSI connection.

Table 203. Contention detection timeout counters configuration

Timeout counterValue registerValue fieldFlag registerFlag field
High-speed transmissionDSI_TCCR0TOHSTXDSI_ISR1TOHSTX
Low-power receptionDSI_TCCR0TOLPRXDSI_ISR1TOLPRX

Time units for these 16-bit counters are configured in cycles defined in the timeout clock division (TOCKDIV) field in the DSI Host clock control register (DSI_CCR).

The value written to the timeout clock division (TOCKDIV) field in the DSI Host clock control register (DSI_CCR) defines the time unit for the timeout limits using the lane byte clock as input.

This mechanism increases the range to define these limits.

High-speed transmission contention detection

The timeout duration is configured in the high-speed transmission timeout count (HSTX_TOCNT) field of the DSI Host timeout counter configuration register 1 (DSI_TCCR0). A 16-bit counter measures the time during which the high-speed mode is active.

If that counter reaches the value defined by the high-speed transmission timeout count (HSTX_TOCNT) field of the DSI Host timeout counter configuration register 1 (DSI_TCCR0), the timeout high-speed transmission (TOHSTX) bit in the DSI Host interrupt and status register 1 (DSI_ISR1) is asserted and an internal soft reset is generated to the DSI Host.

If the timeout high-speed transmission interrupt enable (TOHSTXIE) bit of the DSI Host interrupt enable register 1 (DSI_IER1) is set, an interrupt is generated.

Low-power reception contention detection

The timeout is configured in the low-power reception timeout counter (LPRX_TOCNT) field of the DSI Host timeout counter configuration register 1 (DSI_TCCR1). A 16-bit counter measures the time during which the low-power reception is active.

If that counter reaches the value defined by the low-power reception timeout counter (LPRX_TOCNT) field of the DSI Host timeout counter configuration register 1 (DSI_TCCR0), the timeout low-power reception (TOLPRX) bit in the DSI Host interrupt and status register 1 (DSI_ISR1) is asserted and an internal soft reset is generated to the DSI Host.

If the timeout low-power reception interrupt enable (TOLPRXIE) bit of the DSI Host interrupt enable register 1 (DSI_IER1) is set, an interrupt is generated. Once the software gets notified by the interrupt, it must reset the D-PHY by de-asserting and asserting the Digital enable (DEN) bit of the DSI Host PHY control register (DSI_PCTLR).

30.8.2 Peripheral response timeout counters

A peripheral may not immediately respond correctly to some received packets. For example, a peripheral receives a read request, but due to its architecture cannot access the RAM for a while (e.g. the panel is being refreshed and takes some time to respond). In this case, set a timeout to ensure that the host waits long enough so that the device is able to process the previous data before receiving the new data or responding correctly to new requests.

Table 204 lists the events belonging to various categories having an associated timeout for peripheral response.

Table 204. List of events of different categories of the PRESP_TO counter

CategoryEvent
Items implying a BTA PRESP_TOBus-turn-around
READ requests indicating a PRESP_TO (replicated for HS and LP)(0x04) Generic read, no parameters short
(0x14) Generic read, 1 parameter short
(0x24) Generic read, 2 parameters short
(0x06) DCS read, no parameters short
WRITE requests indicating a PRESP_TO (replicated for HS and LP)(0x03) Generic short write, no parameters short
(0x13) Generic short write, 1 parameter short
(0x23) Generic short write, 2 parameters short
(0x29) Generic long write long
(0x05) DCS short write, no parameters short
(0x15) DCS short write, 1 parameter short
(0x39) DCS long write/write_LUT, command packet long
(0x37) Set maximum return packet size

The DSI Host ensures that, on sending an event that triggers a timeout, the D-PHY switches to the Stop state and a counter starts running until it reaches the value of that timeout. The link remains in the LP-11 state and unused until the timeout ends, even if there are other events ready to be transmitted.

Figures 214 to 216 illustrate the flow of counting in the PRESP_TO counter for the three categories listed in Table 204 .

Figure 214. Timing of PRESP_TO after a bus-turn-around

Timing diagram showing Host and Device interaction with BTA, Ack Trigger, LP-11, and PRESP_TO signals.

The diagram illustrates the timing of a PRESP_TO (Pre-emption Timeout) after a bus-turn-around (BTA) between a Host and a Device. The sequence of events is as follows:

The diagram also includes a label "PRESP_TO" on the Device side, indicating the timeout period. The source code "MSV35866V1" is visible in the bottom right corner.

Timing diagram showing Host and Device interaction with BTA, Ack Trigger, LP-11, and PRESP_TO signals.

Figure 215. Timing of PRESP_TO after a read request (HS or LP)

Sequence diagram showing the timing of PRESP_TO after a read request between a Host and a Device.

The diagram illustrates the timing of the PRESP_TO (Pre-Response Timeout) after a read request. It features two vertical lifelines: Host and Device. The sequence of events is as follows: 1. The Host sends a 'READ Request' to the Device. 2. Simultaneously, the Host enters the LP-11 state, indicated by a dashed self-loop arrow. 3. A timer on the Host side starts at this point, labeled 'Timer < PRESP_TO'. 4. The Device receives the request and becomes 'Device Ready'. 5. From the 'Device Ready' state, a 'PRESP_TO' timeout period begins on the Device side. 6. The Device sends a 'BTA' (Busy Time Acknowledge) to the Host. 7. The Host receives the 'BTA' and then sends a 'READ Resp | Ack & Error Rpt' back to the Device. 8. Finally, the Device sends another 'BTA' to the Host. Vertical dashed lines represent the lifelines, and small rectangles indicate activation periods. The label 'MSV35867V1' is in the bottom right corner.

Sequence diagram showing the timing of PRESP_TO after a read request between a Host and a Device.

Figure 216. Timing of PRESP_TO after a write request (HS or LP)

Timing diagram showing the interaction between a Host and a Device. The Host sends a WRITE Request to the Device. A timer labeled 'Timer < PRESP_TO' starts at the Host. The Host then enters an 'LP-11' state. An 'Arbitrary event after WRITE Req.' occurs at the Host. The Device becomes 'Device Ready' and sends a response. The PRESP_TO timer is shown on the Device side.

The diagram illustrates the timing of the PRESP_TO counter after a write request. A Host sends a WRITE Request to a Device. A timer labeled 'Timer < PRESP_TO' starts at the Host. The Host then enters an LP-11 state. An 'Arbitrary event after WRITE Req.' occurs at the Host. The Device becomes 'Device Ready' and sends a response. The PRESP_TO timer is shown on the Device side. The diagram is labeled MSV35868V1.

Timing diagram showing the interaction between a Host and a Device. The Host sends a WRITE Request to the Device. A timer labeled 'Timer < PRESP_TO' starts at the Host. The Host then enters an 'LP-11' state. An 'Arbitrary event after WRITE Req.' occurs at the Host. The Device becomes 'Device Ready' and sends a response. The PRESP_TO timer is shown on the Device side.

Table 205 describes the fields used for the configuration of the PRESP_TO counter.

Table 205. PRESP_TO counter configuration

DescriptionRegisterField
Period for which the DSI Host keeps the link stillAfter sending a High-speed read operationDSI_TCCR1HSRD_TOCNT
After sending a Low-power read operationDSI_TCCR2LPRD_TOCNT
After completing a Bus-turn-around (BTA)DSI_TCCR5BTA_TOCNT
Period for which the DSI Host keeps the link inactiveAfter sending a High-speed write operationDSI_TCCR3HSWR_TOCNT
After sending a Low-power write operationDSI_TCCR4LPWR_TOCNT

The values in these registers are measured in number of cycles of the lane byte clock. These registers are only used in command mode because in video mode, there is a rigid timing schedule to be met to keep the display properly refreshed and it must not be broken by these or any other timeouts. Setting a given timeout to 0 disables going into LP-11 state and timeout for events of that category.

The read and the write requests in high-speed mode are distinct from the read and the write requests in low-power mode. For example, if HSRD_TOCNT is set to zero and LPRD_TOCNT is set to a non-zero value, a generic read with no parameters does not activate the PRESP_TO counter in high-speed, but it activates the PRESP_TO in low-power.

The DSI Host timeout counter configuration register 4 (DSI_TCCR3) includes a special Presp mode (PM) bit to change the normal behavior of PRESP_TO in Adaptive command

mode for high-speed write operation timeout. When set to 1, this bit allows the RESP_TO from HSWR_TOCNT to be used only once, when both of the following conditions are met:

In this scenario, non-adapted command mode requests are not sent to the D-PHY, even if there is traffic from the generic interface ready to be sent, returning them to the Stop state. When it happens, the RESP_TO counter is activated and only when it is completed, the DSI Host sends any other traffic that is ready, as illustrated in Figure 217.

Figure 217. Effect of prep mode at 1

Timing diagram showing the effect of prep mode at 1. It includes signals: dpivsync_edpiwms, dpidataen, dpidata[29:0], edpi_fifo_empty, gen_wr_en, gen_data[31:0], link_state[1:0], link_data[31:0], and RESP_TO_active. The diagram illustrates the sequence of events during a high-speed write operation with timeout handling.

The timing diagram illustrates the following signals and their states over time:

The diagram shows that when RESP_TO_active is high, the DSI Host stops transmitting data from the generic interface (gen_data) and returns to the Stop state, even if there is still data in the FIFO. The transmission resumes only after the RESP_TO counter has completed its timeout.

MSV35880V1

Timing diagram showing the effect of prep mode at 1. It includes signals: dpivsync_edpiwms, dpidataen, dpidata[29:0], edpi_fifo_empty, gen_wr_en, gen_data[31:0], link_state[1:0], link_data[31:0], and RESP_TO_active. The diagram illustrates the sequence of events during a high-speed write operation with timeout handling.

30.9 Functional description: transmission of commands

30.9.1 Transmission of commands in video mode

The DSI Host supports the transmission of commands, both in high-speed and low-power, while in video mode. The DSI Host uses blanking or low-power (BLLP) periods to transmit commands inserted through the APB generic interface. Those periods correspond to the gray areas of Figure 218 .

Figure 218. Command transmission periods within the image area

Diagram of command transmission periods within the image area. The diagram shows a frame structure with three horizontal rows. The top row consists of 'VSS or HSS' (white) and 'BLLP' (gray). The middle row consists of 'HSS+HBP' (white), 'RGB' (white), 'BLLP in burst mode' (gray), and 'HFP' (gray). The bottom row consists of 'HSS' (white) and 'BLLP' (gray). To the right of the frame, vertical double-headed arrows indicate 'VSA and VBP lines' for the top row, 'VACT lines' for the middle row, and 'VFP lines' for the bottom row. The identifier 'MSv35869V1' is in the bottom right corner.
Diagram of command transmission periods within the image area. The diagram shows a frame structure with three horizontal rows. The top row consists of 'VSS or HSS' (white) and 'BLLP' (gray). The middle row consists of 'HSS+HBP' (white), 'RGB' (white), 'BLLP in burst mode' (gray), and 'HFP' (gray). The bottom row consists of 'HSS' (white) and 'BLLP' (gray). To the right of the frame, vertical double-headed arrows indicate 'VSA and VBP lines' for the top row, 'VACT lines' for the middle row, and 'VFP lines' for the bottom row. The identifier 'MSv35869V1' is in the bottom right corner.

Commands are transmitted in the blanking periods after the following packets/states:

Besides the areas corresponding to BLLP, large commands can also be sent during the last line of a frame. In that case, the line time for the video mode is violated and the edpihalt signal is set to request the DPI video timing signals to remain inactive. Only if a command does not fit into any BLLP area, it is postponed to the last line, causing the violation of the line time for the video mode, as illustrated in Figure 219 .

Figure 219. Transmission of commands on the last line of a frame

Timing diagram showing signals dpivsync, dpihsync, dpidataen, and edpihalt. It illustrates frame time intervals and the relationship between edpihalt de-assertion and vsync assertion. Annotations indicate where vsync would have asserted if dpihalt stayed low and that vsync can assert immediately after dpihalt de-asserts.

Where vsync would have asserted if dpihalt stayed low

frame time

frame time

dpivsync

dpihsync

dpidataen

edpihalt

vsync can assert immediately after dpihalt de-asserts

MSv35881V1

Timing diagram showing signals dpivsync, dpihsync, dpidataen, and edpihalt. It illustrates frame time intervals and the relationship between edpihalt de-assertion and vsync assertion. Annotations indicate where vsync would have asserted if dpihalt stayed low and that vsync can assert immediately after dpihalt de-asserts.

Only one command is transmitted per line, even in the case of the last line of a frame but one command is possible for each line.

There can be only one command sent in low-power per line. However, one low-power command is possible for each line. In high-speed, the DSI Host can send more than one command, as many as it determines to fit in the available time.

The DSI Host avoids sending commands in the last line because it is possible that the last line is shorter than the other ones. For instance, the line time ( \( t_L \) ) could be half a cycle longer than the \( t_L \) on the LTDC interface, that is, each line in the frame taking half a cycle from time for the last line. This results in the last line being \( (\frac{1}{2} \text{ cycle}) \times (\text{number of lines} - 1) \) shorter than \( t_L \) .

The COLM and SHTDN bits of the DSI Wrapper control register (DSI_WCR) are also able to trigger the sending of command packets. The commands are:

These commands are not sent in the VACT region. If the low-power command enable (LPCE) bit of the DSI Host video mode configuration register (DSI_VMCR) is set, these commands are sent in low-power mode.

In low-power mode, the largest packet size (LPSIZE) field of the DSI Host low-power mode configuration register (DSI_LPMCR) is used to determine if these commands can be transmitted. It is assumed that largest packet size (LPSIZE) is greater than or equal to four bytes (number of bytes in a short packet), because the DSI Host does not transmit these commands on the last line.

If the frame bus-turn-around acknowledge enable (FBTAEE) bit is set in the DSI Host low-power mode configuration register (DSI_LPMCR), a BTA is generated by DSI Host after the last line of a frame. This may coincide with a write command or a read command. In either case, the LTDC interface is halted until an acknowledge is received (control of the DSI bus is returned to the host).

30.9.2 Transmission of commands in low-power mode

DSI Host can be configured to send the low-power commands during the high-speed video mode transmission.

To enable this feature, set the Low Power command enable (LPCE) bit of the DSI Host video mode configuration register (DSI_VMCR) to 1. In this case, it is necessary to calculate the time available, in bytes, to transmit a command in low-power mode to horizontal front-porch (HFP), vertical sync active (VSA), vertical back-porch (VBP), and vertical front-porch (VFP) regions.

Bits 8 to 13 of the video mode configuration register (DSI_VMCR) register indicate if DSI Host can go to LP when in idle. If the low-power command enable (LPCE) bit is set and non-video packets are in queue, DSI Host ignores the low-power configuration and transmits low-power commands, even if it is not allowed to enter low-power mode in a specific region. After the low-power commands transmission, DSI Host remains in low-power until a sync event occurs.

For example, consider that the VFP is selected as high-speed region (LPVFPE = 1'b0) with LPCE set as a command to transmit in low-power in the VPF region. This command is transmitted in low-power, and the line stays in low-power mode until a new HSS arrives.

Calculating the time to transmit commands in LP mode in the VSA, VBP, and VFP Regions

The largest packet size (LPSIZE) field of the DSI Host low-power mode configuration register (DSI_LPMCR) indicates the time available (in bytes) to transmit a command in low-power mode (based on the escape clock) on a line during the VSA, VBP, and the VFP regions.

Calculation of largest packet size (LPSIZE) depends on the used video mode.

Figure 220 illustrates the timing intervals for the video mode in non-burst with sync pulses, while Figure 221 refers to video mode in burst and non-burst with sync events.

Figure 220. LPSIZE for non-burst with sync pulses

Timing diagram for non-burst with sync pulses showing various time intervals like t_H1, t_HS->LP, t_LPDT, and t_LPS->HS relative to a total line time t_L.

The diagram shows a horizontal timeline representing a video line of total duration \( t_L \) . Below the timeline, a sequence of video regions is depicted: HSS (High Speed Sync), HSA (High Speed Active), HSE (High Speed Exit), a transition from High Speed to Low Power (HS→LP), an 'EscEntry' block, an 'LPDT command' block, a large yellow block labeled 'outvact_lpcmd_time', an 'EscExit' block, a '2 t ESCCLK ' block, and a transition from Low Power to High Speed (LP→HS). Above the timeline, several time intervals are marked with double-headed arrows: \( t_{H1} \) (from start of line to start of HS→LP), \( t_{HS \rightarrow LP} \) (duration of HS→LP transition), \( t_{LPDT} \) (duration of LPDT command), \( t_{LPDT} \) (duration of EscExit block), and \( t_{LPS \rightarrow HS} \) (duration of LP→HS transition). The diagram is labeled MSV35870V1.

Timing diagram for non-burst with sync pulses showing various time intervals like t_H1, t_HS->LP, t_LPDT, and t_LPS->HS relative to a total line time t_L.

Figure 221. LPSIZE for burst or non-burst with sync events

Timing diagram for burst or non-burst with sync events showing time intervals like t_H1, t_HS->LP, t_LPDT, and t_LPS->HS relative to a total line time t_L.

This diagram represents burst or non-burst modes with sync events. The sequence of regions is: HSS, a transition from High Speed to Low Power (HS→LP), an 'EscEntry' block, an 'LPDT command' block, a large yellow block labeled 'outvact_lpcmd_time', an 'EscExit' block, a '2 t ESCCLK ' block, and a transition from Low Power to High Speed (LP→HS). Time intervals \( t_{H1} \) , \( t_{HS \rightarrow LP} \) , \( t_{LPDT} \) , \( t_{LPDT} \) , and \( t_{LPS \rightarrow HS} \) are marked above the timeline relative to the total line time \( t_L \) . The diagram is labeled MSV35871V1.

Timing diagram for burst or non-burst with sync events showing time intervals like t_H1, t_HS->LP, t_LPDT, and t_LPS->HS relative to a total line time t_L.

This time is calculated as follows:

\[ \text{LPSIZE} = (t_L - (t_{H1} + t_{\text{HS}\rightarrow\text{LP}} + t_{\text{LPHS}} + t_{\text{LPDT}} + 2 t_{\text{ESCCCLK}})) / (2 \times 8 \times t_{\text{ESCCCLK}}), \text{ where} \]

In the above equation, division by eight is done to convert the available time to bytes. Division by two is done because one bit is transmitted every two escape clock cycles. The largest packet size (LPSIZE) field can be compared directly with the size of the command to be transmitted to determine if there is enough time to transmit the command. The maximum size of a command that can be transmitted in low-power mode is limited to 255 bytes by this field. You must program this register to a value greater than or equal to 4 bytes for the transmission of the DCTRL commands, such as shutdown and color in low-power mode.

Consider an example of a frame with 12.4 µs per line and assume an escape clock frequency of 20 MHz and a lane bit rate of 800 Mbits. In this case, it is possible to send 124 bits in escape mode (that is, 124 bit = 12.4 µs * 20 MHz / 2). Still, you need to take into consideration the D-PHY protocol and PHY timings.

The following assumptions are made:

In this example, a 13-byte command can be transmitted as follows:

\[ \text{LPSIZE} = (12.4 \text{ µs} - (420 \text{ ns} + 180 \text{ ns} + 200 \text{ ns} + (22 \times 50 \text{ ns} + 2 \times 50 \text{ ns}))) / (2 \times 8 \times 50 \text{ ns}) = 13 \text{ bytes}. \]

Calculating the time to transmit commands in low-power mode in HFP region

The VACT largest packet size (VLPSIZE) field of the DSI Host low-power mode configuration register (DSI_LPMCR) indicates the time available (in bytes) to transmit a command in low-power mode (based on the escape clock) in the vertical active (VACT) region.

To calculate the value of VACT largest packet size (VLPSIZE), consider the video mode being used. Figure 222 shows the timing intervals for video mode in non-burst with sync pulses, Figure 223 those for video mode in non-burst with sync events, and Figure 224 refers to the burst video mode.

Figure 222. VLPSIZE for non-burst with sync pulses

Timing diagram for non-burst with sync pulses showing various time intervals and signal states.

Timing diagram for non-burst with sync pulses. The diagram shows a sequence of signal states and timing intervals over a line time \( t_L \) . The signal states are: HSS, HSA, HSE, HBP, HACT with Blanking Non-Burst, HS→LP, EscEntry, LPDT command, invact_lpcmd_time, EscExit, 2 \( t_{ESCCLK} \) , and LP→HS. The timing intervals are: \( t_{HSA} \) , \( t_{HBP} \) , \( t_{HACT} \) , \( t_{HS \rightarrow LP} \) , \( t_{LPDT} \) , and \( t_{LPS \rightarrow HS} \) . The diagram is labeled MSv35872V1.

Timing diagram for non-burst with sync pulses showing various time intervals and signal states.

Figure 223. VLPSIZE for non-burst with sync events

Timing diagram for non-burst with sync events showing various time intervals and signal states.

Timing diagram for non-burst with sync events. The diagram shows a sequence of signal states and timing intervals over a line time \( t_L \) . The signal states are: HSS, HSA, HBP, HACT with Blanking Non-Burst, HS→LP, EscEntry, LPDT command, invact_lpcmd_time, EscExit, 2 \( t_{ESCCLK} \) , and LP→HS. The timing intervals are: \( t_{HSA} \) , \( t_{HBP} \) , \( t_{HACT} \) , \( t_{HS \rightarrow LP} \) , \( t_{LPDT} \) , and \( t_{LPS \rightarrow HS} \) . The diagram is labeled MSv35890V1.

Timing diagram for non-burst with sync events showing various time intervals and signal states.

Figure 224. VLPSIZE for burst mode

Timing diagram for burst mode showing various time intervals and signal states.

Timing diagram for burst mode. The diagram shows a sequence of signal states and timing intervals over a line time \( t_L \) . The signal states are: HSS, HSA, HBP, HACT Burst, HS→LP, EscEntry, LPDT command, invact_lpcmd_time, EscExit, 2 \( t_{ESCCLK} \) , and LP→HS. The timing intervals are: \( t_{HSA} \) , \( t_{HBP} \) , \( t_{HACT} \) , \( t_{HS \rightarrow LP} \) , \( t_{LPDT} \) , and \( t_{LPS \rightarrow HS} \) . The diagram is labeled MSv35873V1.

Timing diagram for burst mode showing various time intervals and signal states.

This time is calculated as follows:

\[ VLPSIZE = (t_L - (t_{HSA} + t_{HBP} + t_{HACT} + t_{HS \rightarrow LP} + t_{LP \rightarrow HS} + t_{LPDT} + 2 \cdot t_{ESCCLK})) / (2 \times 8 \times t_{ESCCLK}) \]

where

The VLPSIZE field can be compared directly with the size of the command to be transmitted to determine if there is time to transmit the command.

Consider an example of a frame with 16.4 \( \mu\text{s} \) per line and assume an escape clock frequency of 20 MHz and a lane bit rate of 800 Mbits/s. In this case, it is possible to send 420 bits in escape mode (that is, \( 164 \text{ bits} = 16.4 \mu\text{s} \times 20 \text{ MHz} / 2 \) ). Still, since it is the vertical active region of the frame, take into consideration the HSA, HBP, and HACT timings apart from the D-PHY protocol and PHY timings. The following assumptions are made:

In this example, consider that video is sent in non-burst mode. The VLPSIZE is calculated as follows:

\[ \text{VLPSIZE} = (16.4 \mu\text{s} - (420 \text{ ns} + 800 \text{ ns} + 12.8 \mu\text{s} + 180 \text{ ns} + 200 \text{ ns} + (22 \times 50 \text{ ns} + 2 \times 50 \text{ ns}))) / (2 \times 8 \times 50 \text{ ns}) = 1 \text{ byte} \]

Only one byte can be transmitted in this period. A short packet (for example, generic short write) requires a minimum of four bytes. Therefore, in this example, commands are not sent in the VACT region.

If burst mode is enabled, more time is available to transmit the commands in the VACT region, because HACT is time compressed.

\[ \text{VLPSIZE} = (16.4 \mu\text{s} - (420 \text{ ns} + 800 \text{ ns} + (1280 \times 3 / 4 \times 10 \text{ ns}) + 180 \text{ ns} + 200 \text{ ns} + (22 \times 50 \text{ ns} + 2 \times 50 \text{ ns}))) / (2 \times 8 \times 50 \text{ ns}) = 5 \text{ bytes} \]

For burst mode, the VLPSIZE is 5 bytes and then a 4-byte short packet can be sent.

Transmission of commands in different periods

The LPSIZE and VLPSIZE fields allow a simple comparison to determine if a command can be transmitted in any of the BLLP periods.

Figure 225 illustrates the meaning of VLPSIZE and LPSIZE, matching them with the shaded areas and the VACT region.

Figure 225. Location of LPSIZE and VLPSIZE in the image area

Diagram of the image area showing the location of LPSIZE and VLPSIZE. The diagram is a grid representing the image area. The top row consists of 'VSS or HSS' and 'BLLP'. The middle row consists of 'HSS+HBP', 'RGB', 'BLLP in burst mode', and 'HFP'. The bottom row consists of 'HSS' and 'BLLP'. On the right side, three vertical double-headed arrows indicate 'VSA and VBP lines' (spanning the top row), 'VACT lines' (spanning the middle row), and 'VFP lines' (spanning the bottom row). At the bottom, two horizontal double-headed arrows indicate 'DSI_LPMCR.LPSIZE' (spanning the width of the 'BLLP' blocks in the top and bottom rows) and 'DSI_LPMCR.VLPSIZE' (spanning the width of the 'RGB' block in the middle row). The code 'MSV35874V1' is in the bottom right corner.
Diagram of the image area showing the location of LPSIZE and VLPSIZE. The diagram is a grid representing the image area. The top row consists of 'VSS or HSS' and 'BLLP'. The middle row consists of 'HSS+HBP', 'RGB', 'BLLP in burst mode', and 'HFP'. The bottom row consists of 'HSS' and 'BLLP'. On the right side, three vertical double-headed arrows indicate 'VSA and VBP lines' (spanning the top row), 'VACT lines' (spanning the middle row), and 'VFP lines' (spanning the bottom row). At the bottom, two horizontal double-headed arrows indicate 'DSI_LPMCR.LPSIZE' (spanning the width of the 'BLLP' blocks in the top and bottom rows) and 'DSI_LPMCR.VLPSIZE' (spanning the width of the 'RGB' block in the middle row). The code 'MSV35874V1' is in the bottom right corner.

30.9.3 Transmission of commands in high-speed

If the LPCE bit of the DSI_VMCR register is 0, the commands are sent in high-speed video mode. In this case, the DSI Host automatically determines the area where each command can be sent and no programming or calculation is required.

30.9.4 Read command transmission

The MRD_TIME field of the register configures the maximum amount of time required to perform a read command in lane byte clock cycles, it is calculated as:

MRD_TIME = time to transmit the read command in low-power mode + time to enter and leave low-power mode + time to return the read data packet from the peripheral device.

The time to return the read data packet from the peripheral depends on the number of bytes read and the escape clock frequency of the peripheral, not the escape clock of the host. The MRD_TIME field is used in both high-speed and low-power mode to determine if there is time to complete a read command in a BLLP period.

In high-speed mode (LPCE = 0), MRD_TIME is calculated as follows:

\[ \text{MRD\_TIME} = (t_{\text{HS}\rightarrow\text{LP}} + t_{\text{LP}\rightarrow\text{HS}} + t_{\text{read}} + 2 \times t_{\text{BTA}}) / \text{lanelbyteclkperiod} \]

In low-power mode (LPCE = 1), MRD_TIME is calculated as follows:

\[ \text{MRD\_TIME} = (t_{\text{HS}\rightarrow\text{LP}} + t_{\text{LP}\rightarrow\text{HS}} + t_{\text{LPDT}} + t_{\text{lprd}} + t_{\text{read}} + 2 \times t_{\text{BTA}}) / \text{lanelbyteclkperiod}, \text{ where:} \]

It is recommended to keep the maximum number of bytes read from the peripheral to a minimum to have sufficient time available to issue the read commands in a line time. Ensure that \( MRD\_TIME \times \text{lane byte clock period} \) is less than \( LPSIZE \times 16 \times \text{escape clock period} \) of the host, otherwise, the read commands are dispatched on the last line of a frame. If it is necessary to read a large number of parameters ( \( > 16 \) ), increase the \( MRD\_TIME \) while the read command is being executed. When the read has completed, decrease the \( MRD\_TIME \) to a lower value.

If a read command is issued on the last line of a frame, the LTDC interface is halted and stays halted until the read command is in progress. The video transmission must be stopped during this period.

30.9.5 Clock lane in low-power mode

To reduce the power consumption of the D-PHY, the DSI Host, when not transmitting in the high-speed mode, allows the clock lane to enter into the low-power mode. The controller automatically handles the transition of the clock lane from HS (clock lane active sending clock) to LP state without direct intervention by the software. This feature can be enabled by configuring the DPCC and the ACR bits of the DSI_CLCR register.

In the command mode, the DSI Host can place the clock lane in the low-power mode when it does not have any HS packets to transmit.

In the video mode (LTDC interface), the DSI Host controller uses its internal video and PHY timing configurations to determine if there is time available for the clock line to enter the low-power mode and not compromise the video data transmission of pixel data and sync events.

Along with a correct configuration of the video mode (see Section 30.5: Functional description: video mode on LTDC interface ), the DSI Host needs to know the time required by the clock lane to go from high-speed to low-power mode and vice-versa. The values required can be obtained from the D-PHY specification: program the DSI_CLTCR register with the following values:

Based on the programmed values, the DSI Host calculates if there is enough time for the clock lane to enter the low-power mode during inactive regions of the video frame.

The DSI Host decides the best approach to follow regarding power saving out of the three possible scenarios:

Figure 226. Clock lane and data lane in HS

Timing diagram for Figure 226 showing the clock lane and data lane in high-speed (HS) mode. The diagram consists of two horizontal bars. The top bar is divided into three segments: a purple segment labeled 'HS', a green segment labeled 'Blanking', and another purple segment labeled 'HS'. The bottom bar is a solid blue segment labeled 'Clock Lane in HS' and 'Data Lanes in HS'.
Timing diagram for Figure 226 showing the clock lane and data lane in high-speed (HS) mode. The diagram consists of two horizontal bars. The top bar is divided into three segments: a purple segment labeled 'HS', a green segment labeled 'Blanking', and another purple segment labeled 'HS'. The bottom bar is a solid blue segment labeled 'Clock Lane in HS' and 'Data Lanes in HS'.

Figure 227. Clock lane in HS and data lanes in LP

Timing diagram for Figure 227 showing clock lane in HS and data lanes in LP. The diagram illustrates the sequence of states: HS, HS to LP Data Lanes, Idle, LP to HS Data Lanes, and HS. The clock lane remains in HS throughout, while data lanes transition between HS and LP. Timing parameters phy_hs2lp_time and phy_lp2hs_time are indicated.

This diagram illustrates the timing sequence for a DSI interface where the clock lane is in High-Speed (HS) mode and data lanes are in Low-Power (LP) mode. The sequence of states is: HS, HS to LP Data Lanes, Idle, LP to HS Data Lanes, and HS. The clock lane (Clk Lane in HS) remains in HS mode throughout the sequence. The data lanes transition from HS to LP during the 'HS to LP Data Lanes' state and back to HS during the 'LP to HS Data Lanes' state. The timing parameters phy_hs2lp_time and phy_lp2hs_time are indicated above the sequence.

Timing diagram for Figure 227 showing clock lane in HS and data lanes in LP. The diagram illustrates the sequence of states: HS, HS to LP Data Lanes, Idle, LP to HS Data Lanes, and HS. The clock lane remains in HS throughout, while data lanes transition between HS and LP. Timing parameters phy_hs2lp_time and phy_lp2hs_time are indicated.

Figure 228. Clock lane and data lane in LP

Timing diagram for Figure 228 showing clock lane and data lane in LP. The diagram illustrates the sequence of states: HS, HS to LP Data Lanes, HS to LP Clock Lane, Idle, LP to HS Clock Lane, LP to HS Data Lanes, and HS. The clock lane transitions from HS to LP and back to HS, while data lanes remain in LP mode. Timing parameters phy_clkhs2lp_time, phy_lp2hs_time, and phy_clklp2hs_time are indicated.

This diagram illustrates the timing sequence for a DSI interface where both the clock lane and data lanes are in Low-Power (LP) mode. The sequence of states is: HS, HS to LP Data Lanes, HS to LP Clock Lane, Idle, LP to HS Clock Lane, LP to HS Data Lanes, and HS. The clock lane transitions from HS to LP during the 'HS to LP Clock Lane' state and back to HS during the 'LP to HS Clock Lane' state. The data lanes remain in LP mode throughout the sequence. The timing parameters phy_clkhs2lp_time, phy_lp2hs_time, and phy_clklp2hs_time are indicated above the sequence.

Timing diagram for Figure 228 showing clock lane and data lane in LP. The diagram illustrates the sequence of states: HS, HS to LP Data Lanes, HS to LP Clock Lane, Idle, LP to HS Clock Lane, LP to HS Data Lanes, and HS. The clock lane transitions from HS to LP and back to HS, while data lanes remain in LP mode. Timing parameters phy_clkhs2lp_time, phy_lp2hs_time, and phy_clklp2hs_time are indicated.

30.10 Functional description: virtual channels

The DSI Host supports choosing the virtual channel (VC) for use for each interface. Using multiple virtual channels, the system can address multiple displays at the same time, when each display has a different virtual channel identifier.

When the LTDC interface is configured for a particular virtual channel, it is possible to use the APB slave generic interface to issue the commands while the video stream is being transmitted. With this, it is possible to send the commands through the ongoing video stream, addressing different virtual channels and thus enable the interface with multiple displays. During the video mode, the video stream transmission has the maximum priority. Therefore, the transmission of sideband packets such as the ones from the generic interface are only transported when there is time available within the video stream transmission. The DSI Host identifies the available time periods and uses them to transport the generic interface packets. Figure 229 illustrates where the DSI Host inserts the packets from the APB generic interface within the video stream transmitted by the LTDC interface.

Figure 229. Command transmission by the generic interface

Timing diagram showing command transmission by the generic interface during video mode. The diagram illustrates the relationship between Vsync, Hsync signals, video payload (green lines), and command packets (blue lines) transmitted through the APB Slave interface. The diagram is divided into two main sections: 'Blanking Lines (a)' and 'Blanking Lines (b)'. In section (a), a blue command packet is shown during the horizontal blanking interval. In section (b), multiple blue command packets are shown during the vertical blanking interval. The 'HFP' (Horizontal Front Porch) area is also indicated. A legend at the bottom explains the symbols: purple bars for short packets via DPI, green lines for payload via DPI, blue bars for commands via APB Slave interface, and red boxes for areas where commands can be transmitted.
Timing diagram showing command transmission by the generic interface during video mode. The diagram illustrates the relationship between Vsync, Hsync signals, video payload (green lines), and command packets (blue lines) transmitted through the APB Slave interface. The diagram is divided into two main sections: 'Blanking Lines (a)' and 'Blanking Lines (b)'. In section (a), a blue command packet is shown during the horizontal blanking interval. In section (b), multiple blue command packets are shown during the vertical blanking interval. The 'HFP' (Horizontal Front Porch) area is also indicated. A legend at the bottom explains the symbols: purple bars for short packets via DPI, green lines for payload via DPI, blue bars for commands via APB Slave interface, and red boxes for areas where commands can be transmitted.

It is also possible to address the multiple displays with only the generic interface using different virtual channels. Because the generic interface is not restricted to any particular virtual channel through configuration, it is possible to issue the packets with different virtual channels. This enables the interface to time multiplex the packets to be provided to the displays with different virtual channels.

You can use the following configuration registers to select the virtual channel ID associated with transmissions over the LTDC and APB slave generic interfaces:

30.11 Functional description: video mode pattern generator

The video mode pattern generator allows the transmission of horizontal/vertical color bar and D-PHY BER testing pattern without any stimuli.

The frame requirements must be defined in video registers that are listed in Table 206 .

Table 206. Frame requirement configuration registers

Register nameDescription
DSI Host video mode configurationVideo mode configuration
DSI Host video packet configurationVideo packet size
DSI Host video chunks configurationNumber of chunks
DSI Host video null packet configurationNull packet size
DSI Host video HSA configurationHorizontal sync active time
DSI Host video HBP configurationHorizontal back-porch time
DSI Host video line configurationLine time
DSI Host video VSA configurationVertical sync active period
DSI Host video VBP configurationVertical back-porch period
DSI Host video VFP configurationVertical front-porch period
DSI Host video VA configurationVertical resolution

30.11.1 Color bar pattern

The color bar pattern comprises eight bars for white, yellow, cyan, green, magenta, red, blue, and black colors.

Each color width is calculated by dividing the line pixel size (vertical pattern) or the number of lines (horizontal pattern) by eight. In the vertical color bar mode ( Figure 230 ), each single color bar has a width of the number of pixels in a line divided by eight. In case the number of pixels in a line is not divisible by eight, the last color (black) contains the remaining.

In the horizontal color bar mode ( Figure 231 ), each color line has a color width of the number of lines in a frame divided by eight. In case the number of lines in a frame is not divisible by eight, the last color (black) contains the remaining lines.

Figure 230. Vertical color bar mode

Vertical color bar mode diagram showing eight vertical color bars: yellow, cyan, green, magenta, red, blue, and black, with a white bar on the left.

A diagram showing vertical color bars. It consists of eight vertical rectangular blocks of color. From left to right, the colors are: white, yellow, cyan, green, magenta, red, blue, and black. The bars are of equal width and height, set against a white background.

Vertical color bar mode diagram showing eight vertical color bars: yellow, cyan, green, magenta, red, blue, and black, with a white bar on the left.

Figure 231. Horizontal color bar mode

Horizontal color bar mode diagram showing eight horizontal color bars: yellow, cyan, green, magenta, red, blue, and black, with a white bar at the top.

A diagram showing horizontal color bars. It consists of eight horizontal rectangular blocks of color. From top to bottom, the colors are: white, yellow, cyan, green, magenta, red, blue, and black. The bars are of equal height and width, set against a white background.

Horizontal color bar mode diagram showing eight horizontal color bars: yellow, cyan, green, magenta, red, blue, and black, with a white bar at the top.

30.11.2 Color coding

Table 207 shows the RGB components used.

Table 207. RGB components

WhiteYellowCyanGreenMagentaRedBlueBlack
RHighHighLowLowHighHighLowLow
GHighHighHighHighLowLowLowLow
BHighLowHighLowHighLowHighLow

30.11.3 BER testing pattern

The BER testing pattern simplifies conformance testing. This pattern tests the RX D-PHY capability to receive the data correctly. The following data patterns are required:

In most cases, Y is equal to X. However, depending on line length and the color coding used, Y may be different from X. With RGB888 color coding and horizontal resolution in multiples of eight, the pattern shown in Figure 232 appears on the DSI display.

Figure 232. RGB888 BER testing pattern

Figure 232 shows a visual representation of the RGB888 BER testing pattern on a display. The pattern consists of vertical stripes of varying widths and colors, including white, yellow, cyan, green, magenta, red, blue, and black, arranged in a specific sequence.

The image shows a rectangular display area filled with vertical color stripes. From left to right, the sequence of stripes is: white, yellow, cyan, green, magenta, red, blue, and black. Each color stripe has a different width, with some being wider than others, creating a rhythmic visual pattern used for testing display hardware.

Figure 232 shows a visual representation of the RGB888 BER testing pattern on a display. The pattern consists of vertical stripes of varying widths and colors, including white, yellow, cyan, green, magenta, red, blue, and black, arranged in a specific sequence.

30.11.4 Video mode pattern generator resolution

Depending on the orientation, BER mode, and color coding, the smallest resolutions accepted by the video mode pattern generator are:

Vertical pattern

The width of each color bar is determined by the division of horizontal resolution (pixels) for eight test pattern colors. If the horizontal resolution is not divisible by eight, the last color (black) is extended to fill the resolution.

In the example in Figure 233 , the horizontal resolution is 103.

Figure 233. Vertical pattern (103x15)

Figure 233: Vertical pattern (103x15) showing color bar widths.

The figure shows a horizontal sequence of color bars. Below each color bar is a double-headed arrow indicating its width in pixels. The widths are: 12 (white), 12 (yellow), 12 (cyan), 12 (green), 12 (magenta), 12 (red), 12 (blue), 12 (black), and 7 (black). The total width is 103 pixels.

ColorWidth (pixels)
White12
Yellow12
Cyan12
Green12
Magenta12
Red12
Blue12
Black12
Black7
Figure 233: Vertical pattern (103x15) showing color bar widths.

Horizontal pattern

The width of each color bar is determined by the division of the number of vertical resolution (lines) for eight test pattern colors. If the vertical resolution is not divisible by eight, the last color (black) is extended to fill the resolution, as shown in Figure 234 .

Figure 234. Horizontal pattern (103x15)

Figure 234: Horizontal pattern (103x15) showing color bar heights.

The figure shows a vertical stack of color bars. To the left of each bar is a label indicating its height in lines. The heights are: 1line (white), 1line (yellow), 1line (cyan), 1line (green), 1line (magenta), 1line (red), 1line (blue), and 1line+7 (black). The total height is 15 lines.

ColorHeight (lines)
White1line
Yellow1line
Cyan1line
Green1line
Magenta1line
Red1line
Blue1line
Black1line+7
Figure 234: Horizontal pattern (103x15) showing color bar heights.

30.12 Functional description: D-PHY management

The embedded MIPI® D-PHY is control directly by the DSI Host and is configured through the DSI Wrapper.

A dedicated PLL and a dedicated 1.2 V regulator are also embedded to supply the clock and the power supply to the DSI and D-PHY.

30.12.1 D-PHY configuration

The D-PHY configuration is carried out through the DSI Wrapper thanks to the DSI_WPCR x registers.

Timing definition

The MIPI® D-PHY manages all the communication timing with dedicated timers. As all the timings are specified in nanoseconds, it is mandatory to configure the unit interval field to ensure the good duration of the timings.

Unit interval is configured through the DSI_WPCR0.UIX4 field. This value defines the bit period in high-speed mode in units of 0.25 ns. If this period is not a multiple of 0.25 ns, the value driven must be rounded down.

As an example, for a 300 Mbit/s link, the unit interval is 3.33 ns, so UIX4 is 13.33. In this case a value of 13 (0x0D) must be written.

Slew-rate and delay tuning on pins

To fine tune DSI communication, slew-rates and delay can be adjusted:

Table 208. Slew-rate and delay tuning

FunctionLane(s)Value field in DSI_WPCR1
Slew-rate in high-speed transmissionClock laneHSTXSRCCL
Data lanesHSTXSRCDL
Slew-rate in low-power transmissionClock lanesLPSRCCL
Data lanesLPSCDL
High-speed transmission delayClock laneHSTXDCL
Data lanesHSTXDDL

The default value for all these parameters is 2'h00. All these values can be programmed only when the DSI is stopped (DSI_WCR.DSIEN = 0 and CR.EN = 0).

Low-power reception filter tuning

The cut-off frequency of the low-pass on low-power receiver can be fine tuned through the LPRXFT field of the DSI_WPCR1 register. The default values is 2'h00 and it can be programmed only when the DSI is stopped (CR.DSIEN = 0 and CR.EN = 0).

Special Sdd control

An additional current path can be activated on both clock lane and data lane to meet the Sdd TX parameter defined in the MIPI ® D-PHY Specification.

This activation is done setting the SDDC bit of the DSI_WPCR1 register.

Custom lane configuration

To ease DSI integration, lane pins can be swapped and/or high-speed signals can be inverted on a lane as described in Table 209 .

Table 209. Custom lane configuration

FunctionLaneEnable bit in DSI_WPCR0
Swap lane pinsClock laneSWCL
Data lane 0SWDL0
Data lane 1SWDL1
Invert high-speed signal on laneClock laneHSICL
Data lane 0HSIDL0
Data lane 1HSIDL1

Custom timing configuration

Some of the MIPI ® D-PHY timing can be tuned for specific purpose as described in Table 210 .

Table 210. Custom timing parameters

MIPI ® timingEnable bit in DSI_WPCR0Configuration registerFieldDefault valueDefault duration
t CLK-POSTTCLKPOSTENDSI_WPCR4TCLKPOST200100 ns + 120*UI
t LPX (clock lane)TLPXCENDSI_WPCR3TLPXC10050 ns
t HS_EXITTHSEXITENTHSEXIT200100 ns + 40*UI
t LPX (data lane)TLPXDENTLPXD10050 ns
t HS-ZEROTHSZEROENDSI_WPCR2THSZERO175175 ns + 8*UI
t HS-TRAILTHSTRAILTHSTRAIL14070 ns + 8*UI
t HS-PREPARETHSPREPENTHSPREP12663 ns + 12*UI
t CLK-ZEROTCLKZEROENTCLKZERO195390 ns
t CLK-PREPARETCLKPREPENTCLKPREP12060 ns + 20*UI

All these values can be programmed only when the DSI is stopped (CR.DSIEN = 0 and CR.EN = 0).

30.12.2 Special D-PHY operations

The DSI Wrapper features some control bits to force the D-PHY in some particular state and/or behavior.

Forcing lane state

It is possible to force the data lane and/or the clock lane in TX Stop mode through the bits FTXSMDSL and FTXSMCL of the DSI_WPCR0 register.

Setting this bits causes the respective lane module to immediately jump in transmit control mode and to begin transmitting a stop state (LP-11).

This feature can be used to go back in TX mode after a wrong BTA sequence.

Forcing low-power receiver in low-power mode

The FLPRXLPM bit of the DSI_WPCR1 register enables the low-power mode of the low power receiver (LPRX). When set, the LPRX operates in low-power mode all the time. When not set, the LPRX operates in low-power mode during ULPS only.

Disabling turn of data lane

When set, the TDDL bit of the DSI_WPCR0 register forces the data lane to remain in reception mode even if a bus-turn-around request (BTA) is received from the other side.

30.12.3 Special low-power D-PHY functions

The embedded D-PHY offers specific features to optimize consumption.

Pull-down on lanes

The D-PHY embeds a pull-down on each lane to prevent floating states when the lanes are unused.

When set, the PDEN bit of the DSI_WPCR0 register enables the pull-down on the lanes.

Disabling contention detection on data lanes

The contention detector on the data lane can be turned off to lower the overall D-PHY consumption.

When set, the CDOFFDL bit of the DSI_WPCR0 register disables the contention detection on data lanes.

This can be used in forward escape mode to reduce the static power consumption.

30.12.4 DSI PLL control

The dedicated DSI PLL is controlled through the DSI Wrapper, as shown in Figure 235 (analog blocks and signals in gray, digital signals in black, digital blocks in light blue).

Figure 235. PLL block diagram

PLL block diagram showing the internal components and signal flow. The diagram includes an Input frequency divider (IDF), Buffer, PFD, CPUMP and LF, VCO, LS, Loop frequency divider (LDF), DIV 2, and ODF. External pins include CLKIN, IDF<2:0>, ENABLE, INFOUT, REOUT, avddpll1v2, agndpll1v2, dvddpll1v2, dgndpll1v2, INFIN, FBCLK, LOCKP, ODF<1:0>, and PHI. The VCO output is divided by 2 and then by the ODF to produce the PHI output. The feedback path includes a 7-bit divider (LDF) and a DIV 2 block. The Loop frequency divider is a dashed box containing the LDF and DIV 2 blocks. The PFD compares the INFOUT signal with the feedback signal from the LDF. The VCO is controlled by the CPUMP and LF block and the NDIV<6:0> input. The Lock detect block compares the INFIN and FBCLK signals to produce the LOCKP output.
PLL block diagram showing the internal components and signal flow. The diagram includes an Input frequency divider (IDF), Buffer, PFD, CPUMP and LF, VCO, LS, Loop frequency divider (LDF), DIV 2, and ODF. External pins include CLKIN, IDF<2:0>, ENABLE, INFOUT, REOUT, avddpll1v2, agndpll1v2, dvddpll1v2, dgndpll1v2, INFIN, FBCLK, LOCKP, ODF<1:0>, and PHI. The VCO output is divided by 2 and then by the ODF to produce the PHI output. The feedback path includes a 7-bit divider (LDF) and a DIV 2 block. The Loop frequency divider is a dashed box containing the LDF and DIV 2 blocks. The PFD compares the INFOUT signal with the feedback signal from the LDF. The VCO is controlled by the CPUMP and LF block and the NDIV<6:0> input. The Lock detect block compares the INFIN and FBCLK signals to produce the LOCKP output.

The PLL output frequency is configured through the DSI_WRPCR register fields. The VCO frequency and the PLL output frequency are calculated as follows:

\[ F_{VCO} = (CLK_{IN} / IDF) * 2 * NDIV, \]
\[ PHI = F_{VCO} / (2 * ODF) \]

where:

The PLL is enabled by setting the PLLEN bit in the DSI_WRPCR register.

Once the PLL is locked, the PLLLIF bit is set in the DSI_WISR. If the PLLIE bit is set in the DSI_WIER, an interrupt is generated.

The PLL status (lock or unlock) can be monitored with the PLLLS flag in the DSI_WISR register.

If the PLL gets unlocked, the PLLUIF bit of the DSI_WISR is set. If the PLLUIE bit of the DSI_WIER register is set, an interrupt is generated.

The DSI PLL settings can be changed only when the PLL is disabled.

30.12.5 Regulator control

The DSI regulator providing the 1.2 V is controlled through the DSI Wrapper.

The regulator is enabled setting the REGEN bit of the DSI_WRPCR register.

Once the regulator is ready, the RRIF bit of the DSI_WISR register is set. If the RRIE bit of the DSI_WIER register is set, an interrupt is generated.

The regulator status (ready or not) can be monitored with the RRS flag in the DSI_WISR register.

Note that the D-PHY has no separated Power ON control bit. The power ON/OFF of the D-PHY is done directly enabling the 1.2 V regulator.

When the 1.2 V regulator is disabled, the 3.3 V part of the D-PHY is automatically powered OFF.

30.13 Functional description: interrupts and errors

The interrupts can be generated either by the DSI Host or by the DSI Wrapper.

All the interrupts are merged in one interrupt lane going to the interrupt controller.

30.13.1 DSI Wrapper interrupts

An interrupt can be produced on the following events:

Separate interrupt enable bits are available for flexibility.

Table 211. DSI Wrapper interrupt requests

Interrupt eventEvent flag in DSI_WISREnable control bit in DSI_WIER
Tearing effectTEIFTEIE
End of refreshERIFERIE
PLL lockedPLLIFPLLIE
PLL unlockedPLLUIFPLLUIE
Regulator readyRRIFRRIE

30.13.2 DSI Host interrupts and errors

The DSI_ISR0 and DSI_ISR1 registers are associated with error condition reporting. These registers can trigger an interrupt to inform the system about the occurrence of errors.

The DSI Host has one interrupt line that is set high when an error occurs in either the DSI_ISR0 or the DSI_ISR1 register.

The triggering of the interrupt can be masked by programming the mask registers DSI_IER0 and DSI_IER1. By default all errors are masked. When any bit of these registers is set to 1, it enables the interrupt for a specific error. The error bit is always set in the respective DSI_ISR register. The DSI_ISR0 and DSI_ISR1 registers are always cleared after a read operation. The interrupt line is cleared if all registers that caused the interrupt are read.

The interrupt force registers (DSI_FIR0 and DSI_FIR1) are used for test purposes: they allow triggering the interrupt events individually without the need to activate the conditions that trigger the interrupt sources (it is extremely complex to generate the stimuli for that purpose). This feature also facilitates the development and testing of the software associated with the interrupt events. Setting any bit of these registers to 1 triggers the corresponding interrupt.

The light yellow boxes in Figure 236 illustrate the location of some of the errors.

Figure 236. Error sources

Figure 236. Error sources. A block diagram showing error sources in the DSI Host. The diagram includes an LTDC Interface connected to LTDC ctrl FIFO and LTDC pixel FIFO, which are connected to a Packet Handler containing Video Mode FSM and Command Mode FSM. A GEN Interface connected to APB is linked to GEN Command FIFOs, GEN Pld Send FIFOs, and GEN Pld RCV FIFOs. These are connected to a Packet Analyzer containing VC Router and ECC/CRC Analysis. Error sources are indicated by yellow boxes: DPI_PAYLOAD_WR_ERR, GEN_COMMAND_WR_ERR, GEN_PAYLOAD_WR_ERR, GEN_PAYLOAD_RD_ERR, GEN_PAYLOAD_SEND_ERR, GEN_PAYLOAD_RECV_ERR, ECC_SINGLE_ERR, ECC_MULTI_ERR, CRC_ERR, PKT_SIZE_ERR, EOTP_ERR, and ACK_WITH_ERR.
Figure 236. Error sources. A block diagram showing error sources in the DSI Host. The diagram includes an LTDC Interface connected to LTDC ctrl FIFO and LTDC pixel FIFO, which are connected to a Packet Handler containing Video Mode FSM and Command Mode FSM. A GEN Interface connected to APB is linked to GEN Command FIFOs, GEN Pld Send FIFOs, and GEN Pld RCV FIFOs. These are connected to a Packet Analyzer containing VC Router and ECC/CRC Analysis. Error sources are indicated by yellow boxes: DPI_PAYLOAD_WR_ERR, GEN_COMMAND_WR_ERR, GEN_PAYLOAD_WR_ERR, GEN_PAYLOAD_RD_ERR, GEN_PAYLOAD_SEND_ERR, GEN_PAYLOAD_RECV_ERR, ECC_SINGLE_ERR, ECC_MULTI_ERR, CRC_ERR, PKT_SIZE_ERR, EOTP_ERR, and ACK_WITH_ERR.

Table 212 explains the reasons that set off these interrupts and also explains how to recover from these interrupts.

Table 212. Error causes and recovery

DSI Host interrupt and status registerBitNameError causeRecommended method to handle the error
020PE4The D-PHY reports the LP1 contention error.
The D-PHY host detects the contention while trying to drive the line high.
Recover the D-PHY from contention. Reset the DSI Host and transmit the packets again. If this error is recurrent, carefully analyze the connectivity between the Host and the device.
019PE3D-PHY reports the LP0 contention error.
The D-PHY Host detects the contention while trying to drive the line low.
Recover the D-PHY from contention. Reset the DSI Host and transmit the packets again. If this error is recurrent, carefully analyze the connectivity between the Host and the device.

Table 212. Error causes and recovery (continued)

DSI Host interrupt and status registerBitNameError causeRecommended method to handle the error
018PE2The D-PHY reports the false control error.
The D-PHY detects an incorrect line state sequence in lane 0 lines.
Device does not behave as expected, communication with the device is not properly established. This is an unrecoverable error.
Reset the DSI Host and the D-PHY. If this error is recurrent, analyze the behavior of the device.
017PE1The D-PHY reports the LPDT error.
The D-PHY detects that the LDPT did not match a multiple of 8 bits.
The data reception is not reliable. The D-PHY recovers but the received data from the device might not be reliable.
It is recommended to reset the DSI Host and repeat the RX transmission.
016PE0The D-PHY reports the escape entry error.
The D-PHY does not recognize the received escape entry code.
The D-PHY Host does not recognize the escape entry code. The transmission is ignored. The D-PHY Host recovers but the system must repeat the RX reception.
015AE15This error is directly retrieved from acknowledge with error packet.
The device detected a protocol violation in the reception.
Refer to the display documentation. When this error is active, the device must have another read-back command that reports additional information about this error.
Read the additional information and take appropriate actions.
014AE14The acknowledge with error packet contains this error.
The device chooses to use this bit for error report.
Refer to the device documentation regarding possible reasons for this error and take appropriate actions.
013AE13The acknowledge with error packet contains this error.
The device reports that the transmission length does not match the packet length.
Possible reason for this is multiple errors present in the packet header (more than 2), so the error detection fails and the device does not discard the packet. In this case, the packet header is corrupt and can cause decoding mismatches.
Transmit the packets again. If this error is recurrent, carefully analyze the connectivity between the Host and the device.
012AE12The acknowledge with error packet contains this error.
The device does not recognize the VC ID in at least one of the received packets.
Possible reason for this is multiple errors present in the packet header (more than 2), so the error detection fails and the device does not discard the packet. In this case, the packet header is corrupt and can cause decoding mismatches.
Transmit the packets again. If this error is recurrent, carefully analyze the connectivity between the Host and the device.
011AE11The acknowledge with error packet contains this error.
The device does not recognize the data type of at least one of the received packets.
Check the device capabilities. It is possible that there are some packets not supported by the device.
Repeat the transmission.

Table 212. Error causes and recovery (continued)

DSI Host interrupt and status registerBitNameError causeRecommended method to handle the error
010AE10The acknowledge with error packet contains this error.
The device detects the CRC errors in at least one of the received packets.
Some of the long packets, transmitted after the last acknowledge request, might contain the CRC errors in the payload.
If the payload content is critical, transmit the packets again.
If this error is recurrent, carefully analyze the connectivity between the Host and the device.
09AE9The acknowledge with error packet contains this error.
The device detects multi-bit ECC errors in at least one of the received packets.
The device does not interpret the packets transmitted after the last acknowledge request.
If the packets are critical, transmit the packets again.
If this error is recurrent, carefully analyze the connectivity between the Host and the device.
08AE8The acknowledge with error packet contains this error.
The device detects and corrects the 1 bit ECC error in at least one of the received packets.
No action is required.
The device acknowledges the packet.
If this error is recurrent, analyze the signal integrity or the noise conditions of the link.
07AE7The acknowledge with error packet contains this error.
The device detects the line Contention through LP0/LP1 detection.
This error might corrupt the low-power data reception and transmission.
Ignore the packets and transmit them again. The device recovers automatically.
If this error is recurrent, check the device capabilities and the connectivity between the Host and device.
Refer to section 7.2.1 of the DSI Specification 1.1.
06AE6The acknowledge with error packet contains this error.
The device detects the false control error.
The device detects one of the following:
– The LP-10 (LP request) is not followed by the remainder of a valid escape or turnaround sequence.
– The LP-01 (HS request) is not followed by a bridge state (LP-00).
The D-PHY communications are corrupted.
This error is unrecoverable.
Reset the DSI Host and the D-PHY.
Refer to the section 7.1.6 of the DSI Specification 1.1.

Table 212. Error causes and recovery (continued)

DSI Host interrupt and status registerBitNameError causeRecommended method to handle the error
05AE5The acknowledge with error packet contains this error. The display timeout counters for a HS reception and LP transmission expire.It is possible that the Host and device timeout counters are not correctly configured. The device HS_TX timeout must be shorter than the Host HS_RX timeout. Host LP_RX timeout must be longer than the device LP_TX timeout. Check and confirm that the Host configuration is consistent with the device specifications. This error is automatically recovered, although there is no guarantee that all the packets in the transmission or reception are complete. For additional information about this error, see section 7.2.2 of the DSI Specification 1.1.
04AE4The acknowledge with error packet contains this error. The device reports that the LPDT is not aligned in an 8-bit boundaryThere is no guarantee that the device properly receives the packets. Transmit the packets again. For additional information about this error, see section 7.1.5 of the DSI Specification.
03AE3The acknowledge with error packet contains this error. The device does not recognize the escape mode entry command.The device does not recognize the escape mode entry code. Check the device capability. For additional information about this error, see section 7.1.4 of the DSI Specification. Repeat the transmission to the device.
02AE2The acknowledge with error packet contains this error. The device detects the HS transmission did not end in an 8-bit boundary when the EoT sequence is detected.There is no guarantee that the device properly received the packets. Re-transmission must be performed. Transmit the packets again. For additional information about this error, see section 7.1.3 of the DSI Specification 1.1.
01AE1The acknowledge with error packet contains this error. The device detects that the SoT leader sequence is corrupted.The device discards the incoming transmission. Re-transmission must be performed by the Host. For additional information about this error, see section 7.1.2 of the DSI Specification 1.1.
00AE0The acknowledge with error packet contains this error. The device reports that the SoT sequence is received with errors but synchronization can still be achieved.The device is tolerant to single bit and some multi-bit errors in the SoT sequence but the packet correctness is compromised. If the packet content was important, transmit the packets again. For additional information about this error, see section 7.1.1 of the DSI Specification 1.1.

Table 212. Error causes and recovery (continued)

DSI Host interrupt and status registerBitNameError causeRecommended method to handle the error
112GPRXEAn overflow occurs in the generic read FIFO.The read FIFO size is not correctly dimensioned for the maximum read-back packet size.
Configure the device to return the read data with a suitable size for the Host dimensioned FIFO. Data stored in the FIFO is corrupted.
Reset the DSI Host and repeat the read procedure.
111GPRDEAn underflow occurs in the generic read FIFO.System does not wait for the read procedure to end and starts retrieving the data from the FIFO. The read data is requested before it is fully received. Data is corrupted.
Reset the DSI Host and repeat the read procedure. Check that the read procedure is completed before reading the data through the APB interface.
110GPTXEAn underflow occurs in the generic write payload FIFO.The system writes the packet header before the respective packet payload is completely loaded into the payload FIFO. This error is unrecoverable, the transmitted packet is corrupted.
Reset the DSI Host and repeat the write procedure.
19GPWREAn overflow occurs in the generic write payload FIFO.The payload FIFO size is not correctly dimensioned to store the total payload of a long packet. Data stored in the FIFO is corrupted.
Reset the DSI Host and repeat the write procedure.
18GCWREAn overflow occurs in the generic command FIFO.The command FIFO size is not correctly dimensioned to store the total headers of a burst of packets. Data stored in the FIFO is corrupted.
Reset the DSI Host and repeat the write procedure.
17LPWREAn overflow occurs in the DPI pixel payload FIFO.The controller FIFO dimensions are not correctly set up for the operating resolution. Check the video mode configuration registers. They must be consistent with the LTDC video resolution. The pixel data sequence is corrupted.
Reset the DSI Host and re-initiate the Video transmission.
16EOTPEHost receives a transmission that does not end with an end of transmission packet.This error is not critical for the data integrity of the received packets.
Check if the device supports the transmission of EoTp packets.

Table 212. Error causes and recovery (continued)

DSI Host interrupt and status registerBitNameError causeRecommended method to handle the error
15PSEHost receives a transmission that does not end in the expected boundaries.The integrity of the received data cannot be guaranteed.
Reset the DSI Host and repeat the read procedure.
14CRCEHost reports that a received long packet has a CRC error in its payload.The received payload data is corrupted.
Reset the DSI Host and repeat the read procedure. If this error is recurrent, check the DSI connectivity link for the noise levels.
13ECCMEHost reports that a received packet contains multiple ECC errors.The received packet is corrupted. The DSI Host ignores all the following packets. The DSI Host must repeat the read procedure.
12ECCSEHost reports that a received packet contains a single bit error.This error is not critical because the DSI Host can correct the error and properly decode the packet.
If this error is recurrent, check the DSI connectivity link for signal integrity and noise levels.
11TOLPRXHost reports that the configured timeout counter for the low-power reception has expired.Once the configured timeout counter ends, the DSI Host automatically resets the controller side and recovers to normal operation. Packet transmissions happening during this event are lost.
If this error is recurrent, check the timer configuration for any issue. This timer must be greater than the maximum low-power transmission generated by the device.
10TOHSTXHost reports that the configured timeout counter for the high-speed transmission has expired.Once the configured timeout counter ends, the DSI Host automatically resets the controller side and recovers to normal operation. Packet transmissions happening during this event are lost.
If this error is recurrent, check the timer configuration for any issue. This timer must be greater than the maximum high-speed transmission bursts generated by the Host.
DSI Wrapper10PLLUFThe PLL of the D-PHY has unlocked.This error can be critical.
The graphical subsystem must be reconfigured and restarted.

30.14 Programing procedure

To operate the DSI Host the user must be familiar with the MIPI® DSI specification. Every software programmable register is accessible through the APB interface.

30.14.1 Programing procedure overview

The programming procedure for video mode or adapted command mode must respect the following order:

  1. 1. Configure the RCC (refer to the RCC chapter)
    • – Enable clock for DSI and LTDC
    • – Configure LTDC PLL, turn it ON and wait for its lock
  2. 2. Optionally configure the GPIO (if tearing effect requires GPIO usage for example)
  3. 3. Optionally valid the ISR
  4. 4. Configure the LTDC (refer to the LTDC chapter)
    • – Program the panel timings
    • – Enable the relevant layers
  5. 5. Turn on the DSI regulator and wait for the regulator to be ready, as described in Section 30.12.5
  6. 6. Configure the DSI PLL, turn it ON and wait for its lock as described in Section 30.12.4
  7. 7. Configure the D-PHY parameters in the DSI Host and the DSI Wrapper to define D-PHY configuration and timing as detailed in Section 30.14.2
  8. 8. Configure the DSI Host timings as detailed in Section 30.14.3
  9. 9. Configure the DSI Host flow control and DBI interface as detailed in Section 30.14.4
  10. 10. Configure the DSI Host LTDC interface as detailed in Section 30.14.5
  11. 11. Configure the DSI Host for video mode as detailed in Section 30.14.6 or adapted command mode as detailed in Section 30.14.7
  12. 12. Enable the D-PHY setting the DEN bit of the DSI_PCTLR
  13. 13. Enable the D-PHY clock lane setting the CKEN bit of the DSI_PCTLR
  14. 14. Enable the DSI Host setting the EN bit of the DSI_CR
  15. 15. Enable the DSI Wrapper setting the DSIEN bit of the DSI_WCR
  16. 16. Optionally send DCS commands through the APB generic interface to configure the display
  17. 17. Enable the LTDC in the LTDC
  18. 18. Start the LTDC flow through the DSI Wrapper (CR.LTDCEN = 1)

In video mode, the data streaming starts as soon as the LTDC is enabled.

In adapted command mode, the frame buffer update is launched as soon as the CR.LTDCEN bit is set.

30.14.2 Configuring the D-PHY parameters

The D-PHY requires a specific configuration prior starting any communications. The configuration parameters are stored either in the DSI Host or the DSI Wrapper.

Configuring the D-PHY parameters in the DSI Wrapper

The DSI Wrapper can be used to fine tune either timing or physical parameters of the D-PHY. This operation is not required for a standard usage of the D-PHY. All the fields and parameters are detailed in the register description of the DSI Wrapper.

Only one field is mandatory to properly start the D-PHY: the unit interval multiplied by 4 (UIX4) field of the DSI Wrapper PHY configuration register 1 (DSI_WPCR0).

This field defines the bit period in high-speed mode in unit of 0.25 ns, and is used as a timebase for all the timings managed by the D-PHY.

If the link is working at 600 Mbit/s, the unit interval shall be 1.667 ns, that becomes 6.667 ns when multiplied by four. When rounded down, a value of 6 must be written in the UIX4 field of the DSI_WPCR0 register.

Configuring the D-PHY parameters in the DSI Host

The DSI Host stores the configuration of D-PHY timing parameters and number of lanes.

The following fields must be configured prior to any startup:

30.14.3 Configuring the DSI Host timing

All the protocol timing must be configured in the DSI Host.

Clock divider configuration

Two clocks are generated internally

The timeout clock is used as the timing unit in the configuration of HS to LP and LP to HS transition error. Its division factor is configured by the timeout clock division (TOCKDIV) field of the DSI Host clock control register (DSI_CCR).

The TX escape clock is used in low-power transmission. Its division factor is configured by the TX escape clock division (TXECKDIV) field of the DSI Host clock control register (DSI_CCR) relatively to the lanebyteclock. Its typical value must be around 20 MHz.

Timeout configuration

The timings for timeout management as described in Section 30.8 are configured in the DSI Host timeout counter configuration registers (DSI_TCCR0 to DSI_TCCR5).

30.14.4 Configuring flow control and DBI interface

The flow control is configured thanks to the DSI Host protocol configuration register (DSI_PCR). The configuration parameters are the following

Their values depends on the protocol to be used for the communication with the DSI display.

The virtual channel ID used for the generic DBI interface must be configured by the virtual channel ID (VCID) field of the DSI Host generic VCID register (DSI_GVCIDR).

All the DCS command, depending on their type, can be transmitted or received either in high-speed or low-power. For each of them, a dedicated configuration bit must be programmed in the DSI Host command mode configuration register (DSI_CMCR).

Acknowledge request for packet or tearing effect event must also be configured in the DSI Host command mode configuration register (DSI_CMCR).

30.14.5 Configuring the DSI Host LTDC interface

As the DSI Host is interface to the system through the LTDC for video mode or adapted command mode, the DSI Wrapper perform a low level interfacing in between.

The parameter programmed into the DSI Wrapper must be aligned with the parameters programmed into the LTDC and the DSI Host.

The following fields must be configured:

30.14.6 Configuring the video mode

The video mode configuration defines the behavior of the controller in low-power for command transmission, the type of video transmission (burst or non-burst mode) and the panel horizontal and vertical timing:

line, a malfunction occurs. This phenomenon can be avoided by configuring the DSI Host to go to low-power once per line.

Figure 237 illustrates the steps for configuring the DPI packet transmission.

Figure 237. Video packet transmission configuration flow diagram

Flowchart for video packet transmission configuration. It starts with 'Global configuration Configure the DPI I/F', leading to a 'Burst Mode' decision. If 'NO', it goes to 'Determine the DSI link to pixel ratio', then to an 'Enable multiple packets' decision. If 'YES', it goes to 'Determine number of pixel per packet Calculate the number of chunks Determine the chunk overhead (needs to be ≥ 12 or = 6)', then to an 'Enable null packets' decision. If 'YES', it goes to 'Null packet size'. If 'NO', it goes to 'Calculate: Hline_time - Hsa_time - Hbp_time Configure: VSA lines- VBP lines - Vact lines - VFP lines'. If 'Enable multiple packets' is 'NO', it goes to 'Determine number of pixel per packet', then to the same calculation block. If 'Burst Mode' is 'YES', it goes to 'Configure video_packet_size', then to the same calculation block. A parallelogram 'If the DSI link to pixel ratio is > 1' is connected to the 'Enable multiple packets' decision. Another parallelogram 'If the DSI chunk overhead is ≥ 12' is connected to the 'Enable null packets' decision. The diagram is labeled MSV35876V1 in the bottom right corner.
graph TD; A[Global configuration
Configure the DPI I/F] --> B{Burst Mode}; B -- NO --> C[Determine the DSI link to pixel ratio]; B -- YES --> D[Configure video_packet_size]; C --> E{Enable multiple packets}; E -- YES --> F[Determine number of pixel per packet
Calculate the number of chunks
Determine the chunk overhead
(needs to be ≥ 12 or = 6)]; E -- NO --> G[Determine number of pixel per packet]; E --> H[/If the DSI link to pixel ratio is > 1/]; F --> I{Enable null packets}; I -- YES --> J[Null packet size]; I -- NO --> K[Calculate:
Hline_time - Hsa_time - Hbp_time

Configure:
VSA lines- VBP lines - Vact lines - VFP lines]; I --> L[/If the DSI chunk overhead is ≥ 12/]; G --> K; D --> K;
Flowchart for video packet transmission configuration. It starts with 'Global configuration Configure the DPI I/F', leading to a 'Burst Mode' decision. If 'NO', it goes to 'Determine the DSI link to pixel ratio', then to an 'Enable multiple packets' decision. If 'YES', it goes to 'Determine number of pixel per packet Calculate the number of chunks Determine the chunk overhead (needs to be ≥ 12 or = 6)', then to an 'Enable null packets' decision. If 'YES', it goes to 'Null packet size'. If 'NO', it goes to 'Calculate: Hline_time - Hsa_time - Hbp_time Configure: VSA lines- VBP lines - Vact lines - VFP lines'. If 'Enable multiple packets' is 'NO', it goes to 'Determine number of pixel per packet', then to the same calculation block. If 'Burst Mode' is 'YES', it goes to 'Configure video_packet_size', then to the same calculation block. A parallelogram 'If the DSI link to pixel ratio is > 1' is connected to the 'Enable multiple packets' decision. Another parallelogram 'If the DSI chunk overhead is ≥ 12' is connected to the 'Enable null packets' decision. The diagram is labeled MSV35876V1 in the bottom right corner.

Example of video configuration

The following is an example of video packet transmission configuration:

Video resolution:

Configuration steps:

30.14.7 Configuring the adapted command mode

The adapted command mode requires the following parameters to be configured:

30.14.8 Configuring the video mode pattern generator

DSI Host can transmit a color bar pattern without horizontal/vertical color bar and D-PHY BER testing pattern without any kind of stimuli.

Figure 238 shows the programming sequence to send a test pattern:

  1. 1. Configure the DSI_MCR register to enable video mode. Configure the video mode type using DSI_VMCR.VMT.
  2. 2. Configure the DSI_LCOLCR register.
  3. 3. Configure the frame using registers shown in Figure 239 (where the gray area indicates the transferred pixels).
  4. 4. Configure the pattern generation mode (DSI_VMCR.PGM) and the pattern orientation (DSI_VMCR.PGO), and enable them (DSI_VMCR.PGE).

Figure 238. Programming sequence to send a test pattern

Flowchart showing the programming sequence to send a test pattern: Video Mode selection, Color coding configuration, Video frame configuration, Video pattern generator configuration.
graph TD; Start(( )) --> A[Video Mode selection]; A --> B[Color coding configuration]; B --> C[Video frame configuration]; C --> D[Video pattern generator configuration]; D --> End(( ));

MSV35875V1

Flowchart showing the programming sequence to send a test pattern: Video Mode selection, Color coding configuration, Video frame configuration, Video pattern generator configuration.

Figure 239. Frame configuration registers

Diagram of frame configuration registers showing the layout of a video frame. The frame is divided into several horizontal sections: DSI_VVSACR.VSA (Line), DSI_VVBPCR.VBP (Line), a central payload section (DSI_VPCR.VPSIZE (Pixel) * DSI_VCCR.NUMC), and DSI_VVPCR.VFP (Line). The payload section is further divided into DSI_VHSACR.HSA (lanebyteclk), DSI_VHBPCR.HBP (lanebyteclk), and HFP (lanebyteclk). The total width of the frame is DSI_VLCR.HLINE (lanebyteclk). The height of the frame is DSI_VVACR.VA (Line).

The diagram illustrates the structure of a video frame as defined by configuration registers. It shows the following components and their units:

Diagram of frame configuration registers showing the layout of a video frame. The frame is divided into several horizontal sections: DSI_VVSACR.VSA (Line), DSI_VVBPCR.VBP (Line), a central payload section (DSI_VPCR.VPSIZE (Pixel) * DSI_VCCR.NUMC), and DSI_VVPCR.VFP (Line). The payload section is further divided into DSI_VHSACR.HSA (lanebyteclk), DSI_VHBPCR.HBP (lanebyteclk), and HFP (lanebyteclk). The total width of the frame is DSI_VLCR.HLINE (lanebyteclk). The height of the frame is DSI_VVACR.VA (Line).

MSv35877V1

Note: The number of pixels of payload is restricted to a multiple of a value provided in Table 202.

30.14.9 Managing ULPM

There are two ways to configure the software to enter and exit the ULPM:

Clock management for ULPM sequence

The ULPM management state machine is working on the lanebyteclock provided by the D-PHY.

Because the D-PHY is providing the lanebyteclock only when the clock lane is not in ULPM state, it is mandatory to switch the lanebyteclock source of the DSI Host before starting the ULPM mode entry sequence.

The lanebyteclock source is controlled by the RCC. It can be

Process flow to enter the ULPM

Implement the process described in detail in the following procedure to enter the ULPM on both clock lane and data lanes:

  1. 1. Verify the initial status of the DSI Host:
    • – DSI_PCTLR[2:1] = 2'h3
    • – DSI_WRPCR.PLLEN = 1'h1 and DSI_WRPCR.REGEN = 1'h1
    • – DSI_PUCR[3:0] = 4'h0
    • – DSI_PTTTCR[3:0] = 4'h0
    • – Verify that all active lanes are in Stop state and the D-PHY PLL is locked:
      One-lane configuration: DSI_PSR[6:4] = 3'h3 and DSI_PSR[1] = 1'h0 and DSI_WISR.PLLS = 1'h1
      Two-lanes configuration: DSI_PSR[8:4] = 5'h1B and DSI_PSR[1] = 1'h0 and DSI_WISR.PLLS = 1'h1
  2. 2. Switch the lanebyteclock source in the RCC from D-PHY to system PLL
  3. 3. Set DSI_PUCR[3:0] = 4'h5 to enter ULPM in the data and the clock lanes.
  4. 4. Wait until the D-PHY active lanes enter into ULPM:
    • – One-lane configuration: DSI_PSR[6:1] = 6'h00
    • – Two-lanes configuration: DSI_PSR[8:1] = 8'h00
    The DSI Host is now in ULPM.
  5. 5. Turn off the D-PHY PLL by setting DSI_WRPCR.PLLEN = 1'b0

Process flow to exit the ULPM

Implement the process flow described in the following procedure to exit the ULPM on both clock lane and data lanes:

  1. 1. Verify that all active lanes are in ULPM:
    • – One-lane configuration: DSI_PSR[6:1] = 6'h00
    • – Two-lanes configuration: DSI_PSR[8:1] = 8'h00
  2. 2. Turn on the D-PHY PLL by setting DSI_WRPCR.PLLLEN = 1'b1.
  3. 3. Wait until D-PHY PLL locked
    • – DSI_WISR.PLLS = 1'b1
  4. 4. Without de-asserting the ULPM request bits, assert the exit ULPM bits by setting DSI_PUCR[3:0] = 4'hF.
  5. 5. Wait until all active lanes exit ULPM:
    • – One-lane configuration:
      DSI_PSR[5] = 1'b1
      DSI_PSR[3] = 1'b1
    • – Two-lanes configuration:
      DSI_PSR[8] = 1'b1
      DSI_PSR[5] = 1'b1
      DSI_PSR[3] = 1'b1
  6. 6. Wait for 1 ms.
  7. 7. De-assert the ULPM requests and the ULPM exit bits by setting DSI_PUCR [3:0] = 4'h0.
  8. 8. Switch the lanbyteclock source in the RCC from system PLL to D-PHY
  9. 9. The DSI Host is now in Stop state and the D-PHY PLL is locked:
    • – One-lane configuration:
      DSI_PSR[6:4] = 3'h3
      DSI_PSR[1] = 1'h0
      DSI_WRPCR.PLLLEN = 1'b1
    • – Two-lanes configuration:
      DSI_PSR[8:4] = 5'h1B
      DSI_PSR[1] = 1'h0
      DSI_WRPCR.PLLLEN = 1'b1

30.15 DSI Host registers

30.15.1 DSI Host version register (DSI_VR)

Address offset: 0x0000

Reset value: 0x3133 302A

31302928272625242322212019181716
VERSION[31:16]
rrrrrrrrrrrrrrrr
1514131211109876543210
VERSION[15:0]
rrrrrrrrrrrrrrrr

Bits 31:0 VERSION[31:0] : Version of the DSI Host

This read-only register contains the version of the DSI Host

30.15.2 DSI Host control register (DSI_CR)

Address offset: 0x0004

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.Res.Res.Res.Res.Res.Res.Res.EN
rw

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

Bit 0 EN : Enable

This bit configures the DSI Host in either power-up mode or to reset.

0: DSI Host disabled (under reset)

1: DSI Host enabled

30.15.3 DSI Host clock control register (DSI_CCR)

Address offset: 0x0008

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
TOCKDIV[7:0]TXECKDIV[7:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

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

Bits 15:8 TOCKDIV[7:0] : Timeout clock division

This field indicates the division factor for the timeout clock used as the timing unit in the configuration of HS to LP and LP to HS transition error.

Bits 7:0 TXECKDIV[7:0] : TX escape clock division

This field indicates the division factor for the TX escape clock source (lanebyteclk). The values 0 and 1 stop the TX_ESC clock generation.

30.15.4 DSI Host LTDC VCID register (DSI_LVCIDR)

Address offset: 0x000C

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.Res.Res.Res.Res.Res.Res.VCID[1:0]
rwrw

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

Bits 1:0 VCID[1:0] : Virtual channel ID

These bits configure the virtual channel ID for the LTDC interface traffic.

30.15.5 DSI Host LTDC color coding register (DSI_LCOLCR)

Address offset: 0x0010

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.LPERes.Res.Res.Res.COLC[3:0]
rwrwrwrwrw

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

Bit 8 LPE : Loosely packet enable

This bit enables the loosely packed variant to 18-bit configuration

0: Loosely packet variant disabled

1: Loosely packet variant enabled

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

Bits 3:0 COLC[3:0] : Color coding

This field configures the DPI color coding.
0000: 16-bit configuration 1
0001: 16-bit configuration 2
0010: 16-bit configuration 3
0011: 18-bit configuration 1
0100: 18-bit configuration 2
0101: 24-bit
Others: Reserved

30.15.6 DSI Host LTDC polarity configuration register (DSI_LPCR)

Address offset: 0x0014

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.Res.Res.Res.Res.Res.HSPVSPDEP
rwrwrw

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

Bit 2 HSP : HSYNC polarity

This bit configures the polarity of HSYNC pin.
0: HSYNC pin active high (default)
1: VSYNC pin active low

Bit 1 VSP : VSYNC polarity

This bit configures the polarity of VSYNC pin.
0: Shutdown pin active high (default)
1: Shutdown pin active low

Bit 0 DEP : Data enable polarity

This bit configures the polarity of data enable pin.
0: Data enable pin active high (default)
1: Data enable pin active low

30.15.7 DSI Host low-power mode configuration register (DSI_LPMCR)

Address offset: 0x0018

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.LPSIZE[7:0]
rwrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.VLPSIZE[7:0]
rwrwrwrwrwrwrwrw

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

Bits 23:16 LPSIZE[7:0] : Largest packet size

This field is used for the transmission of commands in low-power mode. It defines the size, in bytes, of the largest packet that can fit in a line during VSA, VBP and VFP regions.

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

Bits 7:0 VLPSIZE[7:0] : VACT largest packet size

This field is used for the transmission of commands in low-power mode. It defines the size, in bytes, of the largest packet that can fit in a line during VACT regions.

30.15.8 DSI Host protocol configuration register (DSI_PCR)

Address offset: 0x002C

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.Res.Res.Res.CRCRXEECCRXEBTAEETRXEETTXE
rwrwrwrwrw

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

Bit 4 CRCRXE : CRC reception enable

This bit enables the CRC reception and error reporting.

0: CRC reception is disabled.

1: CRC reception is enabled.

Bit 3 ECCRXE : ECC reception enable

This bit enables the ECC reception, error correction and reporting.

0: ECC reception is disabled.

1: ECC reception is enabled.

Bit 2 BTAE : Bus-turn-around enable

This bit enables the bus-turn-around (BTA) request.

0: Bus-turn-around request is disabled.

1: Bus-turn-around request is enabled.

Bit 1 ETRXE : EoTp reception enable

This bit enables the EoTp reception.

0: EoTp reception is disabled.

1: EoTp reception is enabled.

Bit 0 ETTXE : EoTp transmission enable

This bit enables the EoTP transmission.

0: EoTp transmission is disabled.

1: EoTp transmission is enabled.

30.15.9 DSI Host generic VCID register (DSI_GVCIDR)

Address offset: 0x0030

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.Res.Res.Res.Res.Res.Res.VCID[1:0]
rwrw

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

Bits 1:0 VCID[1:0] : Virtual channel ID
This field indicates the generic interface read-back virtual channel identification.

30.15.10 DSI Host mode configuration register (DSI_MCR)

Address offset: 0x0034

Reset value: 0x0000 0001

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.Res.CMDM
rw

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

Bit 0 CMDM : Command mode
This bit configures the DSI Host in either video or command mode.
0: DSI Host is configured in video mode.
1: DSI Host is configured in command mode.

30.15.11 DSI Host video mode configuration register (DSI_VMCR)

Address offset: 0x0038

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.PGORes.Res.Res.PGMRes.Res.Res.PGE
rwrwrw
1514131211109876543210
LPCEFBTAAELPHFPELPHBPELPVAELPVFPELPVBPELPVSAERes.Res.Res.Res.Res.Res.VMT[1:0]
rwrwrwrwrwrwrwrwrwrw

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

Bit 24 PGO : Pattern generator orientation

This bit configures the color bar orientation.

0: Vertical color bars.

1: Horizontal color bars.

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

Bit 20 PGM : Pattern generator mode

This bit configures the pattern generator mode.

0: Color bars (horizontal or vertical).

1: BER pattern (vertical only).

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

Bit 16 PGE : Pattern generator enable

This bit enables the video mode pattern generator.

0: Pattern generator is disabled.

1: Pattern generator is enabled.

Bit 15 LPCE : Low-power command enable

This bit enables the command transmission only in low-power mode.

0: Command transmission in low-power mode is disabled.

1: Command transmission in low-power mode is enabled.

Bit 14 FBTAAE : Frame bus-turn-around acknowledge enable

This bit enables the request for an acknowledge response at the end of a frame.

0: Acknowledge response at the end of a frame is disabled.

1: Acknowledge response at the end of a frame is enabled.

Bit 13 LPHFPE : Low-power horizontal front-porch enable

This bit enables the return to low-power inside the horizontal front-porch (HFP) period when timing allows.

0: Return to low-power inside the HFP period is disabled.

1: Return to low-power inside the HFP period is enabled.

Bit 12 LPHBPE : Low-power horizontal back-porch enable

This bit enables the return to low-power inside the horizontal back-porch (HBP) period when timing allows.

0: Return to low-power inside the HBP period is disabled.

1: Return to low-power inside the HBP period is enabled.

Bit 11 LPVAE : Low-power vertical active enable

This bit enables to return to low-power inside the vertical active (VACT) period when timing allows.

0: Return to low-power inside the VACT is disabled.

1: Return to low-power inside the VACT is enabled.

Bit 10 LPVFPE : Low-power vertical front-porch enable

This bit enables to return to low-power inside the vertical front-porch (VFP) period when timing allows.

0: Return to low-power inside the VFP is disabled.

1: Return to low-power inside the VFP is enabled.

Bit 9 LPVBPE : Low-power vertical back-porch enable

This bit enables to return to low-power inside the vertical back-porch (VBP) period when timing allows.
0: Return to low-power inside the VBP is disabled.
1: Return to low-power inside the VBP is enabled.

Bit 8 LPVSAE : Low-power vertical sync active enable

This bit enables to return to low-power inside the vertical sync time (VSA) period when timing allows.
0: Return to low-power inside the VSA is disabled.
1: Return to low-power inside the VSA is enabled.

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

Bits 1:0 VMT[1:0] : Video mode type

This field configures the video mode transmission type :
00: Non-burst with sync pulses.
01: Non-burst with sync events.
1x: Burst mode

30.15.12 DSI Host video packet configuration register (DSI_VPCR)

Address offset: 0x003C

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.VPSIZE[13:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrw

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

Bits 13:0 VPSIZE[13:0] : Video packet size

This field configures the number of pixels in a single video packet.
For 18-bit not loosely packed data types, this number must be a multiple of 4.
For YCbCr data types, it must be a multiple of 2 as described in the DSI specification.

30.15.13 DSI Host video chunks configuration register (DSI_VCCR)

Address offset: 0x0040

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.NUMC[12:0]
rwrwrwrwrwrwrwrwrwrwrwrwrw

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

Bits 12:0 NUMC[12:0] : Number of chunks

This register configures the number of chunks to be transmitted during a line period (a chunk consists of a video packet and a null packet).

If set to 0 or 1, the video line is transmitted in a single packet.

If set to 1, the packet is part of a chunk, so a null packet follows it if NPSIZE > 0. Otherwise, multiple chunks are used to transmit each video line.

30.15.14 DSI Host video null packet configuration register (DSI_VNPCR)

Address offset: 0x0044

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.NPSIZE[12:0]
rwrwrwrwrwrwrwrwrwrwrwrwrw

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

Bits 12:0 NPSIZE[12:0] : Null packet size

This field configures the number of bytes inside a null packet.

Setting to 0 disables the null packets.

30.15.15 DSI Host video HSA configuration register (DSI_VHSACR)

Address offset: 0x0048

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.HSA[11:0]
rwrwrwrwrwrwrwrwrwrwrwrw

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

Bits 11:0 HSA[11:0] : Horizontal synchronism active duration

This field configures the horizontal synchronism active period in lane byte clock cycles.

30.15.16 DSI Host video HBP configuration register (DSI_VHBPCR)

Address offset: 0x004C

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.HBP[11:0]
rwrwrwrwrwrwrwrwrwrwrwrw

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

Bits 11:0 HBP[11:0] : Horizontal back-porch duration

This field configures the horizontal back-porch period in lane byte clock cycles.

30.15.17 DSI Host video line configuration register (DSI_VLCR)

Address offset: 0x0050

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.HLINE[14:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

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

Bits 14:0 HLINE[14:0] : Horizontal line duration

This field configures the total of the horizontal line period (HSA+HBP+HACT+HFP) counted in lane byte clock cycles.

30.15.18 DSI Host video VSA configuration register (DSI_VVSACR)

Address offset: 0x0054

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.VSA[9:0]
rwrwrwrwrwrwrwrwrwrw

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

Bits 9:0 VSA[9:0] : Vertical synchronism active duration

This field configures the vertical synchronism active period measured in number of horizontal lines.

30.15.19 DSI Host video VBP configuration register (DSI_VVBPCR)

Address offset: 0x0058

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.VBP[9:0]
rwrwrwrwrwrwrwrwrwrw

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

Bits 9:0 VBP[9:0] : Vertical back-porch duration

This field configures the vertical back-porch period measured in number of horizontal lines.

30.15.20 DSI Host video VFP configuration register (DSI_VVFPPCR)

Address offset: 0x005C

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.VFP[9:0]
rwrwrwrwrwrwrwrwrwrw

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

Bits 9:0 VFP[9:0] : Vertical front-porch duration

This field configures the vertical front-porch period measured in number of horizontal lines.

30.15.21 DSI Host video VA configuration register (DSI_VVACR)

Address offset: 0x0060

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.VA[13:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrw

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

Bits 13:0 VA[13:0] : Vertical active duration

This field configures the vertical active period measured in number of horizontal lines.

30.15.22 DSI Host LTDC command configuration register (DSI_LCCR)

Address offset: 0x0064

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
CMD SIZE[15:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

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

Bits 15:0 CMDSIZE[15:0] : Command size

This field configures the maximum allowed size for an LTDC write memory command, measured in pixels. Automatic partitioning of data obtained from LTDC is permanently enabled.

30.15.23 DSI Host command mode configuration register (DSI_CMCR)

Address offset: 0x0068

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.MRDPSRes.Res.Res.Res.DLWTXDSR0TXDSW1TXDSW0TX
rwrwrwrwrw
1514131211109876543210
Res.GLWTXGSR 2TXGSR 1TXGSR 0TXGSW 2TXGSW 1TXGSW 0TXRes.Res.Res.Res.Res.Res.ARETEARE
rwrwrwrwrwrwrwrwrw

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

Bit 24 MRDPS : Maximum read packet size

This bit configures the maximum read packet size command transmission type:

0: High-speed

1: Low-power

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

Bit 19 DLWTX : DCS long write transmission

This bit configures the DCS long write packet command transmission type:

0: High-speed

1: Low-power

Bit 18 DSR0TX : DCS short read zero parameter transmission

This bit configures the DCS short read packet with zero parameter command transmission type:

0: High-speed

1: Low-power

Bit 17 DSW1TX : DCS short read one parameter transmission

This bit configures the DCS short read packet with one parameter command transmission type:

0: High-speed

1: Low-power

Bit 16 DSW0TX : DCS short write zero parameter transmission

This bit configures the DCS short write packet with zero parameter command transmission type:

0: High-speed

1: Low-power

Bit 15 Reserved, must be kept at reset value.

Bit 14 GLWTX : Generic long write transmission

This bit configures the generic long write packet command transmission type :

0: High-speed

1: Low-power

Bit 13 GSR2TX : Generic short read two parameters transmission

This bit configures the generic short read packet with two parameters command transmission type:

0: High-speed

1: Low-power

Bit 12 GSR1TX : Generic short read one parameters transmission

This bit configures the generic short read packet with one parameters command transmission type:

0: High-speed

1: Low-power

Bit 11 GSR0TX : Generic short read zero parameters transmission

This bit configures the generic short read packet with zero parameters command transmission type:

0: High-speed

1: Low-power

Bit 10 GSW2TX : Generic short write two parameters transmission

This bit configures the generic short write packet with two parameters command transmission type:

0: High-speed

1: Low-power

Bit 9 GSW1TX : Generic short write one parameters transmission

This bit configures the generic short write packet with one parameters command transmission type:

0: High-speed

1: Low-power

Bit 8 GSW0TX : Generic short write zero parameters transmission

This bit configures the generic short write packet with zero parameters command transmission type:

0: High-speed

1: Low-power

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

Bit 1 ARE : Acknowledge request enable

This bit enables the acknowledge request after each packet transmission:

0: Acknowledge request is disabled.

1: Acknowledge request is enabled.

Bit 0 TEARE : Tearing effect acknowledge request enable

This bit enables the tearing effect acknowledge request:

0: Tearing effect acknowledge request is disabled.

1: Tearing effect acknowledge request is enabled.

30.15.24 DSI Host generic header configuration register (DSI_GHCR)

Address offset: 0x006C

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.WCMSB[7:0]
rwrwrwrwrwrwrwrw
1514131211109876543210
WCLSB[7:0]VCID[1:0]DT[5:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

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

Bits 23:16 WCMSB[7:0] : WordCount MSB

This field configures the most significant byte of the header packet's word count for long packets, or data 1 for short packets.

Bits 15:8 WCLSB[7:0] : WordCount LSB

This field configures the less significant byte of the header packet word count for long packets, or data 0 for short packets.

Bits 7:6 VCID[1:0] : Channel

This field configures the virtual channel ID of the header packet.

Bits 5:0 DT[5:0] : Type

This field configures the packet data type of the header packet.

30.15.25 DSI Host generic payload data register (DSI_GPDR)

Address offset: 0x0070

Reset value: 0x0000 0000

31302928272625242322212019181716
DATA4[7:0]DATA3[7:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
DATA2[7:0]DATA1[7:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:24 DATA4[7:0] : Payload byte 4

This field indicates the byte 4 of the packet payload.

Bits 23:16 DATA3[7:0] : Payload byte 3

This field indicates the byte 3 of the packet payload.

Bits 15:8 DATA2[7:0] : Payload byte 2

This field indicates the byte 2 of the packet payload.

Bits 7:0 DATA1[7:0] : Payload byte 1

This field indicates the byte 1 of the packet payload.

30.15.26 DSI Host generic packet status register (DSI_GPSR)

Address offset: 0x0074

Reset value: 0x0000 0015

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.RCBPRDFFPRDFEPWRFFPWRFECMDFFCMDFE
rrrrrrr

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

Bit 6 RCB : Read command busy

This bit is set when a read command is issued and cleared when the entire response is stored in the FIFO:

0: No read command on going

1: Read command on going

Bit 5 PRDFF : Payload read FIFO full

This bit indicates the full status of the generic read payload FIFO:

0: Read payload FIFO not full

1: Read payload FIFO full.

Bit 4 PRDFE : Payload read FIFO empty

This bit indicates the empty status of the generic read payload FIFO:

0: Read payload FIFO not empty

1: Read payload FIFO empty

Bit 3 PWRFF : Payload write FIFO full

This bit indicates the full status of the generic write payload FIFO:

0: Write payload FIFO not full

1: Write payload FIFO full

Bit 2 PWRFE : Payload write FIFO empty

This bit indicates the empty status of the generic write payload FIFO:

0: Write payload FIFO not empty

1: Write payload FIFO empty

Bit 1 CMDFF : Command FIFO full

This bit indicates the full status of the generic command FIFO:

0: Write payload FIFO not full

1: Write payload FIFO full

Bit 0 CMDFE : Command FIFO empty

This bit indicates the empty status of the generic command FIFO:

0: Write payload FIFO not empty

1: Write payload FIFO empty

30.15.27 DSI Host timeout counter configuration register 0 (DSI_TCCR0)

Address offset: 0x0078

Reset value: 0x0000 0000

31302928272625242322212019181716
HSTX_TOCNT[15:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
LPRX_TOCNT[15:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:16 HSTX_TOCNT[15:0] : High-speed transmission timeout counter

This field configures the timeout counter that triggers a high-speed transmission timeout contention detection (measured in TOCKDIV cycles).

If using the non-burst mode and there is no enough time to switch from high-speed to low-power and back in the period from one line data finishing to the next line sync start, the DSI link returns the low-power state once per frame, then configure the TOCKDIV and HSTX_TOCNT to be in accordance with:

\[ \text{HSTX\_TOCNT} * \text{lanebyteclkperiod} * \text{TOCKDIV} \geq \text{the time of one FRAME data transmission} * (1 + 10\%) \]

In burst mode, RGB pixel packets are time-compressed, leaving more time during a scan line. Therefore, if in burst mode and there is enough time to switch from high-speed to low-power and back in the period from one line data finishing to the next line sync start, the DSI link can return low-power mode and back in this time interval to save power. For this, configure the TOCKDIV and HSTX_TOCNT to be in accordance with:

\[ \text{HSTX\_TOCNT} * \text{lanebyteclkperiod} * \text{TOCKDIV} \geq \text{the time of one LINE data transmission} * (1 + 10\%) \]

Bits 15:0 LPRX_TOCNT[15:0] : Low-power reception timeout counter

This field configures the timeout counter that triggers a low-power reception timeout contention detection (measured in TOCKDIV cycles).

30.15.28 DSI Host timeout counter configuration register 1 (DSI_TCCR1)

Address offset: 0x007C

Reset value: 0x0000 0000

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

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

Bits 15:0 HSRD_TOCNT[15:0] : High-speed read timeout counter

This field sets a period for which the DSI Host keeps the link still, after sending a high-speed read operation. This period is measured in cycles of lanebyteclk. The counting starts when the D-PHY enters the Stop state and causes no interrupts.

30.15.29 DSI Host timeout counter configuration register 2 (DSI_TCCR2)

Address offset: 0x0080

Reset value: 0x0000 0000

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

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

Bits 15:0 LPRD_TOCNT[15:0] : Low-power read timeout counter

This field sets a period for which the DSI Host keeps the link still, after sending a low-power read operation. This period is measured in cycles of lanebyteclk. The counting starts when the D-PHY enters the Stop state and causes no interrupts.

30.15.30 DSI Host timeout counter configuration register 3 (DSI_TCCR3)

Address offset: 0x0084

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.PMRes.Res.Res.Res.Res.Res.Res.Res.
rw
1514131211109876543210
HSWR_TOCNT[15:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

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

Bit 24 PM : Presp mode

When set to 1, this bit ensures that the peripheral response timeout caused by HSWR_TOCNT is used only once per LTDC frame in command mode, when both the following conditions are met:

In this scenario no non-LTDC command requests are sent to the D-PHY, even if there is traffic from generic interface ready to be sent, making it return to stop state. When it does so, PRESP_TO counter is activated and only when it finishes does the controller send any other traffic that is ready.

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

Bits 15:0 HSWR_TOCNT[15:0] : High-speed write timeout counter

This field sets a period for which the DSI Host keeps the link inactive after sending a high-speed write operation. This period is measured in cycles of lanebyteclk . The counting starts when the D-PHY enters the Stop state and causes no interrupts.

30.15.31 DSI Host timeout counter configuration register 4 (DSI_TCCR4)

Address offset: 0x0088

Reset value: 0x0000 0000

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

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

Bits 15:0 LPWR_TOCNT[15:0] : Low-power write timeout counter

This field sets a period for which the DSI Host keeps the link still, after sending a low-power write operation. This period is measured in cycles of lanebyteclk . The counting starts when the D-PHY enters the Stop state and causes no interrupts.

30.15.32 DSI Host timeout counter configuration register 5 (DSI_TCCR5)

Address offset: 0x008C

Reset value: 0x0000 0000

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

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

Bits 15:0 BTA_TOCNT[15:0] : Bus-turn-around timeout counter

This field sets a period for which the DSI Host keeps the link still, after completing a bus-turn-around. This period is measured in cycles of lanebyteclk. The counting starts when the D-PHY enters the Stop state and causes no interrupts.

30.15.33 DSI Host clock lane configuration register (DSI_CLCR)

Address offset: 0x0094

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.Res.Res.Res.Res.Res.Res.ACRDPCC
rwrw

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

Bit 1 ACR : Automatic clock lane control

This bit enables the automatic mechanism to stop providing clock in the clock lane when time allows.

0: Automatic clock lane control disabled

1: Automatic clock lane control enabled

Bit 0 DPCC : D-PHY clock control

This bit controls the D-PHY clock state:

0: Clock lane is in low-power mode.

1: Clock lane runs in high-speed mode.

30.15.34 DSI Host clock lane timer configuration register (DSI_CLTCR)

Address offset: 0x0098

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.HS2LP_TIME[9:0]
rwrwrwrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.LP2HS_TIME[9:0]
rwrwrwrwrwrwrwrwrwrw

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

Bits 25:16 HS2LP_TIME[9:0] : High-speed to low-power time

This field configures the maximum time that the D-PHY clock lane takes to go from high-speed to low-power transmission measured in lane byte clock cycles.

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

Bits 9:0 LP2HS_TIME[9:0] : Low-power to high-speed time

This field configures the maximum time that the D-PHY clock lane takes to go from low-power to high-speed transmission measured in lane byte clock cycles.

30.15.35 DSI Host data lane timer configuration register (DSI_DLTCR)

Address offset: 0x009C

Reset value: 0x0000 0000

31302928272625242322212019181716
HS2LP_TIME[7:0]LP2HS_TIME[7:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
Res.MRD_TIME[14:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:24 HS2LP_TIME[7:0] : High-speed to low-power time

This field configures the maximum time that the D-PHY data lanes take to go from high-speed to low-power transmission measured in lane byte clock cycles.

Bits 23:16 LP2HS_TIME[7:0] : Low-power to high-speed time

This field configures the maximum time that the D-PHY data lanes take to go from low-power to high-speed transmission measured in lane byte clock cycles.

Bit 15 Reserved, must be kept at reset value.

Bits 14:0 MRD_TIME[14:0] : Maximum read time

This field configures the maximum time required to perform a read command in lane byte clock cycles. This register can only be modified when no read command is in progress.

30.15.36 DSI Host PHY control register (DSI_PCTLR)

Address offset: 0x00A0

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.Res.Res.Res.Res.Res.CKEDENRes.
rwrw

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

Bit 2 CKE : Clock enable

This bit enables the D-PHY clock lane module:

0: D-PHY clock lane module is disabled.

1: D-PHY clock lane module is enabled.

Bit 1 DEN : Digital enable

When set to 0, this bit places the digital section of the D-PHY in the reset state

0: The digital section of the D-PHY is in the reset state.

1: The digital section of the D-PHY is enabled.

Bit 0 Reserved, must be kept at reset value.

30.15.37 DSI Host PHY configuration register (DSI_PCONF R )

Address offset: 0x00A4

Reset value: 0x0000 0001

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
SW_TIME[7:0]Res.Res.Res.Res.Res.Res.NL[1:0]
rwrwrwrwrwrwrwrwrwrw

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

Bits 15:8 SW_TIME[7:0] : Stop wait time

This field configures the minimum wait period to request a high-speed transmission after the Stop state.

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

Bits 1:0 NL[1:0] : Number of lanes

This field configures the number of active data lanes:

00: One data lane (lane 0)

01: Two data lanes (lanes 0 and 1) - Reset value

Others: Reserved

30.15.38 DSI Host PHY ULPS control register (DSI_PUC R )

Address offset: 0x00A8

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.Res.Res.Res.Res.UEDLURDLUECLURCL
rwrwrwrw

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

Bit 3 UEDL : ULPS exit on data lane

Bit 2 URDL : ULPS request on data lane

Bit 1 UECL : ULPS exit on clock lane

Bit 0 URCL : ULPS request on clock lane

30.15.39 DSI Host PHY TX triggers configuration register (DSI_PTTCCR)

Address offset: 0x00AC

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.Res.Res.Res.Res.TX_TRIG[3:0]
rwrwrwrw

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

Bits 3:0 TX_TRIG[3:0] : Transmission trigger
Escape mode transmit trigger 0-3.
Only one bit of TX_TRIG is asserted at any given time.

30.15.40 DSI Host PHY status register (DSI_PSR)

Address offset: 0x00B0

Reset value: 0x0000 1528

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.UAN1PSS1RUE0UAN0PSS0UANCPSSCPDRes.
rrrrrrrr

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

Bit 8 UAN1 : ULPS active not lane 1

This bit indicates the status of ulpsactivenot1lane D-PHY signal.

Bit 7 PSS1 : PHY stop state lane 1

This bit indicates the status of phystopstate1lane D-PHY signal.

Bit 6 RUE0 : RX ULPS escape lane 0

This bit indicates the status of rxulpesc0lane D-PHY signal.

Bit 5 UAN0 : ULPS active not lane 0

This bit indicates the status of ulpsactivenot0lane D-PHY signal.

Bit 4 PSS0 : PHY stop state lane 0

This bit indicates the status of phystopstate0lane D-PHY signal.

Bit 3 UANC : ULPS active not clock lane

This bit indicates the status of ulpsactivenotcklane D-PHY signal.

Bit 2 PSSC : PHY stop state clock lane

This bit indicates the status of phystopstatecklane D-PHY signal.

Bit 1 PD : PHY direction

This bit indicates the status of phydirection D-PHY signal.

Bit 0 Reserved, must be kept at reset value.

30.15.41 DSI Host interrupt and status register 0 (DSI_ISR0)

Address offset: 0x00BC

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PE4PE3PE2PE1PE0
rrrrr
1514131211109876543210
AE15AE14AE13AE12AE11AE10AE9AE8AE7AE6AE5AE4AE3AE2AE1AE0
rrrrrrrrrrrrrrrr

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

Bit 20 PE4 : PHY error 4

This bit indicates the LP1 contention error ErrContentionLP1 from lane 0.

Bit 19 PE3 : PHY error 3

This bit indicates the LP0 contention error ErrContentionLP0 from lane 0.

Bit 18 PE2 : PHY error 2

This bit indicates the ErrControl error from lane 0.

Bit 17 PE1 : PHY error 1

This bit indicates the ErrSyncEsc low-power transmission synchronization error from lane 0.

Bit 16 PE0 : PHY error 0

This bit indicates the ErrEsc escape entry error from lane 0.

Bit 15 AE15 : Acknowledge error 15

This bit retrieves the DSI protocol violation from the acknowledge error report.

Bit 14 AE14 : Acknowledge error 14

This bit retrieves the reserved (specific to the device) from the acknowledge error report.

Bit 13 AE13 : Acknowledge error 13

This bit retrieves the invalid transmission length from the acknowledge error report.

Bit 12 AE12 : Acknowledge error 12

This bit retrieves the DSI VC ID Invalid from the acknowledge error report.

Bit 11 AE11 : Acknowledge error 11

This bit retrieves the not recognized DSI data type from the acknowledge error report.

Bit 10 AE10 : Acknowledge error 10

This bit retrieves the checksum error (long packet only) from the acknowledge error report.

Bit 9 AE9 : Acknowledge error 9

This bit retrieves the ECC error, multi-bit (detected, not corrected) from the acknowledge error report.

Bit 8 AE8 : Acknowledge error 8

This bit retrieves the ECC error, single-bit (detected and corrected) from the acknowledge error report.

Bit 7 AE7 : Acknowledge error 7

This bit retrieves the reserved (specific to the device) from the acknowledge error report.

Bit 6 AE6 : Acknowledge error 6

This bit retrieves the false control error from the acknowledge error report.

Bit 5 AE5 : Acknowledge error 5

This bit retrieves the peripheral timeout error from the acknowledge error report.

Bit 4 AE4 : Acknowledge error 4

This bit retrieves the LP transmit sync error from the acknowledge error report.

Bit 3 AE3 : Acknowledge error 3

This bit retrieves the escape mode entry command error from the acknowledge error report.

Bit 2 AE2 : Acknowledge error 2

This bit retrieves the EoT sync error from the acknowledge error report.

Bit 1 AE1 : Acknowledge error 1

This bit retrieves the SoT sync error from the acknowledge error report.

Bit 0 AE0 : Acknowledge error 0

This bit retrieves the SoT error from the acknowledge error report.

30.15.42 DSI Host interrupt and status register 1 (DSI_ISR1)

Address offset: 0x00C0

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.GPRXEGPRDEGPTXEGPWREGCWRELPWREEOTPEPSECRCEECCMEECCSETOLPRXTOHSTX
rrrrrrrrrrrrr

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

Bit 12 GPRXE : Generic payload receive error

This bit indicates that during a generic interface packet read back, the payload FIFO becomes full and the received data is corrupted.

Bit 11 GPRDE : Generic payload read error

This bit indicates that during a DCS read data, the payload FIFO becomes empty and the data sent to the interface is corrupted.

Bit 10 GPTXE : Generic payload transmit error

This bit indicates that during a generic interface packet build, the payload FIFO becomes empty and corrupt data is sent.

Bit 9 GPWRE : Generic payload write error

This bit indicates that the system tried to write a payload data through the generic interface and the FIFO is full. Therefore, the payload is not written.

Bit 8 GCWRE : Generic command write error

This bit indicates that the system tried to write a command through the generic interface and the FIFO is full. Therefore, the command is not written.

Bit 7 LPWRE : LTDC payload write error

This bit indicates that during a DPI pixel line storage, the payload FIFO becomes full and the data stored is corrupted.

Bit 6 EOTPE : EoTp error

This bit indicates that the EoTp packet is not received at the end of the incoming peripheral transmission.

Bit 5 PSE : Packet size error

This bit indicates that the packet size error is detected during the packet reception.

Bit 4 CRCE : CRC error

This bit indicates that the CRC error is detected in the received packet payload.

Bit 3 ECCME : ECC multi-bit error

This bit indicates that the ECC multiple error is detected in a received packet.

Bit 2 ECCSE : ECC single-bit error

This bit indicates that the ECC single error is detected and corrected in a received packet.

Bit 1 TOLPRX : Timeout low-power reception

This bit indicates that the low-power reception timeout counter reached the end and contention is detected.

Bit 0 TOHSTX : Timeout high-speed transmission

This bit indicates that the high-speed transmission timeout counter reached the end and contention is detected.

30.15.43 DSI Host interrupt enable register 0 (DSI_IER0)

Address offset: 0x00C4

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PE4IEPE3IEPE2IEPE1IEPE0IE
1514131211109876543210
AE15IEAE14IEAE13IEAE12IEAE11IEAE10IEAE9IEAE8IEAE7IEAE6IEAE5IEAE4IEAE3IEAE2IEAE1IEAE0IE
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

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

Bit 20 PE4IE : PHY error 4 interrupt enable

This bit enables the interrupt generation on PHY error 4.

0: Interrupt on PHY error 4 disabled

1: Interrupt on PHY error 4 enabled

Bit 19 PE3IE : PHY error 3 interrupt enable

This bit enables the interrupt generation on PHY error 4.

0: Interrupt on PHY error 3 disabled

1: Interrupt on PHY error 3 enabled

Bit 18 PE2IE : PHY error 2 interrupt enable

This bit enables the interrupt generation on PHY error 2.

0: Interrupt on PHY error 2 disabled

1: Interrupt on PHY error 2 enabled

Bit 17 PE1IE : PHY error 1 interrupt enable

This bit enables the interrupt generation on PHY error 1.

0: Interrupt on PHY error 1 disabled

1: Interrupt on PHY error 1 enabled

Bit 16 PE0IE : PHY error 0 interrupt enable

This bit enables the interrupt generation on PHY error 0.

0: Interrupt on PHY error 0 disabled

1: Interrupt on PHY error 0 enabled

Bit 15 AE15IE : Acknowledge error 15 interrupt enable

This bit enables the interrupt generation on acknowledge error 15.

0: Interrupt on acknowledge error 15 disabled

1: Interrupt on acknowledge error 15 enabled

  1. Bit 14 AE14IE : Acknowledge error 14 interrupt enable
    This bit enables the interrupt generation on acknowledge error 14.
    0: Interrupt on acknowledge error 14 disabled
    1: Interrupt on acknowledge error 14 enabled
  2. Bit 13 AE13IE : Acknowledge error 13 interrupt enable
    This bit enables the interrupt generation on acknowledge error 13.
    0: Interrupt on acknowledge error 13 disabled
    1: Interrupt on acknowledge error 13 enabled
  3. Bit 12 AE12IE : Acknowledge error 12 interrupt enable
    This bit enables the interrupt generation on acknowledge error 12.
    0: Interrupt on acknowledge error 12 disabled
    1: Interrupt on acknowledge error 12 enabled
  4. Bit 11 AE11IE : Acknowledge error 11 interrupt enable
    This bit enables the interrupt generation on acknowledge error 11.
    0: Interrupt on acknowledge error 11 disabled
    1: Interrupt on acknowledge error 11 enabled
  5. Bit 10 AE10IE : Acknowledge error 10 interrupt enable
    This bit enables the interrupt generation on acknowledge error 10.
    0: Interrupt on acknowledge error 10 disabled
    1: Interrupt on acknowledge error 10 enable.
  6. Bit 9 AE9IE : Acknowledge error 9 interrupt enable
    This bit enables the interrupt generation on acknowledge error 9.
    0: Interrupt on acknowledge error 9 disabled
    1: Interrupt on acknowledge error 9 enabled
  7. Bit 8 AE8IE : Acknowledge error 8 interrupt enable
    This bit enables the interrupt generation on acknowledge error 8.
    0: Interrupt on acknowledge error 8 disabled
    1: Interrupt on acknowledge error 8 enabled
  8. Bit 7 AE7IE : Acknowledge error 7 interrupt enable
    This bit enables the interrupt generation on acknowledge error 7.
    0: Interrupt on acknowledge error 7 disabled
    1: Interrupt on acknowledge error 7 enabled
  9. Bit 6 AE6IE : Acknowledge error 6 interrupt enable
    This bit enables the interrupt generation on acknowledge error 6.
    0: Interrupt on acknowledge error 6 disabled
    1: Interrupt on acknowledge error 6 enabled
  10. Bit 5 AE5IE : Acknowledge error 5 interrupt enable
    This bit enables the interrupt generation on acknowledge error 5.
    0: Interrupt on acknowledge error 5 disabled
    1: Interrupt on acknowledge error 5 enabled
  11. Bit 4 AE4IE : Acknowledge error 4 interrupt enable
    This bit enables the interrupt generation on acknowledge error 4.
    0: Interrupt on acknowledge error 4 disabled
    1: Interrupt on acknowledge error 4 enabled

Bit 3 AE3IE : Acknowledge error 3 interrupt enable

This bit enables the interrupt generation on acknowledge error 3.

0: Interrupt on acknowledge error 3 disabled

1: Interrupt on acknowledge error 3 enabled

Bit 2 AE2IE : Acknowledge error 2 interrupt enable

This bit enables the interrupt generation on acknowledge error 2.

0: Interrupt on acknowledge error 2 disabled

1: Interrupt on acknowledge error 2 enabled

Bit 1 AE1IE : Acknowledge error 1 interrupt enable

This bit enables the interrupt generation on acknowledge error 1.

0: Interrupt on acknowledge error 1 disabled

1: Interrupt on acknowledge error 1 enabled

Bit 0 AE0IE : Acknowledge error 0 interrupt enable

This bit enables the interrupt generation on acknowledge error 0.

0: Interrupt on acknowledge error 0 disabled

1: Interrupt on acknowledge error 0 enabled

30.15.44 DSI Host interrupt enable register 1 (DSI_IER1)

Address offset: 0x00C8

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.GPRX
EIE
GPRD
EIE
GPTX
EIE
GPWR
EIE
GCWR
EIE
LPWR
EIE
EOTP
EIE
PS
EIE
CRC
EIE
ECCM
EIE
ECCS
EIE
TOLPRX
IE
TOHSTX
IE
rwrwrwrwrwrwrwrwrwrwrwrwrw

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

Bit 12 GPRXEIE : Generic payload receive error interrupt enable

This bit enables the interrupt generation on generic payload receive error.

0: Interrupt on generic payload receive error disabled

1: Interrupt on generic payload receive error enabled

Bit 11 GPRDEIE : Generic payload read error interrupt enable

This bit enables the interrupt generation on generic payload read error.

0: Interrupt on generic payload read error disabled

1: Interrupt on generic payload read error enabled

Bit 10 GPTXEIE : Generic payload transmit error interrupt enable

This bit enables the interrupt generation on generic payload transmit error.

0: Interrupt on generic payload transmit error disabled

1: Interrupt on generic payload transmit error enabled

Bit 9 GPWREIE : Generic payload write error interrupt enable

This bit enables the interrupt generation on generic payload write error.

0: Interrupt on generic payload write error disabled

1: Interrupt on generic payload write error enabled

Bit 8 GCWREIE : Generic command write error interrupt enable

This bit enables the interrupt generation on generic command write error.

0: Interrupt on generic command write error disabled

1: Interrupt on generic command write error enabled

Bit 7 LPWREIE : LTDC payload write error interrupt enable

This bit enables the interrupt generation on LTDC payload write error.

0: Interrupt on LTDC payload write error disabled

1: Interrupt on LTDC payload write error enabled

Bit 6 EOTPTEIE : EoTp error interrupt enable

This bit enables the interrupt generation on EoTp error.

0: Interrupt on EoTp error disabled

1: Interrupt on EoTp error enabled

Bit 5 PSEIE : Packet size error interrupt enable

This bit enables the interrupt generation on packet size error.

0: Interrupt on packet size error disabled

1: Interrupt on packet size error enabled

Bit 4 CRCEIE : CRC error interrupt enable

This bit enables the interrupt generation on CRC error.

0: Interrupt on CRC error disabled

1: Interrupt on CRC error enabled

Bit 3 ECCMEIE : ECC multi-bit error interrupt enable

This bit enables the interrupt generation on ECC multi-bit error.

0: Interrupt on ECC multi-bit error disabled

1: Interrupt on ECC multi-bit error enabled

Bit 2 ECCSEIE : ECC single-bit error interrupt enable

This bit enables the interrupt generation on ECC single-bit error.

0: Interrupt on ECC single-bit error disabled

1: Interrupt on ECC single-bit error enabled

Bit 1 TOLPRXIE : Timeout low-power reception interrupt enable

This bit enables the interrupt generation on timeout low-power reception.

0: Interrupt on timeout low-power reception disabled

1: Interrupt on timeout low-power reception enabled

Bit 0 TOHSTXIE : Timeout high-speed transmission interrupt enable

This bit enables the interrupt generation on timeout high-speed transmission .

0: Interrupt on timeout high-speed transmission disabled

1: Interrupt on timeout high-speed transmission enabled

30.15.45 DSI Host force interrupt register 0 (DSI_FIR0)

Address offset: 0x00D8

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FPE4FPE3FPE2FPE1FPE0
wwwww
1514131211109876543210
FAE15FAE14FAE13FAE12FAE11FAE10FAE9FAE8FAE7FAE6FAE5FAE4FAE3FAE2FAE1FAE0
wwwwwwwwwwwwwwww

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

Bit 20 FPE4 : Force PHY error 4

Writing one to this bit forces a PHY error 4.

Bit 19 FPE3 : Force PHY error 3

Writing one to this bit forces a PHY error 3.

Bit 18 FPE2 : Force PHY error 2

Writing one to this bit forces a PHY error 2.

Bit 17 FPE1 : Force PHY error 1

Writing one to this bit forces a PHY error 1.

Bit 16 FPE0 : Force PHY error 0

Writing one to this bit forces a PHY error 0.

Bit 15 FAE15 : Force acknowledge error 15

Writing one to this bit forces an acknowledge error 15.

Bit 14 FAE14 : Force acknowledge error 14

Writing one to this bit forces an acknowledge error 14.

Bit 13 FAE13 : Force acknowledge error 13

Writing one to this bit forces an acknowledge error 13.

Bit 12 FAE12 : Force acknowledge error 12

Writing one to this bit forces an acknowledge error 12.

Bit 11 FAE11 : Force acknowledge error 11

Writing one to this bit forces an acknowledge error 11.

Bit 10 FAE10 : Force acknowledge error 10

Writing one to this bit forces an acknowledge error 10.

Bit 9 FAE9 : Force acknowledge error 9

Writing one to this bit forces an acknowledge error 9.

Bit 8 FAE8 : Force acknowledge error 8

Writing one to this bit forces an acknowledge error 8.

Bit 7 FAE7 : Force acknowledge error 7

Writing one to this bit forces an acknowledge error 7.

Bit 6 FAE6 : Force acknowledge error 6

Writing one to this bit forces an acknowledge error 6.

  1. Bit 5 FAE5 : Force acknowledge error 5
    Writing one to this bit forces an acknowledge error 5.
  2. Bit 4 FAE4 : Force acknowledge error 4
    Writing one to this bit forces an acknowledge error 4.
  3. Bit 3 FAE3 : Force acknowledge error 3
    Writing one to this bit forces an acknowledge error 3.
  4. Bit 2 FAE2 : Force acknowledge error 2
    Writing one to this bit forces an acknowledge error 2.
  5. Bit 1 FAE1 : Force acknowledge error 1
    Writing one to this bit forces an acknowledge error 1.
  6. Bit 0 FAE0 : Force acknowledge error 0
    Writing one to this bit forces an acknowledge error 0.

30.15.46 DSI Host force interrupt register 1 (DSI_FIR1)

Address offset: 0x00DC

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.FGRP
RXE
FGRP
RDE
FGRP
TXE
FGRP
WRE
FGC
WRE
FLP
WRE
FE
OTPE
FPSEFCRCEFECC
ME
FECC
SE
FTOLP
RX
FTOHS
TX
wwwwwwwwwwwww

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

  1. Bit 12 FGRPXE : Force generic payload receive error
    Writing one to this bit forces a generic payload receive error.
  2. Bit 11 FGRDE : Force generic payload read error
    Writing one to this bit forces a generic payload read error.
  3. Bit 10 FGPTXE : Force generic payload transmit error
    Writing one to this bit forces a generic payload transmit error.
  4. Bit 9 FGPWRE : Force generic payload write error
    Writing one to this bit forces a generic payload write error.
  5. Bit 8 FGCWRE : Force generic command write error
    Writing one to this bit forces a generic command write error.
  6. Bit 7 FLPWRE : Force LTDC payload write error
    Writing one to this bit forces a LTDC payload write error.
  7. Bit 6 FEOTPE : Force EoTp error
    Writing one to this bit forces a EoTp error.
  8. Bit 5 FPSE : Force packet size error
    Writing one to this bit forces a packet size error.

30.15.47 DSI Host video shadow control register (DSI_VSCR)

Address offset: 0x0100

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.URRes.Res.Res.Res.Res.Res.Res.EN
rwrw

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

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

30.15.48 DSI Host LTDC current VCID register (DSI_LCVCIDR)

Address offset: 0x010C

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.Res.Res.Res.Res.Res.Res.VCID[1:0]
rwrw

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

Bits 1:0 VCID[1:0] : Virtual channel ID

This field returns the virtual channel ID for the LTDC interface.

30.15.49 DSI Host LTDC current color coding register (DSI_LCCCR)

Address offset: 0x0110

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.LPERes.Res.Res.Res.COLC[3:0]
rrrrr

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

Bit 8 LPE : Loosely packed enable

This bit returns the current state of the loosely packed variant to 18-bit configurations.

0: Loosely packed variant disabled

1: Loosely packed variant enabled

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

Bits 3:0 COLC[3:0] : Color coding

This field returns the current LTDC interface color coding.

0000: 16-bit configuration 1

0001: 16-bit configuration 2

0010: 16-bit configuration 3

0011: 18-bit configuration 1

0100: 18-bit configuration 2

0101: 24-bit

0110 - 1111: reserved

If LTDC interface in command mode is chosen and currently works in the command mode (CMDM=1), then 0110-1111: 24-bit

30.15.50 DSI Host low-power mode current configuration register (DSI_LPMCCR)

Address offset: 0x0118

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.LPSIZE[7:0]
rrrrrrrr
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.VLPSIZE[7:0]
rrrrrrrr

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

Bits 23:16 LPSIZE[7:0] : Largest packet size

This field returns the current size, in bytes, of the largest packet that can fit in a line during VSA, VBP and VFP regions, for the transmission of commands in low-power mode.

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

Bits 7:0 VLPSIZE[7:0] : VACT largest packet size

This field returns the current size, in bytes, of the largest packet that can fit in a line during VACT regions, for the transmission of commands in low-power mode.

30.15.51 DSI Host video mode current configuration register (DSI_VMCCR)

Address offset: 0x0138

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.LPCEFBTAAELPHFELPHBPELPVAELPVFPELPVBPELPVSAEVMT[1:0]
rrrrrrrrrr

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

Bit 9 LPCE : Low-power command enable

This bit returns the current command transmission state in low-power mode.

0: Command transmission in low-power mode is disabled.

1: Command transmission in low-power mode is enabled.

Bit 8 FBTAAE : Frame BTA acknowledge enable

This bit returns the current state of request for an acknowledge response at the end of a frame.

0: Acknowledge response at the end of a frame is disabled.

1: Acknowledge response at the end of a frame is enabled.

Bit 7 LPHFE : Low-power horizontal front-porch enable

This bit returns the current state of return to low-power inside the horizontal front-porch (HFP) period when timing allows.
0: Return to low-power inside the HFP period is disabled.
1: Return to low-power inside the HFP period is enabled.

Bit 6 LPHBPE : Low-power horizontal back-porch enable

This bit returns the current state of return to low-power inside the horizontal back-porch (HBP) period when timing allows.
0: Return to low-power inside the HBP period is disabled.
1: Return to low-power inside the HBP period is enabled.

Bit 5 LPVAE : Low-power vertical active enable

This bit returns the current state of return to low-power inside the vertical active (VACT) period when timing allows.
0: Return to low-power inside the VACT is disabled.
1: Return to low-power inside the VACT is enabled.

Bit 4 LPVFPE : Low-power vertical front-porch enable

This bit returns the current state of return to low-power inside the vertical front-porch (VFP) period when timing allows.
0: Return to low-power inside the VFP is disabled.
1: Return to low-power inside the VFP is enabled.

Bit 3 LPVBPE : Low-power vertical back-porch enable

This bit returns the current state of return to low-power inside the vertical back-porch (VBP) period when timing allows.
0: Return to low-power inside the VBP is disabled.
1: Return to low-power inside the VBP is enabled.

Bit 2 LPVSAE : Low-power vertical sync time enable

This bit returns the current state of return to low-power inside the vertical sync time (VSA) period when timing allows.
0: Return to low-power inside the VSA is disabled.
1: Return to low-power inside the VSA is enabled.

Bits 1:0 VMT[1:0] : Video mode type

This field returns the current video mode transmission type:
00: Non-burst with sync pulses
01: Non-burst with sync events
1x: Burst mode

30.15.52 DSI Host video packet current configuration register (DSI_VPCCR)

Address offset: 0x013C

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.VPSIZE[13:0]
rrrrrrrrrrrrrr

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

Bits 13:0 VPSIZE[13:0] : Video packet size

This field returns the number of pixels in a single video packet.

30.15.53 DSI Host video chunks current configuration register (DSI_VCCCR)

Address offset: 0x0140

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.NUMC[12:0]
rrrrrrrrrrrrr

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

Bits 12:0 NUMC[12:0] : Number of chunks

This field returns the number of chunks being transmitted during a line period.

30.15.54 DSI Host video null packet current configuration register (DSI_VNPCCR)

Address offset: 0x0144

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.NPSIZE[12:0]
rrrrrrrrrrrrr

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

Bits 12:0 NPSIZE[12:0] : Null packet size

This field returns the number of bytes inside a null packet.

30.15.55 DSI Host video HSA current configuration register (DSI_VHSACCR)

Address offset: 0x0148

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.HSA[11:0]
rrrrrrrrrrrr

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

Bits 11:0 HSA[11:0] : Horizontal synchronism active duration
This field returns the horizontal synchronism active period in lane byte clock cycles.

30.15.56 DSI Host video HBP current configuration register (DSI_VHBPCCR)

Address offset: 0x014C

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.HBP[11:0]
rrrrrrrrrrrr

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

Bits 11:0 HBP[11:0] : Horizontal back-porch duration
This field returns the horizontal back-porch period in lane byte clock cycles.

30.15.57 DSI Host video line current configuration register (DSI_VLCCR)

Address offset: 0x0150

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.HLINE[14:0]
rrrrrrrrrrrrrrr

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

Bits 14:0 HLINE[14:0] : Horizontal line duration

This field returns the current total of the horizontal line period (HSA+HBP+HACT+HFP) counted in lane byte clock cycles.

30.15.58 DSI Host video VSA current configuration register (DSI_VVSACCR)

Address offset: 0x0154

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.VSA[9:0]
rrrrrrrrrr

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

Bits 9:0 VSA[9:0] : Vertical synchronism active duration

This field returns the current vertical synchronism active period measured in number of horizontal lines.

30.15.59 DSI Host video VBP current configuration register (DSI_VBPCCR)

Address offset: 0x0158

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.VBP[9:0]
rrrrrrrrrr

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

Bits 9:0 VBP[9:0] : Vertical back-porch duration

This field returns the current vertical back-porch period measured in number of horizontal lines.

30.15.60 DSI Host video VFP current configuration register (DSI_VVFPCCR)

Address offset: 0x015C

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.
VFP[9:0]
rrrrrrrrrr

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

Bits 9:0 VFP[9:0] : Vertical front-porch duration

This field returns the current vertical front-porch period measured in number of horizontal lines.

30.15.61 DSI Host video VA current configuration register (DSI_VVACCR)

Address offset: 0x0160

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.
VA[13:0]
rrrrrrrrrrrrrr

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

Bits 13:0 VA[13:0] : Vertical active duration

This field returns the current vertical active period measured in number of horizontal lines.

30.16 DSI Wrapper registers

30.16.1 DSI Wrapper configuration register (DSI_WCFGR)

Address offset: 0x0400

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.VSPOLARTEPOLTESRCCOLMUX[2:0]DSIM
rwrwrwrwrwrwrwrw

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

Bit 7 VSPOL : VSync polarity

This bit selects the VSync edge on which the LTDC is halted.

0: LTDC halted on a falling edge

1: LTDC halted on a rising edge

This bit must only be changed when DSI is stopped (DSI_WCR.DSIEN = 0 and DSI_CR.EN = 0).

Bit 6 AR : Automatic refresh

This bit selects the refresh mode in DBI mode.

0: automatic refresh mode disabled

1: automatic refresh mode enabled

This bit must only be changed when DSI Host is stopped (DSI_CR.EN = 0).

Bit 5 TEPOL : TE polarity

This bit selects the polarity of the external pin tearing effect (TE) source.

0: rising edge.

1: falling edge.

This bit must only be changed when DSI Host is stopped (DSI_CR.EN = 0).

Bit 4 TESRC : TE source

This bit selects the tearing effect (TE) source.

0: DSI Link

1: External pin

This bit must only be changed when DSI Host is stopped (DSI_CR.EN = 0).

Bits 3:1 COLMUX[2:0] : Color multiplexing

This bit selects the color multiplexing used by DSI Host.

000: 16-bit configuration 1

001: 16-bit configuration 2

010: 16-bit configuration 3

011: 18-bit configuration 1

100: 18-bit configuration 2

101: 24-bit

This field must only be changed when DSI is stopped (DSI_WCR.DSIEN = 0 and DSI_CR.EN = 0).

Bit 0 DSIM : DSI mode

This bit selects the mode for the video transmission.
0: Video mode
1: Adapted command mode
This bit must only be changed when DSI Host is stopped ( DSI_CR.EN = 0).

30.16.2 DSI Wrapper control register (DSI_WCR)

Address offset: 0x0404

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.Res.Res.Res.Res.DSIENLTDCENSHTDNCOLM
rwrsrwrw

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

Bit 3 DSIEN : DSI enable

This bit enables the DSI Wrapper.
0: DSI disabled
1: DSI enabled

Bit 2 LTDCEN : LTDC enable

This bit enables the LTDC for a frame transfer in adapted command mode.
0: LTDC disabled
1: LTDC enabled

Bit 1 SHTDN : Shutdown

This bit controls the display shutdown in video mode.
0: display ON
1: display OFF

Bit 0 COLM : Color mode

This bit controls the display color mode in video mode.
0: Full color mode
1: Eight color mode

30.16.3 DSI Wrapper interrupt enable register (DSI_WIER)

Address offset: 0x0408

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.RRIERes.Res.PLLUIEPLLLIERes.Res.Res.Res.Res.Res.Res.ERIETEIE
rwrwrwrwrw

30.16.4 DSI Wrapper interrupt and status register (DSI_WISR)

Address offset: 0x040C

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.RRIFRRSRes.PLLUIFPLLIFPLLSRes.Res.Res.Res.Res.BUSYERIFTEIF
rrrrrrrr

Bit 11 Reserved, must be kept at reset value.

Bit 10 PLLUIF : PLL unlock interrupt flag

This bit is set when the PLL becomes unlocked.

0: No PLL unlock event occurred

1: PLL unlock event occurred

Bit 9 PLLLIF : PLL lock interrupt flag

This bit is set when the PLL becomes locked.

0: No PLL lock event occurred

1: PLL lock event occurred

Bit 8 PLLS : PLL lock status

This bit is set when the PLL is locked and cleared when it is unlocked.

0: PLL is unlocked.

1: PLL is locked.

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

Bit 2 BUSY : Busy flag

This bit is set when the transfer of a frame in adapted command mode is ongoing.

0: No transfer on going

1: Transfer on going

Bit 1 ERIF : End of refresh interrupt flag

This bit is set when the transfer of a frame in adapted command mode is finished.

0: No end of refresh event occurred

1: End of refresh event occurred

Bit 0 TEIF : Tearing effect interrupt flag

This bit is set when a tearing effect event occurs.

0: No tearing effect event occurred

1: Tearing effect event occurred

30.16.5 DSI Wrapper interrupt flag clear register (DSI_WIFCR)

Address offset: 0x0410

Reset value: 0x0000 0000

31302928272625242322212019181716
ResResResResResResResResResResResResResResResRes
1514131211109876543210
Res.Res.CRRIFRes.Res.CPLLUIFCPLLIFRes.Res.Res.Res.Res.Res.Res.CERIFCTEIF
wwwww

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

Bit 13 CRRIF : Clear regulator ready interrupt flag

Write 1 clears the RRIF flag in the DSI_WSR register.

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

Bit 10 CPLLUIF : Clear PLL unlock interrupt flag

Write 1 clears the PLLUIF flag in the DSI_WSR register.

30.16.6 DSI Wrapper PHY configuration register 0 (DSI_WPCR0)

Address offset: 0x0418

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.TCLK
POSTEN
TLPXC
EN
THSEXIT
EN
TLPXD
EN
THSZE
ROEN
THST
RAILEN
THSP
REPEN
TCLKZ
EROEN
TCLKP
REPEN
PDENRes.TDDL
rwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
Res.CDOFF
DL
FTXS
MDL
FTXS
MCL
HSIDL1HSIDL0HSICLSWDL1SWDL0SWCLUIX4[5:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

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

Bit 23 THSZEROEN: Custom time for \( t_{\text{HS-ZERO}} \) enable

This bit enables the manual programming of \( t_{\text{HS-ZERO}} \) duration in the D-PHY. The desired value must be programmed in the THSZERO field of the DSI_WPCR3 register.

0: Default value is used for \( t_{\text{HS-ZERO}} \) .

1: Programmable value is used for \( t_{\text{HS-ZERO}} \) .

Bit 22 THSTRAILEN: Custom time for \( t_{\text{HS-TRAIL}} \) enable

This bit enables the manual programming of \( t_{\text{HS-TRAIL}} \) duration in the D-PHY. The desired value must be programmed in the THSTRAIL field of the DSI_WPCR2 register.

0: Default value is used for \( t_{\text{HS-TRAIL}} \) .

1: Programmable value is used for \( t_{\text{HS-TRAIL}} \) .

Bit 21 THSPREPEN: Custom time for \( t_{\text{HS-PREPARE}} \) enable

This bit enables the manual programming of \( t_{\text{HS-PREPARE}} \) duration in the D-PHY. The desired value must be programmed in the THSPREP field of the DSI_WPCR2 register.

0: Default value is used for \( t_{\text{HS-PREPARE}} \) .

1: Programmable value is used for \( t_{\text{HS-PREPARE}} \) .

Bit 20 TCLKZEROEN: Custom time for \( t_{\text{CLK-ZERO}} \) enable

This bit enables the manual programming of \( t_{\text{CLK-ZERO}} \) duration in the D-PHY. The desired value must be programmed in the TCLKZERO field of the DSI_WPCR2 register.

0: Default value is used for \( t_{\text{CLK-ZERO}} \) .

1: Programmable value is used for \( t_{\text{CLK-ZERO}} \) .

Bit 19 TCLKPREPEN: Custom time for \( t_{\text{CLK-PREPARE}} \) enable

This bit enables the manual programming of \( t_{\text{CLK-PREPARE}} \) duration in the D-PHY. The desired value must be programmed in the TCLKPREP field of the DSI_WPCR2 register.

0: Default value is used for \( t_{\text{CLK-PREPARE}} \) .

1: Programmable value is used for \( t_{\text{CLK-PREPARE}} \) .

Bit 18 PDEN: Pull-down enable

This bit enables a pull-down on the lane to prevent from floating states when unused.

0: Pull-down on lanes disabled

1: Pull-down on lanes enabled

Bit 17 Reserved, must be kept at reset value. Bit 16 TDDL: Turn disable data lanes

This bit forces the data lane to remain in RX event if it receives a bus-turn-around request from the other side.

0: No effect

1: Force data lanes in RX mode after a BTA

Bit 15 Reserved, must be kept at reset value. Bit 14 CDOFFDL: Contention detection OFF on data lanes

When only forward escape mode is used, this signal can be made high to switch off the contention detector and reduce static power consumption.

0: Contention detection on data lane ON

1: Contention detection on data lane OFF

Bit 13 FTXSMDL: Force in TX Stop mode the data lanes

This bit forces the data lanes in TX stop mode. It is used to initialize a lane module in transmit mode. It causes the lane module to immediately jump to transmit control mode and to begin transmitting a stop state (LP-11). It can be used to go back in TX mode after a wrong BTA sequence.

0: No effect

1: Force the data lanes in TX Stop mode

  1. Bit 12 FTXSMCL : Force in TX Stop mode the clock lane
    This bit forces the clock lane in TX stop mode. It is used to initialize a lane module in transmit mode. It causes the lane module to immediately jump to transmit control mode and to begin transmitting a stop state (LP-11). It can be used to go back in TX mode after a wrong BTA sequence.
    0: No effect
    1: Force the clock lane in TX Stop mode
  2. Bit 11 HSIDL1 : Invert the high-speed data signal on data lane 1
    This bit inverts the high-speed data signal on data lane 1.
    0: Normal data signal configuration
    1: Inverted data signal configuration
  3. Bit 10 HSIDL0 : Invert the high-speed data signal on data lane 0
    This bit inverts the high-speed data signal on clock lane.
    0: Normal data signal configuration
    1: Inverted data signal configuration
  4. Bit 9 HSICL : Invert high-speed data signal on clock lane
    This bit inverts the high-speed data signal on clock lane.
    0: Normal data configuration
    1: Inverted data configuration
  5. Bit 8 SWDL1 : Swap data lane 1 pins
    This bit swaps the pins on clock lane.
    0: Regular clock lane pin configuration
    1: Swapped clock lane pin
  6. Bit 7 SWDL0 : Swap data lane 0 pins
    This bit swaps the pins on data lane 0.
    0: Regular clock lane pin configuration
    1: Swapped clock lane pin
  7. Bit 6 SWCL : Swap clock lane pins
    This bit swaps the pins on clock lane.
    0: Regular clock lane pin configuration
    1: Swapped clock lane pin
  8. Bits 5:0 UIX4[5:0] : Unit interval multiplied by 4
    This field defines the bit period in high-speed mode in unit of 0.25 ns.
    As an example, if the unit interval is 3 ns, a value of twelve (0x0C) must be driven to this input. This value is used to generate delays. If the period is not a multiple of 0.25 ns, the value driven must be rounded down. For example, a 600 Mbit/s link uses a unit interval of 1.667 ns, which, multiplied by four gives 6.667 ns. In this case a value of 6 (not 7) must be driven onto the ui_x4 input.

30.16.7 DSI Wrapper PHY configuration register 1 (DSI_WPCR1)

Address offset: 0x041C

Reset value: 0x0000 0000

Note: This register must be programmed only when DSI is stopped (CR.DSIEN=0 and CR.EN = 0).

31302928272625242322212019181716
Res.Res.Res.Res.Res.LPRXFT[1:0]Res.Res.FLPRXLPRes.Res.HSTXSRCDL[1:0]HSTXSRCL[1:0]
rwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.SDDCRes.Res.LPSRCDL[1:0]LPSRCL[1:0]Res.Res.HSTXDDL[1:0]HSTXDCL[1:0]
rwrwrwrwrwrwrwrwrw

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

Bits 26:25 LPRXFT[1:0] : Low-power RX low-pass filtering tuning

This signal can be used to tune the cutoff frequency of low-pass filter at the input of LPRX.

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

Bit 22 FLPRXLP : Forces LP receiver in low-power mode

This bit enables the low-power mode of LP receiver (LPRX). When set, the LPRX operates in low-power mode all the time (when this is not activated, LPRX operates in low-power mode during ULPS only).

0: No effect

1: LPRX is forced in low-power mode.

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

Bits 19:18 HSTXSRCDL[1:0] : High-speed transmission slew-rate control on data lanes

Slew-rate control for high-speed transmitter output. It can be used to change slew-rate of data lane HS transitions.

Default value = 00.

Bits 17:16 HSTXSRCL[1:0] : High-speed transmission slew-rate control on clock lane

Slew-rate control for high-speed transmitter output. It can be used to change slew-rate of clock lane HS transitions.

Default value = 00.

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

Bit 12 SDDC : SDD control

This bit switches on the additional current path to meet the SDDTx parameter defined by MIPI® D-PHY Specification on both clock and data lanes.

0: No effect

1: Activate additional current path on all lanes

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

Bits 9:8 LPSRCDL[1:0] : Low-power transmission slew-rate compensation on data lanes

Can be used to change slew-rate of data lane LP transitions.

Default value = 00.

Bits 7:6 LPSRCL[1:0] : Low-power transmission slew-rate compensation on clock lane

Can be used to change slew-rate of clock lane LP transitions.

Default value = 00.

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

Bits 3:2 HSTXDDL[1:0] : High-speed transmission delay on data lanes

Delay tuner control to change delay (up to DP/DN) in data path. Can be used to change data edge transition positions with respect to clock edge on DP/DN.

Default value = 00.

Bits 1:0 HSTXDCL[1:0] : High-speed transmission delay on clock lane

Delay tuner control to change delay (up to DP/DN) in clock path. Can be used to change clock edge position with respect to data bit transitions on DP/DN.

Default value = 00.

30.16.8 DSI Wrapper PHY configuration register 2 (DSI_WPCR2)

Address offset: 0x0420

Reset value: 0x0000 0000

Note: This register must be programmed only when DSI is stopped (CR.DSIEN=0 and CR.EN = 0).

31302928272625242322212019181716
THSTRAIL[7:0]THSPREP[7:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
TCLKZERO[7:0]TCLKPREP[7:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:24 THSTRAIL : \( t_{HS-TRAIL} \)

This field defines the \( t_{HS-TRAIL} \) has specified in the MIPI® D-PHY specification. This value is used by the D-PHY when the THSTRAILEN bit of the DSI_WPCR0 is set.

\( THSTRAIL = 2 \times t_{HS-TRAIL} \) expressed in ns. The default value used by the D-PHY when THSTRAILEN bit of the DSI_WPCR0 is reset is 140 (70 ns + 8 * UI).

Bits 23:16 THSPREP : \( t_{HS-PREPARE} \)

This field defines the \( t_{HS-PREPARE} \) has specified in the MIPI® D-PHY specification. This value is used by the D-PHY when the THSPREPEN bit of the DSI_WPCR0 is set.

\( THSPREP = 2 \times t_{HS-PREPARE} \) expressed in ns. The default value used by the D-PHY when THSPREPEN bit of the DSI_WPCR0 is reset is 126 (63 ns + 12 * UI).

Bits 15:8 TCLKZERO : \( t_{CLK-ZERO} \)

This field defines the \( t_{CLK-ZERO} \) has specified in the MIPI® D-PHY specification. This value is used by the D-PHY when the TCLKZEROEN bit of the DSI_WPCR0 is set.

\( TCLKZERO = t_{CLK-ZERO} / 2 \) expressed in ns. The default value used by the D-PHY when TCLKZEROEN bit of the DSI_WPCR0 is reset is 195 (390 ns).

Bits 7:0 TCLKPREP : \( t_{CLK-PREPARE} \)

This field defines the \( t_{CLK-PREPARE} \) has specified in the MIPI® D-PHY specification. This value is used by the D-PHY when the TCLKPREPEN bit of the DSI_WPCR0 is set.

\( TCLKPREP = 2 \times t_{CLK-PREPARE} \) expressed in ns. The default value used by the D-PHY when TCLKPREPEN bit of the DSI_WPCR0 is reset is 120 (60 ns + 20 * UI).

30.16.9 DSI Wrapper PHY configuration register 3 (DSI_WPCR3)

Address offset: 0x0424

Reset value: 0x0000 0000

Note: This register shall be programmed only when DSI is stopped (CR.DSIEN=0 and DSI_CR.EN = 0).

31302928272625242322212019181716
TLPXC[7:0]THSEXIT[7:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
TLPXD[7:0]THSZERO[7:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:24 TLPXC : \( t_{LPXC} \) for clock lane

This field defines the \( t_{LPX} \) as specified in the MIPI ® D-PHY specification for the clock lane. This value is used by the D-PHY when the TLPXCEN bit of the DSI_WPCR1 is set.

\( TLPXC = 2 \times t_{LPX} \) expressed in ns. The default value used by the D-PHY when TLPXCEN bit of the DSI_WPCR1 is reset is 100 (50 ns).

Bits 23:16 THSEXIT : \( t_{HSEXIT} \)

This field defines the \( t_{HS-EXIT} \) as specified in the MIPI ® D-PHY specification. This value is used by the D-PHY when the THSEXITEN bit of the DSI_WPCR1 is set.

\( THSEXIT = t_{HS-EXIT} \) expressed in ns. The default value used by the D-PHY when THSEXITEN bit of the DSI_WPCR1 is reset is 100 (100 ns).

Bits 15:8 TLPXD : \( t_{LPX} \) for data lanes

This field defines the \( t_{LPX} \) as specified in the MIPI ® D-PHY specification for the data lanes. This value is used by the D-PHY when the TLPXDEN bit of the DSI_WPCR1 is set.

\( TLPXD = 2 \times t_{LPX} \) expressed in ns. The default value used by the D-PHY when TLPXDEN bit of the DSI_WPCR1 is reset is 100 (50 ns).

Bits 7:0 THSZERO : \( t_{HS-ZERO} \)

This field defines the \( t_{HS-ZERO} \) as specified in the MIPI ® D-PHY specification. This value is used by the D-PHY when the THSZEROEN bit of the DSI_WPCR1 is set.

\( THSZERO = t_{HS-ZERO} \) expressed in ns. The default value used by the D-PHY when THSZEROEN bit of the DSI_WPCR1 is reset is 175, (175 ns).

30.16.10 DSI Wrapper PHY configuration register 4 (DSI_WPCR4)

Address offset: 0x0428

Reset value: 0x0000 0000

Note: This register shall be programmed only when DSI is stopped (CR.DSIEN=0 and DSI_CR.EN = 0).

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.TCLKPOST[7:0]
rwrwrwrwrwrwrwrw

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

Bits 7:0 TCLKPOST : \( t_{CLK-POST} \)

This field defines the \( t_{CLK-POST} \) as specified in the MIPI® D-PHY specification. This value is used by the D-PHY when the TCLKPOSTEN bit of the DSI_WPCR0 is set.

\( TCLKPOST = 2 \times t_{CLK-POST} \) expressed in ns. The default value used by the D-PHY when TCLKPOSTEN bit of the DSI_WPCR0 is reset is 200 (100 ns + 120 * UI).

30.16.11 DSI Wrapper regulator and PLL control register (DSI_WRPCR)

Address offset: 0x0430

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.REGENRes.Res.Res.Res.Res.Res.ODF[1:0]
rwrwrw
1514131211109876543210
Res.IDF[3:0]Res.Res.NDIV[6:0]Res.PLLEN
rwrwrwrwrwrwrwrwrwrwrwrw

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

Bit 24 REGEN : Regulator enable

This bit enables the DPHY regulator.

0: regulator disabled

1: regulator enabled

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

Bits 17:16 ODF[1:0] : PLL output division factor

This field configures the PLL output division factor.

00: PLL output divided by 1

01: PLL output divided by 2

10: PLL output divided by 4

11: PLL output divided by 8

Bit 15 Reserved, must be kept at reset value.

Bits 14:11 IDF[3:0] : PLL input division factor

This field configures the PLL input division factor.

000: PLL input divided by 1

001: PLL input divided by 1

010: PLL input divided by 2

011: PLL input divided by 3

100: PLL input divided by 4

101: PLL input divided by 5

110: PLL input divided by 6

111: PLL input divided by 7

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

Bits 8:2 NDIV[6:0] : PLL loop division factor

This field configures the PLL loop division factor.
10 to 125: Allowed loop division factor values
Others: Reserved

Bit 1 Reserved, must be kept at reset value.

Bit 0 PLLEN : PLL enable

This bit enables the D-PHY PLL.
0: PLL disabled
1: PLL enabled

30.16.12 DSI register map

Table 213. DSI register map and reset values

OffsetRegister313029282726252423222120191817161514131211109876543210
0x0000DSI_VRVERSION[31:0]
Reset value001100010011001100110000000101100
0x0004DSI_CRRes.EN
Reset value0
0x0008DSI_CCRRes.TOCKDIV[7:0]TXECKDIV[7:0]
Reset value0000000000000000
0x000CDSI_LVCIDRRes.VCID[1:0]
Reset value00
0x0010DSI_LCOLCRRes.LPERes.COLC[3:0]
Reset value00000
0x0014DSI_LPCRRes.HSPVSPDEP
Reset value000
0x0018DSI_LPMCRRes.LPSIZE[7:0]Res.VLPSIZE[7:0]
Reset value0000000000000000
0x001C-
0x0028
ReservedReserved
0x002CDSI_PCRRes.CRCRXEECCRXEBTAEETRXEETTXE
Reset value00000
0x0030DSI_GVCIDRRes.VCID[1:0]
Reset value00
0x0034DSI_MCRRes.CMDM
Reset value1

Table 213. DSI register map and reset values (continued)

OffsetRegister313029282726252423222120191817161514131211109876543210
0x0038DSI_VMCRRes.Res.Res.Res.Res.Res.Res.PGORes.Res.Res.PGMRes.Res.Res.Res.PGELPCEFBTAAELPHFPELPHBPELVAELPVFPELPVBPELPVSAERes.Res.Res.Res.Res.Res.Res.VMT[1:0]
Reset value0000000000000
0x003CDSI_VPCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.VPSIZE[13:0]
Reset value0000000000000000
0x0040DSI_VCCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.NUMC[12:0]
Reset value000000000000000
0x0044DSI_VNPCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.NPSIZE[12:0]
Reset value000000000000000
0x0048DSI_VHSACRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.HSA[11:0]
Reset value00000000000000
0x004CDSI_VHBPCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.HBP[11:0]
Reset value00000000000000
0x0050DSI_VLCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.HLINE[14:0]
Reset value00000000000000000
0x0054DSI_VVSACRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.VSA[9:0]
Reset value000000000000
0x0058DSI_VVBPCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.VBP[9:0]
Reset value000000000000
0x005CDSI_VVFPCRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.VFP[9:0]
Reset value000000000000
0x0060DSI_VVACRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.VA[13:0]
Reset value0000000000000000
0x0064DSI_LCCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CMDSIZE[15:0]
Reset value000000000000000000
0x0068DSI_CMCRRes.Res.Res.Res.Res.Res.Res.MRDPSRes.Res.Res.DLWTXRes.DSR0TXDSW1TXDSW0TXRes.GLWTXGSR2TXGSR1TXGSR0TXGSW2TXGSW1TXGSW0TXRes.Res.Res.Res.Res.Res.Res.ARETEARE
Reset value000000000000000
0x006CDSI_GHCRRes.Res.Res.Res.Res.Res.Res.WCMSB[7:0]WCLSB[7:0]VCIDDT[5:0]
Reset value0000000000000000000000000
0x0070DSI_GPDRDATA4[7:0]DATA3[7:0]DATA2[7:0]DATA1[7:0]
Reset value00000000000000000000000000000000
0x0074DSI_GPSRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.RCBPRDFFPRDFEPWRFFPWRFECMDFFCMDFE
Reset value0010101
0x0078DSI_TCCR0HSTX_TOCNT[15:0]LPRX_TOCNT[15:0]
Reset value00000000000000000000000000000000
0x007CDSI_TCCR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.HSRD_TOCNT[15:0]
Reset value0000000000000000
0x0080DSI_TCCR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.LPRD_TOCNT[15:0]
Reset value0000000000000000

Table 213. DSI register map and reset values (continued)

OffsetRegister313029282726252423222120191817161514131211109876543210
0x0084DSI_TCCR3Res.Res.Res.Res.Res.Res.Res.PMRes.Res.Res.Res.Res.Res.Res.Res.HSWR_TOCNT[15:0]
Reset value00000000000000000
0x0088DSI_TCCR4Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.LSWR_TOCNT[15:0]
Reset value000000000000000
0x008CDSI_TCCR5Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.BTA_TOCNT[15:0]
Reset value000000000000000
0x0090ReservedReserved
0x0094DSI_CLCRRes.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.ACRDPCC
Reset value00
0x0098DSI_CLTCRRes.Res.Res.Res.Res.Res.HS2LP_TIME[9:0]Res.Res.Res.Res.Res.Res.LP2HS_TIME[9:0]
Reset value00000000000000000000
0x009CDSI_DLTCRHS2LP_TIME[7:0]LP2HS_TIME[7:0]Res.MRD_TIME[14:0]
Reset value00000000000000000000000000000000
0x00A0DSI_PCTLRRes.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.CKEDEN
Reset value00
0x00A4DSI_PCCONFRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SW_TIME[7:0]Res.Res.Res.Res.Res.Res.Res.NL1:0
Reset value0000000000
0x00A8DSI_PUCRRes.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.UEDLURDUECL
Reset value000
0x00ACDSI_PTTCCRRes.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.TX_TRIG
Reset value0
0x00B0DSI_PSRRes.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.
Reset value
0x00B4-
0x00B8
ReservedReserved
0x00BCDSI_ISR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PE4PE3PE2PE1PE0AE15AE14AE13AE12AE11AE10AE9AE8AE7AE6AE5AE4AE3AE2AE1AE0
Reset value00000000000000000000
0x00C0DSI_ISR1Res.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.Res.
Reset value
0x00C4DSI_IER0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PE4IEPE3IEPE2IEPE1IEPE0IEAE15IEAE14IEAE13IEAE12IEAE11IEAE10IEAE9IEAE8IEAE7IEAE6IEAE5IEAE4IEAE3IEAE2IEAE1IEAE0IE
Reset value00000000000000000000
0x00C8DSI_IER1Res.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.Res.
Reset value
0x00CC-
0x00D4
ReservedReserved

Table 213. DSI register map and reset values (continued)

OffsetRegister313029282726252423222120191817161514131211109876543210
0x00D8DSI_FIR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FPE4FPE3FPE2FPE1FPE0FAE15FAE14FAE13FAE12FAE11FAE10FAE9FAE8FAE7FAE6FAE5FAE4FAE3FAE2FAE1FAE0
Reset value000000000000000000000
0x00DCDSI_FIR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FGPRXEFGPRDEFGPTXEFGPWREFGCWREFLPWREFEOTPEFPSEFORCEFECCMEFECCSEFTOLPRXFTOHSTX
Reset value0000000000000
0x00F0-0x00FCReservedReserved
0x0100DSI_VSCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.URRes.Res.Res.Res.Res.Res.Res.Res.EN
Reset value00
0x0104-0x0108ReservedReserved
0x010CDSI_LCVCIDRRes.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.VCID[1:0]
Reset value00
0x0110DSI_LCCCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.LPERes.Res.Res.Res.Res.COLC[3:0]
Reset value00000
0x0114ReservedReserved
0x0118DSI_LPMCCRRes.Res.Res.Res.Res.Res.Res.Res.LPSIZE[7:0]Res.Res.Res.Res.Res.Res.Res.Res.VLPSIZE[7:0]
Reset value0000000000000000
0x011C-0x0134ReservedReserved
0x0138DSI_VMCCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.LPCEFBTAEELPHFELPHBPELVAELPVFPELPVBPELPVSAEVMT[1:0]
Reset value0000000000
0x013CDSI_VPCCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.VPSIZE[13:0]
Reset value00000000000000
0x0140DSI_VCCCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.NUMC[12:0]
Reset value0000000000000
0x0144DSI_VNPCCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.NPSIZE[12:0]
Reset value0000000000000
0x0148DSI_VHSACCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.HSA[11:0]
Reset value000000000000
0x014CDSI_VHBPCCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.HBP[11:0]
Reset value000000000000
0x0150DSI_VLCCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.HLINE[14:0]
Reset value000000000000000
0x0154DSI_VVSACCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.VSA[9:0]
Reset value0000000000
0x0158DSI_VBPCCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.VBP[9:0]
Reset value0000000000

Table 213. DSI register map and reset values (continued)

OffsetRegister313029282726252423222120191817161514131211109876543210
0x015CDSI_VVFPCCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.VFP[9:0]
Reset value0000000000
0x0160DSI_VVACCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.VA[13:0]
Reset value00000000000000
0x0164-
0x018C
ReservedReserved
0x0400DSI_WCFGRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.VSPOLARTEPOLTESRCCOLMUX[2:0]Res.DSIM
Reset value00000000
0x0404DSI_WCRRes.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.DSIENLTDCCENSHTDNCOLM
Reset value0000
0x0408DSI_WIERRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.RRIERes.Res.Res.PLLUIEPLLLIERes.Res.Res.Res.Res.Res.ERIETEIE
Reset value00000
0x040CDSI_WISRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.RRIFRRSRes.Res.PLLUIFPLLLIFPLLLSRes.Res.Res.Res.BUSYERIFTEIF
Reset value00000000
0x0410DSI_WIFCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CRRIFRes.Res.Res.CPLLUIFCPLLLIERes.Res.Res.Res.Res.Res.CERIFCTEIF
Reset value00000
0x0414ReservedReserved
0x0418DSI_WPCR0Res.Res.Res.Res.TCLCKPOSTENTLPXGENTHSEXITENTLPXDENTHSZEROENTHSTRAILENTHSPREPENTCLCKZEROENTCLCKPREPENPDENRes.TDDLRes.CDOFFDLFTXSMDLFTXSMCLHSIDL1HSIDL0HSICLSWDL1SWDL0SWCLUIX4[5:0]
Reset value00000000000000000000000000
0x041CDSI_WPCR1Res.Res.Res.Res.Res.LPRXFT[1:0]Res.Res.FLPRXLPMRes.HSTXSRCDL[1:0]Res.HSTXSRCCL[1:0]Res.Res.Res.SDCCRes.LPSRDL[1:0]Res.LPSRCL[1:0]Res.Res.HSTXDLL[1:0]HSTXDCL[1:0]
Reset value0000000000000000
0x0420DSI_WPCR2THSTRAIL[7:0]THSPREP[7:0]TCLKZEO[7:0]TCLKPREP[7:0]
Reset value00000000000000000000000000000000
0x0424DSI_WPCR3TLPXC[7:0]THSEXIT[7:0]TLPXD[7:0]THSZERO[7:0]
Reset value00000000000000000000000000000000
0x0428DSI_WPCR4Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.THSZERO[7:0]
Reset value00000000
0x042CReservedReserved
0x0430DSI_WRPCRRes.Res.Res.Res.Res.Res.REGENRes.Res.Res.Res.Res.Res.Res.ODF[1:0]Res.IDF[3:0]Res.Res.NDIV[6:0]Res.PLLEN
Reset value000000000000000

Refer to Section 2.2 on page 93 for the register boundary addresses.