覆盖LCD TFT 3.2英寸HY32D使其适用于Beagle Bone Black

时间:2015-03-04 08:24:06

标签: touch beagleboneblack lcd

我正在寻找一些帮助,以便在 Beagle Bone Black 上制作 LCD HY32D

我在BBB的以下PIN上连接了名为 HY32D 的液晶显示器:

    "P8.45",    // lcd: lcd_data0 
    "P8.46",    // lcd: lcd_data1 
    "P8.43",    // lcd: lcd_data2 
    "P8.44",    // lcd: lcd_data3 
    "P8.41",    // lcd: lcd_data4 
    "P8.42",    // lcd: lcd_data5 
    "P8.39",    // lcd: lcd_data6 
    "P8.40",    // lcd: lcd_data7 
    "P8.37",    // lcd: lcd_data8 
    "P8.38",    // lcd: lcd_data9 
    "P8.36",    // lcd: lcd_data10 
    "P8.34",    // lcd: lcd_data11 
    "P8.35",    // lcd: lcd_data12 
    "P8.33",    // lcd: lcd_data13 
    "P8.31",    // lcd: lcd_data14 
    "P8.32",    // lcd: lcd_data15 

    "P9.12",    // lcd RS: gpio1_28 
    "P9.42A",   // lcd RD: gpio0_7 
    "P8.14",    // lcd WR: gpio0_26
    "P8.16",    // lcd RESET: gpio1_14

然后我找到了一个名为cape-bone-lcd3-00A0.dts的叠加层,我确实尝试编辑它以适应LCD HY32D,

这里修改了dts: http://support.rfberrypi.com/download/BB-LCD-HY32D-00A0.dts

但是我没有太多编写叠加层的经验,而且我的主要问题是如何将视频输出重定向到此叠加层?

1 个答案:

答案 0 :(得分:1)

我已经解决了关于LCD驱动程序的问题。 首先我写了叠加层:

option

我把它命名为:

lcd_my_try.dts

我已使用此命令在BBB上编译它:

dtc -O dtb -o lcd_my_try-00A0.dtbo -b 0 - @ lcd_my_try.dts

然后我装了它:

cp lcd_my_try-00A0.dtbo / lib / firmware echo lcd_my_try> / SYS /装置/ bone_capemgr * /槽

我已经加载了与bash文件一起使用的GPIO的名称,其中包含以下内容:

/dts-v1/;
/plugin/;

/{
       compatible = "ti,beaglebone", "ti,beaglebone-black";
       part-number = "lcd_my_try";
       version = "00A0";

       fragment@0 {
             target = <&am33xx_pinmux>;

             __overlay__ {
                  pinctrl_test: lcd_my_try_Pins {
            pinctrl-single,pins = <

                    0xa0 0x2f   /* lcd_data0.lcd_data0, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xa4 0x2f   /* lcd_data1.lcd_data1, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xa8 0x2f   /* lcd_data2.lcd_data2, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xac 0x2f   /* lcd_data3.lcd_data3, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xb0 0x2f   /* lcd_data4.lcd_data4, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xb4 0x2f   /* lcd_data5.lcd_data5, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xb8 0x2f   /* lcd_data6.lcd_data6, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xbc 0x2f   /* lcd_data7.lcd_data7, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xc0 0x2f   /* lcd_data8.lcd_data8, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xc4 0x2f   /* lcd_data9.lcd_data9, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xc8 0x2f   /* lcd_data10.lcd_data10, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xcc 0x2f   /* lcd_data11.lcd_data11, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xd0 0x2f   /* lcd_data12.lcd_data12, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xd4 0x2f   /* lcd_data13.lcd_data13, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xd8 0x2f   /* lcd_data14.lcd_data14, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xdc 0x2f   /* lcd_data15.lcd_data15, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */

                    0x78 0x2f   // lcd_rs.lcd_rs, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT 
                    0x164 0x2f  // lcd_rd.lcd_rd, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT 
                    0x28 0x2f   // lcd_wr.lcd_wr, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT 
                    0x38 0x2f   // lcd_reset.lcd_reset, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT 
                    0x30 0x2f   // lcd_cs.lcd_cs, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT 

                    0xec 0x07   // lcd_ac_bias_en.gpio2_25 OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT 

                    //touch panel ADS7843 = XPT2046
                    0x34 0x2f   // touch_cs.gpio1_13, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT (chip select)
                    0x7c 0x2f   // touch_sck.gpio1_29, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT (clock)
                    0x3c 0x2f   // touch_si.gpio1_15, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT (serial data in)

                    0x8c 0x2f   // touch_irq.gpio2_1, OMAP_MUX_MODE0 | AM33XX_PIN_INPUT (interrupt on touch)
                    0x2c 0x2f   // touch_so.gpio0_27, OMAP_MUX_MODE0 | AM33XX_PIN_INPUT (serial data output)


            >;
          };
             };
       };

       fragment@1 {
        target = <&ocp>;
        __overlay__ {
            test_helper: helper {
                compatible = "bone-pinmux-helper";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_test>;
                status = "okay";
            };
        };
    };
};

最后我准备在液晶显示屏上写字了!