模板: 4inch-HDMI-LCD-Manual-02

来自Waveshare Wiki
跳转至: 导航搜索

产品特点

  • 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+):

4inch-HDMI-LCD-Manual-PI4B.jpg 4inch-HDMI-LCD-Manual-PI3B+.jpg

软件设置

支持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

Calibration 1.png
这里选择3(不同用户的树莓派显示的序号不一定一样,要根据用户实际的序号来选择)
分别把手指挪到触摸屏的四个边缘(正对触摸屏x_min在最左边、x_max在最右边、y_min在最上边、y_max在最下边)

  • 将手指放到x_min

Calibration 2.png

  • 将手指放到x_max

Calibration 3.png

  • 将手指放到y_min

Calibration 4.png

  • 将手指放到y_max

Calibration 5.png

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"应用程序;

DSI-LCD-Bookworm-Rotate-01.png

  • 2.进入"Screen"->"HDMI-1"->"Orientation" ,勾选您需要旋转的方向,点击"Apply"即可完成显示和触摸同步旋转。

DSI-LCD-Bookworm-Rotate-04.png
对于lite版本的系统,可以采用这种方式旋转

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应用进行旋转就可以。

GPIO-HDMI-Manual-01.png

GPIO-HDMI-Manual-02.png

GPIO-HDMI-Manual-03.png

执行命令,旋转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