如何让2.4英寸SPI TFT LCD与Beaglebone Black正常工作
BeagleBone Black 启用SPI与TFT LCD(含FB_TFT)配置指南
一、需启用的内核片段
基础SPI支持
- 启用SPI核心框架:
CONFIG_SPI - 启用BBB的OMAP SPI控制器驱动:
CONFIG_SPI_OMAP24XX - 可选:启用SPI用户空间调试设备:
CONFIG_SPI_SPIDEV
FB_TFT相关片段
- 启用FB_TFT核心框架:
CONFIG_FB_TFT - 根据你的TFT型号选择对应驱动(以下为常见型号示例):
- ILI9341:
CONFIG_FB_TFT_ILI9341 - ST7789V:
CONFIG_FB_TFT_ST7789V - HX8357D:
CONFIG_FB_TFT_HX8357D
- ILI9341:
- 启用帧缓冲基础操作支持:
CONFIG_FB_SYS_FILLRECT、CONFIG_FB_SYS_COPYAREA、CONFIG_FB_SYS_IMAGEBLIT
二、设备树修改
2.1 启用SPI总线(以SPI0为例)
BBB的SPI0默认禁用,需修改设备树启用总线及引脚复用:
&am33xx_pinmux { mcspi1_pins: mcspi1-pins { pinctrl-single,pins = < 0x190 0x13 /* SPI0_SCLK: MODE3, 上拉 */ 0x194 0x13 /* SPI0_D0: MODE3, 上拉 */ 0x198 0x13 /* SPI0_D1: MODE3, 上拉(若屏幕无MISO可省略) */ 0x19C 0x13 /* SPI0_CS0: MODE3, 上拉 */ >; }; }; &mcspi1 { /* OMAP命名为mcspi1,对应BBB的SPI0 */ status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&mcspi1_pins>; };
2.2 添加FB_TFT设备节点
在SPI总线节点下添加TFT对应的节点,以ILI9341为例:
&mcspi1 { /* 保留上述SPI启用代码 */ tft_display@0 { compatible = "ilitek,ili9341"; reg = <0>; /* 对应SPI CS0 */ spi-max-frequency = <30000000>; /* 屏幕支持的最大SPI频率 */ rotate = <0>; /* 屏幕旋转角度:0/90/180/270 */ fps = <30>; buswidth = <8>; /* 硬件数据总线宽度,根据实际连接选8或16 */ dc-gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>; /* DC引脚,需匹配你的硬件连接 */ reset-gpios = <&gpio0 30 GPIO_ACTIVE_LOW>; /* RESET引脚,可选 */ led-gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>; /* 背光控制引脚,可选 */ status = "okay"; }; };
注意:dc-gpios、reset-gpios等GPIO编号需对应BBB实际引脚,比如gpio0 29对应P9_12引脚。
三、物理连接细节(以SPI0 + ILI9341为例)
| BeagleBone Black引脚 | TFT LCD引脚 | 说明 |
|---|---|---|
| P9_22(SPI0_SCLK) | SCLK | SPI时钟 |
| P9_18(SPI0_D0) | MOSI | SPI主机发送数据 |
| P9_17(SPI0_CS0) | CS | SPI片选 |
| P9_12(GPIO0_29) | DC | 数据/命令选择 |
| P9_11(GPIO0_30) | RST | 复位(可选) |
| P9_13(GPIO0_31) | BL | 背光控制(可选) |
| P9_3/P9_4(3.3V) | VCC | 电源(确保屏幕为3.3V供电) |
| P9_1/P9_2(GND) | GND | 接地 |
连接注意事项
- 禁止给BBB引脚接5V,TFT必须是3.3V兼容型号
- 若TFT功耗较高,建议外接独立电源,避免拉低BBB的3.3V电压
- SPI频率不要超过屏幕标注的最大值,ILI9341一般支持30MHz以内
四、FB_TFT使用与调试
- 若FB_TFT编译为模块,加载对应驱动:
modprobe fb_ili9341(替换为你的屏幕驱动) - 驱动加载成功后,会生成帧缓冲设备(通常为
/dev/fb1),可用fbi测试显示:fbi -d /dev/fb1 -T 1 test_image.jpg - 若显示异常,优先检查设备树的
rotate、buswidth参数,以及GPIO引脚连接是否正确
内容的提问来源于stack exchange,提问作者mahegaik
相关产品推荐
相关产品推荐

