🏠 返回首页

🖥️ ILI9486 驱动配置指南

适用于 Orange Pi PC 的 3.5 寸 TFT LCD 屏配置方案

ILI9486 SPI接口 Orange Pi PC 全志H3

📋 核心参数

参数 规格
产品型号 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

🔌 引脚定义

1, 17
3.3V
电源正极(3.3V输入)
2, 4
5V
电源正极(5V输入)
6, 9, 14, 20, 25
GND
接地
11
TP_IRQ
触摸中断(低电平有效)
18
LCD_RS
命令/数据选择
19
LCD_SI / TP_SI
SPI数据输入
21
TP_SO
触摸SPI数据输出
22
RST
复位
23
LCD_SCK / TP_SCK
SPI时钟
24
LCD_CS
LCD片选(低电平有效)
26
TP_CS
触摸片选(低电平有效)
3, 5, 7, 8, 10, 12, 13, 15, 16
NC
未连接

🍊 Orange Pi PC 配置方案

💡 方案说明 Orange Pi PC 使用全志H3芯片,接口兼容树莓派3,但需要使用Linux内核的fbtft驱动框架来驱动ILI9486。以下提供SPI接口方案(推荐)和并行接口方案。

方案一:SPI接口(推荐)

硬件连接

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

关键特性

  • ✅ 仅需4根数据线
  • ✅ 内核原生支持fbtft
  • ✅ 最高32MHz时钟
  • ✅ 支持触摸屏
  • ✅ 刷新率约15-30FPS

方案二:16位并行接口(性能更好)

⚠️ 注意事项 并行接口需要16个GPIO作为数据总线,占用引脚较多,需要自定义驱动或使用fbcv库。适合对刷新率要求高的场景。

⚙️ 驱动配置步骤

  1. 确认系统环境
    首先检查系统版本和SPI状态:
    uname -a cat /etc/armbian-release ls /dev/spi* lsmod | grep fbtft
  2. 启用SPI接口
    如果SPI未启用,需要在设备树中启用:
    # 使用armbian-config启用SPI sudo armbian-config # 或手动编辑设备树 sudo nano /boot/dtb/allwinner/sun8i-h3-orangepi-pc.dts
  3. 设备树配置(DTS)
    添加ILI9486设备节点:
    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>; }; };
  4. 内核配置
    编译内核时启用fbtft驱动:
    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
  5. 加载fbtft模块
    测试驱动是否正常工作:
    # 加载fbtft设备模块 sudo modprobe fbtft_device \ name=ili9486 \ rotate=270 \ speed=32000000 \ buswidth=8 # 检查 framebuffer 设备 ls /dev/fb* # 测试显示(需要X11环境) sudo fbgrab /tmp/screen.png
  6. 配置开机自动加载
    将配置写入 /etc/modules:
    # 添加到开机启动模块 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

📚 资源链接

官方文档

系统镜像

  • 🖥️ Raspbian 2024-11-19(支持Pi4/5)
  • 🖥️ Ubuntu MATE 22.04(32位)
  • 🖥️ Kali Linux 2024.3(32位)

❓ 常见问题

⚠️ SPI设备不存在 如果执行 ls /dev/spi* 没有输出,说明SPI未启用。需要在设备树中启用spi@01c05000节点,并重新编译设备树。
⚠️ 屏幕白屏或无显示 检查以下几点:
  • 电源是否正常(3.3V和5V)
  • SPI接线是否正确
  • 设备树配置是否正确
  • fbtft模块是否加载成功
✅ 触摸不准确 运行xinput_calibrator进行校准,校准参数会保存到 /etc/X11/xorg.conf.d/99-calibration.conf。