OKMX8MM-C开发板基于NXP公司的i.MX8MMini 四核64位处理器设计,采用核心板+底板结构,主频最高1.8GHz,Cortex-A53架构;2GB DDR4 RAM,支持一个通用型Cortex®-M4 400MHz内核处理器提供多种外设接口,如MIPI-CSI、MIPI-DSI、USB、PCIe、UART 、eCSPI 、IIC和千兆以太网。本文主要讲解OKMX8MM-C开发板平台uboot添加新的显示支持。
一、MIPI接口能够连接的显示设备
OKMX8MM-C开发板只有一个MIPI DSI显示接口,这个接口除了可以连接MIPI显示屏,还可以通过MIPI转LVDS模块,连接LVDS显示屏或HDMI显示屏。
其中MIPI显示屏还分为需要配置和不需要配置的。
1、不需要配置的MIPI屏
MIPI接口的显示屏分为需要DSI进入命令模式配置后才能显示的MIPI屏和不需要配置的MIPI屏。不需要配置的MIPI屏比较简单,只要MIPI DSI接口正常输出信号就能正常显示,飞凌嵌入式OKMX8MM-C开发板提供的1024x600分辨率的7寸MIPI屏就是一块不需要配置的MIPI屏,它默认就工作在4lanes高速模式下,只需要将CPU内的显示相关的模块配置好,并让其开始工作,MIPI屏就能够正常显示。
2、需要配置的MIPI屏
需要配置的MIPI屏,DSI接口在输出显示信号前需要进入命令模式对显示屏进行配置,配置参数一般由屏体厂家提供。NXPi.MX8MM 评估套件使用的OLED屏RM67191,就是一款需要配置的MIPI显示屏。
3、MIPI转LVDS和HDMI模块
这个模块能将MIPI信号转换为LVDS或HDMI信号,通过这个模块可以连接LVDS显示屏或者HDMI显示屏。MIPI转LVDS&HDMI模块需要通过I2C配置转接,将包含对应的显示屏的显示参数等信息配置到芯片内,然后MIPI接口输出对应的显示信号。
二、UBOOT阶段的**显示
OKMX8MM-C开发板默认添加了
- 1024x600的7寸屏(MIPI7);
- 自定义7MIPI显示(MIPICUSTOM);
- MIPI转HDMI的1920x1080 (MIPI2HDMI1920x1080);
- 1280x720 (MIPI2HDMI1280x720);
- 640x480 (MIPI2HDMI640x480);
- 10.1寸1280x800LVDS显示屏(MIPI2HDMI1280x800);
- 自定义MIPI转LVDS(MIPI2HDMICUSTOM)。
小编截取了MIPI7和MIPI2HDMI_1280x720的完整的显示参数,分别对应了直接连接MIPI屏和通过MIPI转LVDS&HDMI模块连接LVDS或HDMI显示屏。
struct display_info_t const displays[] = { { .bus = LCDIF_BASE_ADDR, .addr = 0, .pixfmt = 24, .detect = NULL, .enable = do_enable_mipi_led, .mode = { .name = "MIPI7", .refresh = 60, .xres = 1024 , .yres = 600, .pixclock = 22733, /* 43987200 */ .left_margin = 48, .right_margin = 40, .upper_margin = 16, .lower_margin = 13, .hsync_len = 48, .vsync_len = 3, .sync = FB_SYNC_EXT, .vmode = FB_VMODE_NONINTERLACED } }, |