1. 程式人生 > >嵌入式ARM平臺基於Linux配置24bit RGB輸出

嵌入式ARM平臺基於Linux配置24bit RGB輸出

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. 準備

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 管腳定義:

image001.png

請注意,預設的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 管腳定義:


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 輸出的軟硬體配置方法供參考。