SPRUJB3 March 2024 AM67 , AM67A , TDA4AEN-Q1 , TDA4VEN-Q1
The DSI IP offers different options for behavior in the BLLP areas:
Figure 12-565 shows burst mode operation.
The user should balance the increase in the clock frequencies for transmission of the active display, against the power saving by using BLLP(Null) or LP state.
For Burst with the LP state the register fields must be programmed for burst_lp = 1 and reg_blkeol_mode = 2'b2.
Command Insertion Operation
The DSITX can use the burst operation to allow the blanking/LP stages to be used for DCS/GEN command insertion by programming the size of the space available after the sync of each line.
Only one command packet can be passed within each video line. The decision to insert a command in a video line is done at the beginning of the slot just after the previous video packet. If a command arrives in the middle of the slot, it is not processed in that line, the decision to accept the command will be taken in the next line.
If the packet does not fit in a short slot (size bigger than reg_max_burst_limit and not equal to reg_exact_burst_limit), it is delayed up to next long slot. The signal reg_err_burstwrite is flagged (it is only an information that can help application software control). If its length is longer than reg_max_line_limit, it is discarded and the error reg_err_linewrite is generated.
Read commands and BTA requests are only passed during long slots, as there is no way to calculate their duration exactly. In the case where their duration takes longer time than the vertical blanking period, the error reg_err_longread is flagged.
Command Insertion Registers in Burst Operation
The burst operation requires the configuraton of the registers to control the size of the packets that will fit in the space available on each type of horizontal line.
In VSA, VBP or VFP: Insertion of short and long command packets, read or BTA are allowed.
VID_VCA_SETTING1 register:
[16] BURST_LP: After an active line, in burst mode, the system can switch in LP (1) or should complete the line with NULL packet (0).
VID_VCA_SETTING1 register:
[15:0] MAX_BURST_LIMIT: Maximum length of a packet (number of bytes) that can be passed during the blanking period at the end of an active line (in burst mode) followed by a NULL packet with no data (6 bytes).
VID_VCA_SETTING2 register:
[15:0] EXACT_BURST_LIMIT:Exact maximum size of the burst packet (packet that fits after pixel data in burst mode), that is with no Null packet insertion afterwards.
VID_VCA_SETTING2 register:
[31:16] MAX_LINE_LIMIT: The "maximum" packet (number of bytes) that can be passed during the vertical blanking period.
If the packet does not fit in a short slot (size bigger than MAX_BURST_LIMIT and not equal to EXACT_BURST_LIMIT), it is delayed up to next long slot.
Table 12-454 outlines the expected behaviour of each packet type during the video frame.
Packet type | Packet Size | Behavior | Error Flagged |
---|---|---|---|
VACT Active Line - Read and BTA do not pass | |||
No packet | - | LP mode null packet sent | |
Short packet | Packet passed followed by a null packet | ||
Long packet | size <reg_max_burst_limit | Packet passed followed by a null packet | |
Long packet | size = reg_exact_burst_limit | Packet passed | |
Long packet | reg_max_burst_limit < size < reg_exact_burst_limit | Packet delayed, LP mode packet delayed, null packet sent | Burstwrite Burstwrite |
Long packet | reg_exact_burst_limit < size <= reg_max_line_limit | packet is delayed to non-active part of frame: Packet delayed, LP mode packet delayed, null packet sent | Burstwrite Burstwrite |
Packet type | Packet Size | Behavior | Error Flagged |
Long packet | size > reg_max_line_limit | Packet thrown, LP mode packet thrown, null packet sent | Linewrite Linewrite |
Read packet | - | Packet delayed, LP mode Packet delayed, null packet sent | - |
BTA request | - | Packet delayed, LP mode Packet delayed, null packet sent | - |
VSA, VBP, VFP - Long packet, read and BTA can be passed | |||
No packet | - | LP mode | - |
Short packet | - | Packet passed followed by a null packet | - |
Long packet | size < reg_max_burst_limit | Packet passed followed by a null packet | |
Long packet | size >reg_exact_burst_limit | packet thrown, LP mode | Linewrite |
Read packet | read completed (direction) before end of slot | Packet passed | |
Read packet | read not completed (direction) before end of slot | Packet passed | Longread If operation lasts too long |
BTA request | - | Packet passed | Longread If operation lasts too long |
Note that for burst operation with Low Power, the command will be sent as a high-speed packet even if the request is made to send as Low Power. Also, the next active line will return to using LP during the HFP phase if no other commands are requested.