ブログ

Armadillo-440: 三重電子 4.3inch LCD(型番: PH480272T006-IZB01)を動かしてみた

at_ito
2016年1月8日 18時19分

代理店の福西電機様から、三重電子の4.3inch LCD(型番: PH480272T006-IZB01)をお借りできたので、Armadillo-440で動かしてみました。

動かした際の手順を以下に紹介します。

1. LCD仕様

1.1. 機械的仕様
製品型番 PH480272T006-IZB01
画面サイズ 4.3 インチ
画素数 480 × 3(RGB) × 272 単位: dot
タッチパネル 4 線抵抗感圧式
1.2. 入力信号タイミング特性
項目 Min Typ Max 単位
ドット・クロック信号 周波数 5 9 12 MHz
水平 周期 490 531 605 DCLK
水平 表示範囲 - 480 - DCLK
水平 バック・ポーチ 8 43 - DCLK
水平 フロント・ポーチ 2 8 - DCLK
水平 パルス幅 1 - - DCLK
垂直 周期 275 288 335 Line
垂直 表示領域 - 272 - Line
垂直 バック・ポーチ 2 12 - Line
垂直 フロント・ポーチ 1 4 - Line
垂直 パルス幅 1 10 - Line

2. 動作確認環境

  • 製品: Armadillo-440 + LCD拡張ボード
    • LCD拡張ボードのLCD部分のみPH480272T006-IZB01に付け替え(※)
  • Linuxカーネル: Linux-2.6.26-at25
  • ユーザーランド: atmark-dist-20151218


※: PH480272T006-IZB01は、LCD拡張ボードに標準で接続されているLCDとほぼ同じピン配列、ケーブルとなっているためそのまま接続しています。もし、別のLCDで試す場合にはピン配列、ケーブルが接続できるかご確認ください。(接続できない場合は拡張ボードを作るなどの対応が必要です)

3. Linuxカーネルの修正

PH480272T006-IZB01は、Linuxカーネルにパラメーター等の設定がありませんので、 以下のようにLinuxカーネルのソースコードを修正して、PH480272T006-IZB01のパラメータを 追加してください。

============================================================
diff --git a/drivers/video/mxc/Kconfig b/drivers/video/mxc/Kconfig
index c677cb6..4894f2f 100644
--- a/drivers/video/mxc/Kconfig
+++ b/drivers/video/mxc/Kconfig
@@ -59,6 +59,8 @@ config FB_MXC_MODE_FG100410DNCWBGT1
     bool "FG100410DNCWBGT1"
 config FB_MXC_MODE_AA043MA01
     bool "AA043MA01"
+config FB_MXC_MODE_PH480272T006_IZB01
+    bool "PH480272T006-IZB01"
 
 endchoice
 
@@ -84,6 +86,7 @@ config FB_MXC_DEFAULT_VIDEOMODE
     default "FG050720DSSWDGT1" if FB_MXC_MODE_FG050720DSSWDGT1
     default "FG100410DNCWBGT1" if FB_MXC_MODE_FG100410DNCWBGT1
     default "AA043MA01" if FB_MXC_MODE_AA043MA01
+    default "PH480272T006-IZB01" if FB_MXC_MODE_PH480272T006_IZB01
 
 choice
     prompt "Default bpp"
diff --git a/drivers/video/mxc/mxcfb_modedb.c b/drivers/video/mxc/mxcfb_modedb.c
index 21a0dae..308fd8c 100644
--- a/drivers/video/mxc/mxcfb_modedb.c
+++ b/drivers/video/mxc/mxcfb_modedb.c
@@ -142,6 +142,12 @@ struct fb_videomode mxcfb_modedb[] = {
         FB_VMODE_NONINTERLACED, /* vmode */
         0, /* flag */
     },
+    {
+        "PH480272T006-IZB01", 30, 480, 272, 83334, 8, 43, 12, 4, 1, 1,
+        0,
+        FB_VMODE_NONINTERLACED,
+        0,
+    },
 };
 
 int mxcfb_modedb_sz = ARRAY_SIZE(mxcfb_modedb);
@@ -223,6 +229,10 @@ static struct mxcfb_mode_disp mxcfb_mode_disp_db[] = {
         .name = "AA043MA01",
         .disp_iface = MXCFB_DISP_OE_ACT_HIGH,
     },
+    {
+        .name = "PH480272T006-IZB01",
+        .disp_iface = MXCFB_DISP_OE_ACT_HIGH,
+    },
 };
 
 int mxcfb_disp_iface_from_mode(char *name)
============================================================

Linuxカーネルコンフィギュレーションの変更

前述のLinuxカーネルのソースコードの修正後、以下のカーネルコンフィギュレーションを変更してください。

============================================================
Device Drivers  --->
  Graphics support  --->
    <*> Support for frame buffer devices  --->
      Default videomode (PH480272T006-IZB01)  --->     ← のように変更
============================================================

4. 動作確認

前述のLinuxカーネルへの変更を加えたものをビルドし、Armadilloに書き込んでください。

その後Armadilloを起動すると以下のようにLCDに画像が表示されます。

5. 注意事項

  • ここではLCDの仕様をそのまま記載していますが、実際に使用される際には、LCDのデータシートを十分確認の上、動作確認をおこなってください。