SPRUJ28E November 2021 – September 2024 AM68 , AM68A , TDA4AL-Q1 , TDA4VE-Q1 , TDA4VL-Q1
The DSI controller can provide DCS command access using either the SDI interface or through the APB interface control of the DIRECT COMMAND registers (see Table 12-360). The panel registers will be programmed using the LP mode before the high-speed video is enabled. Commands can either be sent using the command interface or though the Command FIFO using the APB registers.
The command FIFO access is done though the APB Command mode registers by forming packets of DCS commands. The DCS commands can be found in the MIPI DCS specification or the display panel data sheet.
DCS commands are essentially register write or read transfers to panel registers. The initialization of a panel will require APB register writes to fill the FIFO with the DCS commands. The commands can be grouped into a long packet by sending the packet split into 4 bytes to fill the FIFO using a write to the DSI_DIRECT_CMD_WRDAT register.
DSI Register | Description |
---|---|
DSI_DIRECT_CMD_SEND | Direct Command - trigger the direct command sending - write only |
DSI_DIRECT_CMD_MAIN_SETTINGS | Direct Command - main settings |
DSI_DIRECT_CMD_STS | Direct Command - status - read only |
DSI_DIRECT_CMD_RD_INIT | Direct Command - stop read operation |
DSI_DIRECT_CMD_WRDAT | Direct Command - data to write byte 0 to 3 |
DSI_DIRECT_CMD_FIFO_RST | Direct Command- reset the write FIFO pointer |
Each DCS command packet to be sent can be built by first selecting the packet configuration using the DSI_DIRECT_CMD_MAIN_SETTINGS. The DCS Command data types are defined in the DSI specification based on the number of parameters that are expected to be sent. Configuration of a panel display will normally use DCS write data types.
Table 12-361 shows the DSI_DIRECT_CMD_MAIN_SETTINGS register bit description.
DSI_DIRECT_CMD_MAIN_SETTINGS Register Bit | Description | |||
---|---|---|---|---|
[24] CMD_LP_EN | Enables LP sending for the command request. | |||
[23:16] CMD_SIZE | Size of the command in case of write command - when written value is bigger than 0x10, the value is rounded to 0x10 for write - when size is bigger to 0x2 for read it is rounded to 0x2. | |||
[15:14] CMD_ID | In case of read/write command, Virtual Channel of the command. | |||
[13:8] CMD_HEAD | In case of read/write command, data type of the command: | |||
0x05 | DCS Write | 0 parameters | Short Packet | |
0x15 | DCS Write | 1 parameter | Short packet | |
0x39 | DCS Long Write | N parameters | Long Packet | |
[3] CMD_LONGNOTSHORT | This bit must be tied to one. | |||
[2:0] CMD_NAT | Nature of the direct command: 000: write command. |
Once the packet is loaded, issue a DIRECT_CMD_SEND (via the DSI_DIRECT_CMD_SEND register) and the data will be sent in LP mode.