Blog:
嵌入式 Arm 平台基于 Linux配置 24bit RGB 输出

segunda-feira, 27 de novembro de 2017

简介

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

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

准备

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

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

Colibri iMX6 平台 24bit RGB 配置

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

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

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

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

说明如下:

  • 首先在lcd的配置处修改为 24bit,即 &lcd 部分
  • 然后在 &mxcfb1 部分同样修改 24bi t支持,以及对应的 LCD 分辨率,这里举例为 800x480
  • 最后修改 pinmux 部分,将 24bit 增加的 pin 脚被其他占用的功能去掉,然后添加到 lcd 对应的管脚定义中去,即后面的 &pinctrl_weim_gpio_1, &pinctrl_weim_gpio_2  以及 &pinctrl_ipu1_lcd 这三个部分。

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

Colibri i.MX7 平台 24bit RGB 配置

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

由于默认的 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 。

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

总结

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

Autor: 秦海

Deixe um comentário

Please login to leave a comment!
Have a Question?