嵌入式实操----基于RT1170 首板硬件之MIPI显示调试(十七)

本文主要是通过迁移的思维,记录本人初次使用NXP MCUXpresso SDK API进行BSP开发

所有的显示驱动调试,均涉及像素时钟和显示时序的适配,本身这些参数就和屏有关系以及根据屏厂要求发送相关的MIPI命令。本文主要说明如何在NXP的显示框架下面适配MIPI屏。

1. 首先阅读原理图

在这里插入图片描述
涉及的文件如下:
在这里插入图片描述

2. 调试过程

2. 1 时序注册

在这里插入图片描述

2. 2 显示资源注册

在这里插入图片描述

2.3 显示时钟初始化

在这里插入图片描述
根据屏参及显示的帧率60,需要66M的像素时钟。528/8 = 66M

2.4 屏初始化

在这里插入图片描述
HSD088IPW1_Init 主要是对MIPI屏的上送,配置LINE显示数目及打开背光。

status_t HSD088IPW1_Init(display_handle_t *handle, const display_config_t *config)
{
    uint32_t i;
    uint8_t param[2];
    status_t status              = kStatus_Success;
    hsd088ipw1_resource_t *resource = (hsd088ipw1_resource_t *)(handle->resource);
    mipi_dsi_device_t *dsiDevice = &(resource->dsiDevice);

    /* Only support 1920 * 480 */
    if (config->resolution != FSL_VIDEO_RESOLUTION(480, 1920) )
    {
        return kStatus_InvalidArgument;
    }
		/*给MIPI屏上电*/
    HSD088IPW1_Power_On_Sequene();

    
    /* 针对屏,设置MIPI 2LINE 显示 */
    for (i = 0; i < ARRAY_SIZE(lcmInitSetting); i++)
    {
        status = MIPI_DSI_GenericWrite(dsiDevice, lcmInitSetting[i], 2); //MIPI_DSI_GenericWrite
           
        if (kStatus_Success != status)
        {
            return status;
        }
		    HSD088IPW1_DelayMs(10);
    }

    HSD088IPW1_DelayMs(300);
		/*打开背光*/
		bsp_pwm_set_brightness_duty_cycle(100);  

    return kStatus_Success;
}

3. 总结

经过前期对MIPI显示的学习,找到如何依据NXP框架注册新的MIPI屏,调试起来也比较顺利。

原文地址:https://www.cnblogs.com/lianghong881018/p/15169586.html