“显示”是嵌入式开发板最为重要的功能之一,能够支持更多种类、更高规格的显示接口,意味着它能够应对的使用场景也更加广泛。每一款嵌入式开发板在出厂前都会做屏幕调试,但在客户的实际项目开发过程中往往会选择非原厂的其他屏体进行适配,而在这个过程中可能会遇到一些无法适配问题。
以飞凌嵌入式AM62x系列的OK6254-C开发板为例,它拥有LVDS和RGB两种显示接口,最多支持2路显示控制器,可同时输出2种不同画面。本文就为大家带来LVDS的显示和修改方式。
1 、LVDS接口规格
飞凌嵌入式OK6254-C开发板提供2个4-lane LVDS显示串行接口,每lane最高支持1.19Gbps;单个LVDS接口支持的最高分辨率为WUXGA (1920 x 1200@60fps,162MHz像素时钟)。
不仅如此,该接口还支持以下三种输出模式:
(1)单路LVDS输出模式: 此时只有1个LVDS接口显示输出;
(2)2x单路LVDS(复制)输出模式: 此模式下两路LVDS显示输出相同内容;
(3)双路LVDS输出模式: 8-lane数据与2-lane时钟组成同一个显示输出通道。
飞凌嵌入式OK6254-C开发板上搭配的是双异步通道(8 data,2clocks),支持1920x1200@60fps,信号全部引出默认支持飞凌嵌入式的10.1寸LVDS屏,分辨率为1280x800@60fps。
2 、输出模式设置
(1) 单路LVDS输出模式:
我们需要一根单路LVDS屏线。线的黑色端口连接飞凌嵌入式OK6254-C开发板上,白色端口接入飞凌嵌入式的10.1寸LVDS显示屏。连接方式如下图所示:
需要注意的是,红色线路部分对应三角位置,千万不要插错。
(注:飞凌嵌入式原厂LVDS转接线有防反接标识,可避免反插)
(2) 2x单路LVDS(复制)输出模式:
此模式的线路连接方式与【单路LVDS输出模式】同理,两个白色端口分别接入两块飞凌嵌入式的10.1寸LVDS显示屏,右侧黑色端口同样是接到OK6254-C开发板的LVDS接口上,这样即可实现双屏同显。
(3) 双路LVDS输出模式:
OK6254-C开发板单个LVDS接口支持的最高分辨率为WUXGA(1920 x 1200@60fps),当要实现这种高分辨率的显示输出时,就需要采用【双路LVDS输出模式】了。
值得注意的是,此模式下开发板与屏幕的连接方式与【单路LVDS输出模式】相同,但LVDS线和屏幕的规格都有提高。
3 、修改屏幕分辨率
OK6254-C开发板设备树的修改十分方便,我们需要打开OK6254-C-lvds.dts(单8路配置)和OK6254-C-lvds-dual.dts(双8路配置)文件。
打开OK6254-C-lvds.dts
打开OK6254-C-lvds-dual.dts
上图分别是单路LVDS和双路LVDS屏幕的分辨率信息,默认分辨率为1024*600,最大分辨率支持1920x1200,大家根据自己手中的屏体手册修改对应参数即可。
4 、编译配置
因为我们只对设备树进行了修改,所以我们不需要全编译。编译内核后会在images目录下生成新的Image和多个设备树文件,在这里我们只需要单独编译内核。
- 切换目录:cd OK6254-linux-sdk/
- 执行环境变量:. build.sh
- 执行单独编译内核的指令:sudo ./build.sh kernel
- 打包所有设备树文件到开发板/boot/目录下替换,然后sync保存重启scp images/OK6254-C* root@172.16.0.225:/boot/
5 、选屏阶段
我们已经修改好了对应的文件,替换之后应该如何选择屏幕呢?目前屏幕切换控制方式有三种——内核设备树指定、Uboot菜单动态控制、Forlinx Desktop界面Ubootmenu应用程序。这里我们介绍一下Uboot菜单动态控制。
Uboot启动过程中,按空格键将会进入Uboot菜单。菜单共有三个选项:
输入0,将会进入Uboot命令行;
输入1,将会重启Uboot;
输入2,将会进入显示配置菜单。
屏幕配置菜单有三个选项:
输入0,将会返回上一级菜单;
输入1,会切换选项1显示的内容,从而配置屏幕1 LVDS;注:屏幕1支持单LVDS、双LVDS和关闭(即LVDS off)
输入2,会切换选项2显示的内容,从而配置屏幕2 LCD。注:屏幕2支持1024600分辨率LCD屏,800480分辨率LCD屏幕和关闭(即RGB off)
选择LVDS屏时,我们输入1选择单8路LVDS还是双8路LVDS。
选择好需要的配置后,输入0返回上一级菜单。重启Uboot或进入命令行启动系统,都可以使屏幕设置生效。其它分辨率屏幕请按照屏幕参数要求自行修改内核设备树屏幕参数实现。