【问题标题】:Overlay LCD TFT 3.2 inch HY32D make it works on Beagle Bone Black覆盖 LCD TFT 3.2 英寸 HY32D 使其适用于 Beagle Bone Black
【发布时间】:2015-03-04 08:24:05
【问题描述】:

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

我在 BBB 的以下 PIN 上连接了这个名为 HY32D 的 LCD:

    "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

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

【问题讨论】:

    标签: touch beagleboneblack lcd


    【解决方案1】:

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

    /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";
                };
            };
        };
    };
    

    我把它命名为:

    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/devices/bone_capemgr*/slots

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

    #!/bin/bash
    
    echo "Loading GPIO into /sys/class/gpio/export"
    
    echo "Setting UP LCD_DATA_0"
    echo 70 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio70/direction
    
    echo "Setting UP LCD_DATA_1"
    echo 71 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio71/direction
    
    echo "Setting UP LCD_DATA_2"
    echo 72 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio72/direction
    
    echo "Setting UP LCD_DATA_3"
    echo 73 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio73/direction
    
    echo "Setting UP LCD_DATA_4"
    echo 74 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio74/direction
    
    echo "Setting UP LCD_DATA_5"
    echo 75 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio75/direction
    
    echo "Setting UP LCD_DATA_6"
    echo 76 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio76/direction
    
    echo "Setting UP LCD_DATA_7"
    echo 77 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio77/direction
    
    echo "Setting UP LCD_DATA_8"
    echo 78 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio78/direction
    
    echo "Setting UP LCD_DATA_9"
    echo 79 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio79/direction
    
    echo "Setting UP LCD_DATA_10"
    echo 80 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio80/direction
    
    echo "Setting UP LCD_DATA_11"
    echo 81 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio81/direction
    
    echo "Setting UP LCD_DATA_12"
    echo 8 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio8/direction
    
    echo "Setting UP LCD_DATA_13"
    echo 9 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio9/direction
    
    echo "Setting UP LCD_DATA_14"
    echo 10 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio10/direction
    
    echo "Setting UP LCD_DATA_15"
    echo 11 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio11/direction
    
    echo "Setting UP LCD_RS"
    echo 60 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio60/direction
    
    echo "Setting UP LCD_RD"
    echo 7 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio7/direction
    
    echo "Setting UP LCD_WR"
    echo 26 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio26/direction
    
    echo "Setting UP LCD_RESET"
    echo 46 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio46/direction
    
    echo "Setting UP LCD_CS"
    echo 44 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio44/direction
    
    echo "Setting UP LCD_BLVDD"
    echo 89 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio89/direction
    
    echo "----TOUCH PANEL----"
    echo "Setting UP TOUCH_CS"
    echo 45 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio45/direction
    
    echo "Setting UP TOUCH_SCK"
    echo 61 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio61/direction
    
    echo "Setting UP TOUCH_SI"
    echo 47 > /sys/class/gpio/export
    echo "out" > /sys/devices/virtual/gpio/gpio47/direction
    
    echo "Setting UP TOUCH_IRQ"
    echo 65 > /sys/class/gpio/export
    echo "in" > /sys/devices/virtual/gpio/gpio65/direction
    
    echo "Setting UP TOUCH_SO"
    echo 27 > /sys/class/gpio/export
    echo "in" > /sys/devices/virtual/gpio/gpio27/direction
    

    我终于准备好在 LCD 上写字了!

    【讨论】:

      猜你喜欢
      • 2019-02-12
      • 2015-09-01
      • 2019-01-05
      • 1970-01-01
      • 1970-01-01
      • 2014-01-23
      • 1970-01-01
      • 1970-01-01
      • 2014-02-03
      相关资源
      最近更新 更多