嵌入式ARM平台基于Linux配置24bit RGB输出

时间:2021-04-01 18:46:43

By Toradex秦海

1). 简介

嵌入式ARM平台设备采用Embedded Linux操作系统进行开发已经越来越成为主流,本文就着重演示在EmbeddedLinux下配置24bit RGB LCD显示。


本文所演示的平台来自于ToradexColibri iMX6和ColibriiMX7嵌入式平台,分别基于NXP iMX6和 iMX7 系列ARM处理器。ToradexColibri系列模块默认定义支持18bit RGB 输出,如果要支持24bit RGB 输出,那么需要在硬件以及device tree上面做对应的修改,下面就具体进行说明。



2. 准备

a). Toradex ARM 模块产品数据手册,请从下面下载:Colibri iMX6|Colibri iMX7


b). 参考这里说明下载Toradex Embedded Linux V2.7内核源代码,用于修改编译device tree文件。



3). Colibri iMX6 平台 24bit RGB 配置

a). 首先参考Colibri iMX6 数据手册章节 5.5.1 Parrallel RGB LCD interface, 确定24bit RGB 管脚定义:

嵌入式ARM平台基于Linux配置24bit RGB输出


请注意,默认的18bit和24bit管脚分配,除了数量上面的不同,在定义上也是有区别的。


b). 由于默认的device tree文件是基于18bit RGB 输出定义的,因此需要修改device tree 文件来适配管脚和功能的变化。

关于 device tree的基本说明请参考这里,我们需要修改的device tree源文件位于 arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts,修改好的文件请见这里或者基于默认文件的patch文件请见这里

说明如下:

./ 首先在lcd的配置处修改为24bit,即 &lcd 部分

./ 然后在 &mxcfb1 部分同样修改24bit支持,以及对应的LCD分辨率,这里举例为 800x480

./ 最后修改pinmux部分,将24bit增加的pin脚被其他占用的功能去掉,然后添加到lcd对应的管脚定义中去,即后面的&pinctrl_weim_gpio_1, &pinctrl_weim_gpio_2  以及 &pinctrl_ipu1_lcd 这三个部分。


c). 根据这里的说明,重新编译device tree文件并部署到模块上。



4). Colibri i.MX7 平台 24bit RGB 配置

a). 首先参考Colibri iMX6 数据手册章节 5.5.1 Parrallel RGB LCD interface, 确定24bit RGB 管脚定义:

嵌入式ARM平台基于Linux配置24bit RGB输出

嵌入式ARM平台基于Linux配置24bit RGB输出


b). 由于默认的device tree文件是基于18bit RGB 输出定义的,因此需要修改device tree 文件来适配管脚和功能的变化。


关于 device tree的基本说明请参考这里,我们需要修改的device tree源文件位于 arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi,修改好的文件请见这里或者基于默认文件的patch文件请见这里


说明如下:

./ 首先修改lcd的相关配置即 &lcdif 部分,在其中pinctrl-0 中 增加 &pinctrl_lcdif_dat_24,即为24bit增加的pin部分;同时将 bus-width 修改为 24bit支持,另外默认的分辨率这里同样设置为wvga,也就是800x480。

./ 然后修改&iomxc部分,将24bit增加的pin脚被其他占用的功能去掉,即去掉 &pinctrl_hog_3 。


c). 根据这里的说明,重新编译device tree文件并部署到模块上。



5). 总结

本文演示了基于ARM平台Embedded Linux 下24bit RGB 输出的软硬件配置方法供参考。