LCD-MIPI屏的点亮,关于屏驱的个人理解与分析(基于杰理SDK的个人实战)
2026/9/2 17:04:05 网站建设 项目流程

硬件条件

背光引脚
复位引脚
.lcd_cs/.lcd_lane/.lcd_rs/.lcd_spi_ck/di/do
mipi屏不需要这些

屏显相关配置

关于LCD显示的设备注册表

设备ops作用
imrimr_dev_opsIMR(图像旋转/缩放)
imdimd_dev_opsIMD(图像显示模块,图层管理)
lcdlcd_dev_ops+&lcd_dataLCD 控制器,拿着上面那组面板数据
fb0/fb1/fb2/fb4fb_dev_ops帧缓冲设备

应用层相关屏驱注册表

这里给一个小实例

​ REGISTER_LCD_DEVICE_DRIVE(dev) = { .type = LCD_MIPI, //LCD类型 .init = dsi_init, //mipi-DSi初始化 .dev = &mipi_dev_t, //设备配置序列 .bl_ctrl = mipi_backlight_ctrl, //背光控制 }; ​

DSI_INIT(){ RESET脚的复位和设备初始化配置

struct imd_dmm_info { u16 xres; // 显存水平分辨率 u16 yres; // 显存垂直分辨率 u16 target_xres; // 放大后的水平分辨率 u16 target_yres; // 放大后的垂直分辨率 u8 test_mode; // 测试模式(纯色)使能 u8 layer_buf_num; // 图层显存数量 u32 test_mode_color; // 测试模式颜色设置 u32 background_color; // 图层背景层颜色 enum OUT_FORMAT format; // 输出数据格式 enum INTERLACED interlaced_mode; // 隔行模式 enum ODD_EVEN_FILED interlaced_1st_filed; // 首场是奇场or偶场,INTERLACED_DATA 时有效 struct color_correct adjust;// 颜色校正参数 enum LEN_CFG len; // 访问瞬时长度 enum ROTATE rotate; // 屏幕旋转 };

lane通道配置,启动模式和时序和DSI时序配置。

struct mipi_dev { struct imd_dmm_info info; struct dsi_lane_mapping lane_mapping; struct dsi_video_timing video_timing; struct dsi_timing timing; struct te_mode_ctrl te_mode; unsigned int reset_gpio; void (*lcd_reset)(unsigned int reset_gpio); void (*lcd_reset_release)(unsigned int reset_gpio); const u8 *cmd_list; u16 cmd_list_item; u8 debug_mode; //调试使能 /* 配置PLL频率的最佳范围为600MHz~1.2GHz,少于600MHz的频率通过二分频获得 */ u16 pll_freq; //目标频率(MHz) enum MIPI_PLL_DIV pll_division; //分频 };

根据datasheet和SDK相关接口配置起来。

然后进行背光初始化配置。背光用PWM驱动接口。可以调试相关占空比。

出流

打开服务层UI-SERVER。图层分配由底层预编译库cpu_disp.a/video_dev.a给出,通过fb1的本地出流缓冲区一起给出,并调用lcd的显示请求。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询