MCUXpresso SDK API Reference Manual
Rev. 0
NXP Semiconductors
|
The MCUXpresso SDK provides a peripheral driver for the Enhanced LCD Interface(eLCDIF)
The Enhanced LCD Interface supports MPU mode, VSYNC mode, RGB mode (or DOTCLK mode), and DVI mode. The current eLCDIF driver only supports RGB mode.
The function ELCDIF_SetNextBufferAddr sets the next frame to show to eLCDIF, the eLCDIF loads the new frame and sets the interrupt kELCDIF_CurFrameDone. If no new frame is set, the old one is displayed.
Refer to the driver examples codes located at <SDK_ROOT>/boards/<BOARD>/driver_examples/elcdif
The alpha surface can be enabled to add an extra overlay on the normal display buffer. In this example, the alpha surface is enabled, and the alpha value is updated after every frame loaded to eLCDIF.
Refer to the driver examples codes located at <SDK_ROOT>/boards/<BOARD>/driver_examples/elcdif
Data Structures | |
struct | elcdif_pixel_format_reg_t |
The register value when using different pixel format. More... | |
struct | elcdif_rgb_mode_config_t |
eLCDIF configure structure for RGB mode (DOTCLK mode). More... | |
struct | elcdif_as_buffer_config_t |
eLCDIF alpha surface buffer configuration. More... | |
struct | elcdif_as_blend_config_t |
eLCDIF alpha surface blending configuration. More... | |
Driver version | |
#define | FSL_ELCDIF_DRIVER_VERSION (MAKE_VERSION(2, 0, 2)) |
eLCDIF driver version | |
eLCDIF initialization and de-initialization | |
void | ELCDIF_RgbModeInit (LCDIF_Type *base, const elcdif_rgb_mode_config_t *config) |
Initializes the eLCDIF to work in RGB mode (DOTCLK mode). More... | |
static uint32_t | ELCDIF_GetStatus (LCDIF_Type *base) |
Gets the eLCDIF default configuration structure for RGB (DOTCLK) mode. More... | |
static uint32_t | ELCDIF_GetLFifoCount (LCDIF_Type *base) |
Get current count in Latency buffer (LFIFO). More... | |
Interrupts | |
static void | ELCDIF_EnableInterrupts (LCDIF_Type *base, uint32_t mask) |
Enables eLCDIF interrupt requests. More... | |
static void | ELCDIF_DisableInterrupts (LCDIF_Type *base, uint32_t mask) |
Disables eLCDIF interrupt requests. More... | |
static uint32_t | ELCDIF_GetInterruptStatus (LCDIF_Type *base) |
Get eLCDIF interrupt peding status. More... | |
static void | ELCDIF_ClearInterruptStatus (LCDIF_Type *base, uint32_t mask) |
Clear eLCDIF interrupt peding status. More... | |
LUT | |
The Lookup Table (LUT) is used to expand the 8 bits pixel to 24 bits pixel before output to external displayer. There are two 256x24 bits LUT memory in LCDIF, the LSB of frame buffer address determins which memory to use. | |
static void | ELCDIF_EnableLut (LCDIF_Type *base, bool enable) |
Enable or disable the LUT. More... | |
status_t | ELCDIF_UpdateLut (LCDIF_Type *base, elcdif_lut_t lut, uint16_t startIndex, const uint32_t *lutData, uint16_t count) |
Load the LUT value. More... | |
struct elcdif_pixel_format_reg_t |
These register bits control the pixel format:
Data Fields | |
uint32_t | regCtrl |
Value of register CTRL. More... | |
uint32_t | regCtrl1 |
Value of register CTRL1. More... | |
uint32_t elcdif_pixel_format_reg_t::regCtrl |
uint32_t elcdif_pixel_format_reg_t::regCtrl1 |
struct elcdif_rgb_mode_config_t |
Data Fields | |
uint16_t | panelWidth |
Display panel width, pixels per line. More... | |
uint16_t | panelHeight |
Display panel height, how many lines per panel. More... | |
uint8_t | hsw |
HSYNC pulse width. More... | |
uint8_t | hfp |
Horizontal front porch. More... | |
uint8_t | hbp |
Horizontal back porch. More... | |
uint8_t | vsw |
VSYNC pulse width. More... | |
uint8_t | vfp |
Vrtical front porch. More... | |
uint8_t | vbp |
Vertical back porch. More... | |
uint32_t | polarityFlags |
OR'ed value of _elcdif_polarity_flags, used to contol the signal polarity. More... | |
uint32_t | bufferAddr |
Frame buffer address. More... | |
elcdif_pixel_format_t | pixelFormat |
Pixel format. More... | |
elcdif_lcd_data_bus_t | dataBus |
LCD data bus. More... | |
uint16_t elcdif_rgb_mode_config_t::panelWidth |
uint16_t elcdif_rgb_mode_config_t::panelHeight |
uint8_t elcdif_rgb_mode_config_t::hsw |
uint8_t elcdif_rgb_mode_config_t::hfp |
uint8_t elcdif_rgb_mode_config_t::hbp |
uint8_t elcdif_rgb_mode_config_t::vsw |
uint8_t elcdif_rgb_mode_config_t::vfp |
uint8_t elcdif_rgb_mode_config_t::vbp |
uint32_t elcdif_rgb_mode_config_t::polarityFlags |
uint32_t elcdif_rgb_mode_config_t::bufferAddr |
elcdif_pixel_format_t elcdif_rgb_mode_config_t::pixelFormat |
elcdif_lcd_data_bus_t elcdif_rgb_mode_config_t::dataBus |
struct elcdif_as_buffer_config_t |
Data Fields | |
uint32_t | bufferAddr |
Buffer address. More... | |
elcdif_as_pixel_format_t | pixelFormat |
Pixel format. More... | |
uint32_t elcdif_as_buffer_config_t::bufferAddr |
elcdif_as_pixel_format_t elcdif_as_buffer_config_t::pixelFormat |
struct elcdif_as_blend_config_t |
Data Fields | |
uint8_t | alpha |
User defined alpha value, only used when alphaMode is kELCDIF_AlphaOverride or kELCDIF_AlphaRop. More... | |
bool | invertAlpha |
Set true to invert the alpha. More... | |
elcdif_alpha_mode_t | alphaMode |
Alpha mode. More... | |
elcdif_rop_mode_t | ropMode |
ROP mode, only valid when alphaMode is kELCDIF_AlphaRop. More... | |
uint8_t elcdif_as_blend_config_t::alpha |
bool elcdif_as_blend_config_t::invertAlpha |
elcdif_alpha_mode_t elcdif_as_blend_config_t::alphaMode |
elcdif_rop_mode_t elcdif_as_blend_config_t::ropMode |
enum _elcdif_status_flags |
This enumerator should be defined together with the array s_pixelFormatReg. To support new pixel format, enhance this enumerator and s_pixelFormatReg.
enum elcdif_alpha_mode_t |
enum elcdif_rop_mode_t |
Explanation:
enum elcdif_lut_t |
void ELCDIF_RgbModeInit | ( | LCDIF_Type * | base, |
const elcdif_rgb_mode_config_t * | config | ||
) |
This function ungates the eLCDIF clock and configures the eLCDIF peripheral according to the configuration structure.
base | eLCDIF peripheral base address. |
config | Pointer to the configuration structure. |
|
inlinestatic |
This function sets the configuration structure to default values. The default configuration is set to the following values.
base | eLCDIF peripheral base address. |
|
inlinestatic |
base | eLCDIF peripheral base address. |
|
inlinestatic |
base | eLCDIF peripheral base address. |
mask | interrupt source, OR'ed value of _elcdif_interrupt_enable. |
|
inlinestatic |
base | eLCDIF peripheral base address. |
mask | interrupt source, OR'ed value of _elcdif_interrupt_enable. |
|
inlinestatic |
base | eLCDIF peripheral base address. |
|
inlinestatic |
base | eLCDIF peripheral base address. |
mask | of the flags to clear, OR'ed value of _elcdif_interrupt_flags. |
|
inlinestatic |
base | eLCDIF peripheral base address. |
enable | True to enable, false to disable. |
status_t ELCDIF_UpdateLut | ( | LCDIF_Type * | base, |
elcdif_lut_t | lut, | ||
uint16_t | startIndex, | ||
const uint32_t * | lutData, | ||
uint16_t | count | ||
) |
This function loads the LUT value to the specific LUT memory, user can specify the start entry index.
base | eLCDIF peripheral base address. |
lut | Which LUT to load. |
startIndex | The start index of the LUT entry to update. |
lutData | The LUT data to load. |
count | Count of lutData . |
kStatus_Success | Initialization success. |
kStatus_InvalidArgument | Wrong argument. |