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

供稿:韬睿(上海)计算机科技有限公司

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

1). 简介

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


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



2). 准备

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


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




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

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

image001.png



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



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


关于 devicetree的基本说明请参考这里,我们需要修改的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 ParrallelRGB LCD interface, 确定24bit RGB 管脚定义:



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



关于 devicetree的基本说明请参考这里,我们需要修改的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 输出的软硬件配置方法供参考。

发布时间:2017年11月24日 16:18  人气:   审核编辑(何为)
相关链接

我有需求