树莓派3B/4B设备(from kernel 5.4)添加fbtft小型LCD屏幕支持

树莓派随笔

3B/4B设备(from kernel 5.4)添加fbtft小型LCD屏幕支持

1. 问题记录

在树莓派平台上如果想使用自己的TFT-LCD屏幕,目前网上的解决方案都是使用fbtft_device添加LCD设备。但是此方法自linux 5.4内核后便不能再使用,详见notro/fbtft/wiki

fbtft_device is a kernel module for registering FBTFT devices.
Note: fbtft_device is not available starting from Linux 5.4

这也就导致了3B以后的设备无法再使用之前的方法添加LCD设备。

2. 解决方案

本文案例使用SPI-ILI9341屏幕,参考Watterott electronic的支持文档,这里使用Watterott electronic的设备树支持(国外网站)。其实ili9341的驱动在linux内核中已经自带了,感兴趣的同学可以查看一下linux内核源码,也可以直接在树莓派中输入指令查询:

	ls /lib/modules/5.10.17-v7+/kernel/drivers/staging/fbtft/

run ls
对于大部分SPI屏幕,所需要的引脚除了SPI总线的MOSI/MISO/SCK/CE,还需要额外的DC/RESET/LED。对于树莓派,其本身只有一个SPI0,片选信号也理所当然的选择CE0,那么接下来主要就是适配这些额外的控制引脚。参照Watterott electronic提供的安装方法(Home> RPi HATs> RPi-Display> FBTFT Installation),我们在树莓派中对应的加入相关设备树覆盖。

	wget -N https://github.com/watterott/RPi-Display/raw/master/software/rpi-display.dtbo
	sudo cp rpi-display.dtbo /boot/overlays/rpi-display.dtbo

上述步骤是从GitHub上下载对应的rpi-display.dtbo文件,并加入树莓派的动态设备树覆盖文件目录中。这里笔者测试直接在树莓派中进行wget下载速度较慢,可以在PC端上直接从GitHub中下载好,然后通过nfs挂载方法,将文件传至树莓派中。
这里的.dtbo是已经编译好的二进制文件,无法直接查看,我们使用前还需要知道具体DC/RESET/LED的物理引脚是什么,那么便查看此dtbo编译前的dts文件,见:

https://github.com/watterott/RPi-Display/blob/master/software/rpi-display-overlay.dts

在这里插入图片描述

在上述文件中我们很轻易的就能找到ili9341对应的设备树详情,可以看到RESET对应BCM-23,DC对应BCM-24,LED对应BCM-18(后面的1、0代表引脚的初始状态,1为低电平,0为高电平),这里再附上一张树莓派3B的引脚图,方便读者参考,如图对应连接即可。
在这里插入图片描述
进行完上述步骤后,按照Watterott electronic提供的安装方法进行安装。

wget -N https://github.com/watterott/RPi-Display/raw/master/rpi-display.sh
sudo /bin/bash rpi-display.sh 270

Enable TFT display driver and activate X windows on TFT display? y/n Y
Activate the console on the TFT display? y/n Y
Install fbcp (Framebuffer Copy)? y/n N
Install xinput-calibrator? y/n Y
Install tslib (touchscreen library)? y/n N
Reboot the system now? y/n Y
Rebooting now...

sudo startx

安装完后确认连线正确,重启树莓派后应该就能成功看到界面了。
在这里插入图片描述
Good Luck.

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
树莓派4B 是一款单板计算机,它作为一个强大而灵活的开源平台,被广泛应用于物联网、嵌入式系统、教育等领域。其中的/dev/ttyama0 是树莓派4B上的一个串口设备。 串口是一种用于串行数据传输的通信接口,它可以用于连接各种外部设备,如传感器、打印机、调试工具等。而/dev/ttyama0 是树莓派4B上的第一个串口设备,它通过GPIO引脚实现了数据的收发。 通过/dev/ttyama0,可以实现与其他设备之间的数据交换和通信。用户可以通过编程语言(如Python)或者命令行工具(如minicom)来访问/dev/ttyama0,并使用相应的协议进行数据传输。在物联网项目中,可以利用/dev/ttyama0与传感器进行通信,获取传感器的数据并进行处理。在嵌入式系统开发中,可以使用/dev/ttyama0进行调试,输出调试信息,或者与其他设备进行交互。 当我们在树莓派4B上使用串口通信时,需要注意一些配置和设置。首先,我们需要确认树莓派上的串口是否已经启用,并且与/dev/ttyama0 对应。在树莓派操作系统中,可以使用命令行工具raspi-config来对串口进行配置。其次,我们需要按照相应的通信协议编写代码,以实现数据的发送和接收。不同的设备和应用场景可能需要不同的协议和参数设置,因此需要根据具体情况进行配置。 总而言之,树莓派4B上的/dev/ttyama0 是一个串口设备,它提供了与其他设备进行数据交换和通信的接口。通过适当的配置和编程,我们可以实现与传感器、工具等设备的连接和数据交互。这为我们在物联网、嵌入式系统等领域的开发和应用带来了更多的可能性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值