适用于 Orange Pi PC 的 3.5 寸 TFT LCD 屏配置方案
| 参数 | 规格 |
|---|---|
| 产品型号 | MPI3501 |
| 驱动IC | ILI9486 |
| LCD类型 | TFT |
| LCD接口 | SPI(最高32MHz) |
| 触摸屏类型 | 电阻式 |
| 触摸控制器 | XPT2046 |
| 分辨率 | 320×480 像素 |
| 颜色深度 | 65536色(16位) |
| 背光 | LED,120mA |
| 亮度 | 360Cd/m² |
| 功耗 | 0.13A × 5V = 0.65W |
| 工作温度 | -20°C ~ 60°C |
| 有效显示区域 | 48.96 × 73.44 mm |
| 产品尺寸 | 85.42 × 55.60 mm |
LCD_CS → SPI0_CS0 (GPIO CE0)
LCD_RS → GPIO DC
LCD_SCK → SPI0_SCK (GPIO SCLK)
LCD_SI → SPI0_MOSI (GPIO MOSI)
RST → GPIO RESET
LED → 3.3V 或 PWM控制
TP_CS → SPI0_CS1 (触摸)
TP_IRQ → GPIO IRQ
uname -a
cat /etc/armbian-release
ls /dev/spi*
lsmod | grep fbtft
# 使用armbian-config启用SPI
sudo armbian-config
# 或手动编辑设备树
sudo nano /boot/dtb/allwinner/sun8i-h3-orangepi-pc.dts
spi@01c05000 {
compatible = "allwinner,sun8i-h3-spi";
reg = <0x01c05000 0x1000>;
interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
ili9486@0 {
compatible = "ilitek,ili9486";
reg = <0>;
spi-max-frequency = <32000000>;
rotate = <270>;
bgr;
fps = <30>;
buswidth = <8>;
reset-gpios = <&pio 1 7 GPIO_ACTIVE_LOW>;
dc-gpios = <&pio 1 8 GPIO_ACTIVE_LOW>;
led-gpios = <&pio 1 9 GPIO_ACTIVE_HIGH>;
};
};
Device Drivers --->
Graphics support --->
Framebuffer Devices --->
<M> Support for frame buffer devices --->
<M> FB driver for ILI9486LCD
Device Drivers --->
Input device support --->
Touchscreens --->
<M> ADS7846/TSC2046/AR1021 touchscreens
# 加载fbtft设备模块
sudo modprobe fbtft_device \
name=ili9486 \
rotate=270 \
speed=32000000 \
buswidth=8
# 检查 framebuffer 设备
ls /dev/fb*
# 测试显示(需要X11环境)
sudo fbgrab /tmp/screen.png
# 添加到开机启动模块
echo "fbtft_device" | sudo tee -a /etc/modules
echo "fbtft_device name=ili9486 rotate=270 speed=32000000" \
| sudo tee /etc/modprobe.d/fbtft.conf
# 安装校准工具
sudo apt-get install xinput-calibrator
# 运行校准程序
sudo xinput_calibrator
# 保存校准参数
cat /etc/X11/xorg.conf.d/99-calibration.conf
支持0°、90°、180°、270°四个方向旋转:
# 方法1:修改设备树中的 rotate 参数
rotate = <0>; # 0度(竖屏)
rotate = <90>; # 90度(横屏)
rotate = <180>; # 180度(竖屏翻转)
rotate = <270>; # 270度(横屏翻转)
# 方法2:使用rotate.sh脚本(如果已安装)
cd LCD-show/
sudo ./rotate.sh 90