模板: 4inch-HDMI-LCD-Manual-02
产品特点
- 4寸IPS屏,硬件分辨率为480×800
- 电阻式触摸控制
- 兼容并可直接插入任何版本树莓派(树莓派Zero / Zero 2 W需另配HDMI连接线)
- 支持Raspberry Pi OS / Ubuntu / Kali和Retropie系统
- 可作为计算机显示器,无触摸功能(接入计算机须另配HDMI线)
- 仅用于显示,不占用任何I/O资源(使用触摸功能,占用I/O)
- 支持背光控制,更省电
搭配树莓派使用
硬件连接
1. 连接GPIO接口接口
Raspberry Pi引出了40个GPIO管脚,而屏幕引出了26个管脚,连接时注意对应屏幕管脚和树莓派管脚。
2. 把HDMI连接器接入屏幕和主板的HDMI接口。
3. 把LCD背后的Backlight拨到“ON”。
注:树莓派Zero / Zero 2 W需另配HDMI连接线进行连接。
硬件连接如下图(Pi 4和Pi 3B+):
软件设置
支持Raspberry Pi OS / Ubuntu / Kali 和 Retropie系统。
请在树莓派官网下载最新版本的镜像。
- 1. 将压缩文件下载到PC上,并解压得到img文件。
- 2. TF卡连接到PC,使用SDFormatter软件格式化TF卡。
- 3. 打开Win32DiskImager软件,选择第1步准备的系统镜像,点击write烧写系统镜像。
- 4. 烧写完成后,打开TF卡根目录的config.txt文件,在config.txt最后加入以下代码,保存并安全弹出TF卡。
hdmi_group=2 hdmi_mode=87 hdmi_timings=480 0 40 10 80 800 0 13 3 32 0 0 0 60 0 32000000 3 hdmi_drive=1 hdmi_force_hotplug=1 dtoverlay=waveshare-ads7846,penirq=25,xmin=150,xmax=3900,ymin=100,ymax=3950,speed=50000
- 5. 下载waveshare-ads7846.dtbo文件并解压复制到overlays目录(/boot/overlays/)
- 6. 将TF卡插入树莓派,给树莓派上电,正常等待十几秒后可正常显示。
触摸校准
可以通过修改config.txt文件的参数进行校准
① 如果X轴左边沿触摸不到,调节 x_min参数。如把 x_min默认值200调整为100,既触摸范围向左扩充了100;
② 如果X轴右边沿触摸不到,调节 x_max参数。如把 x_max默认值3900调整为4000,既触摸范围向右扩充了100;
③ 如果y轴上边沿触摸不到,调节 y_min参数。如把 y_min默认值200调整为100,既触摸范围向上扩充了100;
④ 如果y轴下边沿触摸不到,调节 y_max参数。如把 y_max默认值3900调整为4000,既触摸范围向下扩充了100;
x_min、x_max、y_min、y_max参数的值可以参考evtest工具来定义
sudo apt-get install evtest sudo evtest
这里选择3(不同用户的树莓派显示的序号不一定一样,要根据用户实际的序号来选择)
分别把手指挪到触摸屏的四个边缘(正对触摸屏x_min在最左边、x_max在最右边、y_min在最上边、y_max在最下边)
- 将手指放到x_min
- 将手指放到x_max
- 将手指放到y_min
- 将手指放到y_max
sudo nano /boot/firmware/config.txt
添加
dtoverlay=waveshare-ads7846,x_min=164,x_max=4010,y_min=154,y_max=3758
这样就是当前触摸设备较准确的触摸范围了,最后sudo reboot重启生效当前配置即可。
旋转
添加显示旋转参数
对于Bookworm系统
- 1.打开"Screen Configuration"应用程序;
- 2.进入"Screen"->"HDMI-1"->"Orientation" ,勾选您需要旋转的方向,点击"Apply"即可完成显示和触摸同步旋转。
sudo nano .config/wayfire.ini
添加以下语句到文件末尾:
[output:HDMI-A-1] mode = 800x480@60 transform = 270
transform参数可选择normal、90、180、270。
对于Bullseye和Kali系统
先检查使用的系统是否有加载KMS或FKMS驱动。
查看方法:在/boot/config.txt中,看对应的主板是否有打开了dtoverlay=vc4-kms-v3d或dtoverlay=vc4-fkms-v3d。
如果有,使用以下命令进行显示旋转:
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart #在autostart文件末端输入对应显示旋转角度的指令,重启后生效 #0: 旋转0度; 1:旋转90度;2: 旋转180度; 3: 旋转270度 xrandr -o 1
如果没有,使用以下命令进行显示旋转:
sudo nano /boot/config.txt #在config.txt文件末端输入对应显示旋转角度的指令,重启后生效 #0: 旋转0度; 1:旋转270度;2: 旋转180度; 3: 旋转90度 display_rotate=3
对于Ubuntu系统
先检查使用的系统是否有加载KMS或FKMS驱动。
查看方法:在/boot/firmware/config.txt中,看对应的主板是否有打开了dtoverlay=vc4-kms-v3d或dtoverlay=vc4-fkms-v3d。
如果有,使用以下方式进行显示旋转。
注:对于不同版本的Ubuntu系统,界面可能会有所区别,一般找到Displays应用进行旋转就可以。
执行命令,旋转Ubuntu登录界面,如果没有打开Ubuntu登录界面,这个步骤可以省略:
#对于32位系统,执行以下命令,your_user替代为当前登陆的用户名 sudo cp /home/<your_user>/.config/monitors.xml /var/lib/lightdm/.config #对于64位系统,执行以下命令,your_user替代为当前登陆的用户名 sudo cp /home/<your_user>/.config/monitors.xml /var/lib/gdm3/.config sudo chown gdm:gdm /var/lib/gdm3/.config/monitors.xml
执行以下命令旋转开机过程中的命令行显示:
sudo nano /boot/firmware/cmdline.txt #在尾部增加下面代码可以旋转命令行 #旋转0度 fbcon=rotate:0 video=HDMI-A-1:800x480M@60,rotate=0 #旋转90度 fbcon=rotate:3 video=HDMI-A-1:800x480M@60,rotate=90 #旋转180度 fbcon=rotate:2 video=HDMI-A-1:800x480M@60,rotate=0 #旋转270度 fbcon=rotate:1 video=HDMI-A-1:800x480M@60,rotate=270
如果没有加载KMS或FKMS驱动,旋转相对比较简单,使用以下命令进行显示旋转即可:
sudo nano /boot/firmware/config.txt #在config.txt文件末端输入对应显示旋转角度的指令,重启后生效 #0: 旋转0度; 1:旋转270度;2: 旋转180度; 3: 旋转90度 display_rotate=3
添加触摸旋转参数
sudo nano /usr/share/X11/xorg.conf.d/99-calibration.conf #在99-calibration.conf文件中修改相关命令行,重启后生效。以下是使用默认的校准参数,如果你需要使用特定的校准参数,注意Calibration参数值的顺序变化即可。 #触摸旋转0度: Option "Calibration" "208 3905 288 3910" Option "SwapAxes" "0" #触摸旋转90度: Option "Calibration" "3905 208 288 3910" Option "SwapAxes" "1" #触摸旋转180度: Option "Calibration" "3905 208 3910 288" Option "SwapAxes" "0" #触摸旋转270度: Option "Calibration" "208 3905 3910 288" Option "SwapAxes" "1"
EDID时序参数
如果主控板的系统可以自动识别EDID进行显示,则无需额外设置相关时序参数。
否则可以参考如下EDID设置:
Pixel Clock | H Adressable | H Blanking | V Adressable | V Blanking | H Front Porch | H Sync Width | V Front Porch | V Sync Width | H Image Size | V Image Size | H Border | V Border |
---|---|---|---|---|---|---|---|---|---|---|---|---|
32.00 | 480 | 128 | 800 | 45 | 40 | 48 | 13 | 3 | 108 | 68 | 0 | 0 |
接口定义
以下标识为“NC”的引脚表示LCD没有占用该引脚,用户可用于其它应用。
引脚号 | 标识 | 描述 |
---|---|---|
1 | 3.3V | 电源正(3.3V电源输入) |
2 | 5V | 电源正(5V电源输入) |
3 | NC | NC |
4 | 5V | 电源正(5V电源输入) |
5 | NC | NC |
6 | GND | 电源地 |
7 | NC | NC |
8 | NC | NC |
9 | GND | 电源地 |
10 | NC | NC |
11 | NC | NC |
12 | NC | NC |
13 | NC | NC |
14 | GND | 电源地 |
15 | NC | NC |
16 | NC | NC |
17 | 3.3V | 电源正(3.3V电源输入) |
18 | NC | NC |
19 | TP_SI | LCD显示 / 触摸面板的SPI数据输入 |
20 | GND | 电源地 |
21 | TP_SO | 触摸面板的SPI数据输出 |
22 | TP_IRQ | 触摸面板中断,检测到触摸面板有按下则为低电平 |
23 | TP_SCK | 触摸面板的SPI时钟信号 |
24 | NC | NC |
25 | GND | 电源地 |
26 | TP_CS | 触摸面板片选信号,低电平选择触摸面板 |
可能遇到的问题
触摸抖动比较大,怎么解决?
可以设置消抖参数,解决触摸抖动的问题,但会牺牲掉一部分灵敏度作为代价,具体用户可自行取舍。
由于树莓派默认提供的ads7846.dtbo,没有消抖参数,可以通过修改替代ads7846.dtbo的方式增加消抖参数
具体可以通过以下方式增加防抖功能:
1. 执行命令
wget https://www.waveshare.net/w/upload/2/29/Ads7846_waveshare.zip unzip Ads7846_waveshare.zip cd ads7846_waveshare sudo cp ads7846_waveshare.dtbo /boot/overlays/
2. 执行命令
sudo nano /boot/config.txt #将原来的命令注释掉 #dtoverlay=ads7846,cs=1,penirq=25,penirq_pull=2,speed=50000,keep_vref_on=0,swapxy=0,pmax=255,xohms=150,xmin=200,xmax=3900,ymin=200,ymax=3900 #config.txt文件末端加上以下命令,重启后生效 dtoverlay=ads7846_waveshare
相关参考文档:ads7846-overlay.dts ads7846.txt
Ubuntu系统安装xserver-xorg-input-evdev和xinput-calibrator报错,导致触摸没办法正常使用,怎么解决?
说明:Ubuntu系统由于某些地区网络问题可能无法访问到默认源,从而导致安装报错。
解决方式1,更新源:
1.执行命令,查看当前版本:
lsb_release -c -s
例如执行后显示为:groovy
2.执行命令:
#备份原来的源 sudo mv /etc/apt/syntaxhighlights.list /etc/apt/syntaxhighlights.list.old sudo nano /etc/apt/syntaxhighlights.list
添加以下代码并保存:
#通过步骤1获取的字符串替换下面的groovy deb http://old-releases.ubuntu.com/ubuntu/ groovy universe main deb http://old-releases.ubuntu.com/ubuntu/ groovy-security main universe deb http://old-releases.ubuntu.com/ubuntu/ groovy-updates main universe
3.更新,执行命令:
sudo apt-get update
4.更新完成后,重新进行#触摸校准即可。
如果上面的源失效,可以使用以下方式:
解决方式2,直接找到两个应用程序的下载地址,直接下载安装:
对于32位系统,执行下以命令
wget http://deb.debian.org/debian/pool/main/x/xserver-xorg-input-evdev/xserver-xorg-input-evdev_2.10.6-2_armhf.deb sudo dpkg -i xserver-xorg-input-evdev_2.10.6-2_armhf.deb wget wget http://mirrors.ustc.edu.cn/debian/pool/main/x/xinput-calibrator/xinput-calibrator_0.7.5+git20140201-1+b2_armhf.deb sudo dpkg -i xinput-calibrator_0.7.5+git20140201-1+b2_armhf.deb
对于64位系统,执行下以命令
wget http://deb.debian.org/debian/pool/main/x/xserver-xorg-input-evdev/xserver-xorg-input-evdev_2.10.6-2_arm64.deb sudo dpkg -i xserver-xorg-input-evdev_2.10.6-2_arm64.deb wget http://mirrors.ustc.edu.cn/debian/pool/main/x/xinput-calibrator/xinput-calibrator_0.7.5+git20140201-1+b2_arm64.deb sudo dpkg -i xinput-calibrator_0.7.5+git20140201-1+b2_arm64.deb
Kali系统安装xserver-xorg-input-evdev和xinput-calibrator报错,导致触摸没办法正常使用,怎么解决?
说明:Kali系统由于某些地区网络问题可能无法访问到默认源,从而导致安装报错。
解决方式1,更新源:
1.执行sudo su 获取管理员权限,默认密码是kali。
2.执行命令:
wget -q -O - https://archive.kali.org/archive-key.asc | apt-key add
3.修改源,执行命令:
nano /etc/apt/syntaxhighlights.list
将原来的源注释掉,修改成:
deb http://mirrors.ustc.edu.cn/kali kali-rolling main contrib non-free
保存退出。
4.更新,执行命令:
apt-get update --fix-missing
5.更新完成后,重新进行#触摸校准即可。
如果上面的源失效,可以使用以下方式:
解决方式2,直接找到两个应用程序的下载地址,直接下载安装:
对于32位系统,执行下以命令
wget http://deb.debian.org/debian/pool/main/x/xserver-xorg-input-evdev/xserver-xorg-input-evdev_2.10.6-2_armhf.deb sudo dpkg -i xserver-xorg-input-evdev_2.10.6-2_armhf.deb wget wget http://mirrors.ustc.edu.cn/debian/pool/main/x/xinput-calibrator/xinput-calibrator_0.7.5+git20140201-1+b2_armhf.deb sudo dpkg -i xinput-calibrator_0.7.5+git20140201-1+b2_armhf.deb
对于64位系统,执行下以命令
wget http://deb.debian.org/debian/pool/main/x/xserver-xorg-input-evdev/xserver-xorg-input-evdev_2.10.6-2_arm64.deb sudo dpkg -i xserver-xorg-input-evdev_2.10.6-2_arm64.deb wget http://mirrors.ustc.edu.cn/debian/pool/main/x/xinput-calibrator/xinput-calibrator_0.7.5+git20140201-1+b2_arm64.deb sudo dpkg -i xinput-calibrator_0.7.5+git20140201-1+b2_arm64.deb