SPRUJ28E November 2021 – September 2024 AM68 , AM68A , TDA4AL-Q1 , TDA4VE-Q1 , TDA4VL-Q1
The read DMA buffers are used by the VID and VIDL pipelines.
When the vertical front porch (VFP) period starts after the last horizontal front porch (HFP) of the last line, the DMA buffers are flushed according to the video port output associated with the particular video pipeline. The DMA engine restarts fetching new frame data from the memory through the DISPC master port. Enabling or disabling the DISPC also flushes the DMA buffers.
Programmable high and low thresholds, independent for each DMA buffer, are used by the DMA engine to start and stop requesting data thourgh the master port.
The configuration of thresholds for optimal performance can be defined using the DSS0_VID_BUF_SIZE_STATUS[15-0] BUFSIZE register field value, as follows:
The following limitations for BUFLOWTHRESHOLD values must be also considered:
To avoid underflow at the beginning of a frame and have sufficient encoded pixel data to start some processing, a preloading of the DMA buffer is configurable between a fixed value of bytes and the high threshold value. When the preload value is reached, the associated channel will start pulling pixels out of the DMA buffer. To enable the preload based on the value entered in the DSS0_VID_PRELOAD[11-0] PRELOAD register bit-field, the DSS0_VID_ATTRIBUTES[19] BUFPRELOAD register bit must be set to 0x0.
The vertical blanking between two frames must be long enough to allow fetching the number of pixels defined by the DSS0_VID_PRELOAD register and preloading the whole video pipeline. If the value set in the preload register is greater than some overflow conditions detected by the hardware, then data will start to be read from the video DMA buffer before the preload value is reached. If SYNCLOST_IRQ event occurs the video buffer needs to be increased (buffer merge). Preload value must be greater or equal to low threshold, and smaller or equal to high threshold value.
When self-refresh mode is selected (which means that the data in the DMA buffer are used for multiple frames) the DMA buffers are not flushed at the end of each frame. Each DMA buffer has an independent control for selecting the self-refresh mode. For more information, see Section 12.6.3.6.10, DISPC DMA Ultra-Low Power Mode.