“显示”是嵌入式开发板最为重要的功能之一,能够支持更多种类、更高规格的显示接口,意味着它能够应对的使用场景也更加广泛。每一款嵌入式开发板在出厂前都会做屏幕调试,但在客户的实际项目开发过程中往往会选择非原厂的其他屏体进行适配,而在这个过程中可能会遇到一些无法适配问题。
以飞凌嵌入式AM62x系列的OK6254-C开发板为例,它拥有LVDS和RGB两种显示接口,最多支持2路显示控制器,可同时输出2种不同画面。为了帮助开发者们更方便地进行调试,小编会分上、下两篇文章详细介绍OK6254-C开发板的显示方案,本文将先为大家带来RGB的显示和修改方式。
1
RGB接口规格
飞凌嵌入式OK6254-C开发板提供1个24bit RGB并行显示接口,支持最高分辨率为 WUXGA(1920x1200 @60fps,165MHz 像素时钟)。底板通过FPC座引出16bit数据接口,默认适配飞凌嵌入式7英寸电阻、电容触摸屏,分辨率为1024x600@60fps。
如果对色彩细节和真实性要求较高,RGB888是更好的选择;如果存储空间有限且对色彩表现的要求不高,则可以考虑使用RGB565以节省存储资源。这时,就涉及到了RGB888和RGB565的选择问题。
2
RGB888和RGB565的选择和修改
OK6254-C设备树的修改十分方便,我们把设备树分为三个部分——内核设备树,LVDS显示设备树,RGB显示设备树。若要进行RGB888和RGB565的选择和修改,我们需要打开OK6254-C-rgb.dts文件,如下图:
上图中第一个红色方框内,我们可以修改RGB显示为RGB888或者RGB565,默认为rgb565。下边的红色方框是分辨率信息,默认为1024600,最大支持1920x1200,大家根据根据自己手中的屏体手册修改对应参数即可。此外,OK6254-C开发板还支持800480的屏幕分辨率,接下来为大家介绍选屏操作。
打开文件OK6254-C-rgb-800_480.dts
大家可以在下图红框部分修改分辨率以及适合屏幕的屏体参数。
(1) 编译:
因为我们只对设备树进行了修改,所以我们不需要全编译,否则不仅费时而且费力。编译内核后会在images目录下生成新的Image 和多个设备树文件,在这里我们只需要单独编译内核。
- 切换目录:cd OK6254-linux-sdk/
- 执行环境变量:. build.sh
- 执行单独编译内核的指令:sudo ./build.sh kernel
- 打包所有设备树文件到开发板/boot/目录下替换,然后sync保存重启scp images/OK6254-C* root@172.16.0.225:/boot/
至此修改完毕。
(2) 选屏阶段:
我们已经修改好了对应的文件,替换之后应该如何选择屏幕呢?目前屏幕切换控制方式有三种——内核设备树指定、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)
选择LCD屏时,我们输入2就OK。
选择好需要的配置后,输入0返回上一级菜单。重启Uboot或进入命令行启动系统,都可以使屏幕设置生效。其它分辨率屏幕请按照屏幕参数要求自行修改内核设备树屏幕参数实现。
至此,我们对于RGB的显示方案介绍完毕,当然其他显示接口也是类似,大家可以关注后续的应用笔记。