我正在寻找一些帮助,以便在 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
但是我没有太多编写叠加层的经验,而且我的主要问题是如何将视频输出重定向到此叠加层?
答案 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";
};
};
};
};
最后我准备在液晶显示屏上写字了!