嵌入式实操----基于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屏,调试起来也比较顺利。