LCD接口类型概览:选对接口,项目就成功了一半

做单片机驱动LCD,第一个要面对的问题就是——选接口。说实话,我见过太多工程师在这个环节翻车。选错了接口,轻则改板子,重则整个项目推倒重来。今天我就把几种主流接口掰开揉碎了讲清楚。

一、并行接口:8080与6800

并行接口是LCD驱动里的老前辈了。它俩的核心区别,说白了就是控制时序的握手方式不同。

对比项 8080接口 6800接口
控制信号 RD(读)、WR(写)、CS(片选)、DC(数据/命令) E(使能)、R/W(读/写)、CS(片选)、DC(数据/命令)
读写时序 RD/WR独立控制,低电平有效 E上升沿锁存,R/W决定方向
典型应用 STM32、GD32等主流MCU 飞思卡尔、部分老式MCU
速度上限 约10~20MHz(8位并行) 约8~15MHz(8位并行)

我个人习惯用8080接口。为什么?因为大部分国产MCU都原生支持这个时序,你直接用FSMC或者FMC外设就能驱动,省事。我记得有一次帮客户调试一个6800接口的屏,MCU本身不支持这个协议,最后硬是用GPIO模拟时序,那叫一个痛苦。

注意:并行接口虽然速度快,但占用IO口太多。8位数据线+4根控制线,这就12个IO了。如果你用的是QFN封装的MCU,引脚资源紧张,建议慎重考虑。

二、串行接口:SPI与I2C

串行接口是资源紧张时的救星。SPI和I2C,你肯定不陌生。

SPI接口

SPI驱动LCD,我建议优先选4线模式(CS、SCLK、MOSI、DC)。为什么?因为3线模式没有DC引脚,你得靠发送特定命令码来区分数据和命令,效率低不说,还容易出错。

我曾经在一个智能家居项目里用过SPI驱动的TFT屏,刷新率只有30fps,但胜在引脚少。如果你对刷新率要求不高,比如显示静态菜单或者数字,SPI完全够用。

I2C接口

I2C驱动LCD,说实话,我只在OLED小屏上用过。128x64的OLED,I2C速度400kHz,刷新一帧大概要50ms,勉强能看。但你要是想刷TFT彩屏,I2C就算了吧——速度太慢,而且从机地址冲突的问题很烦人。

经验之谈:SPI的时钟线SCLK,布线时尽量远离电源和晶振。我遇到过一块板子,SCLK被晶振干扰,屏幕一直闪,查了两天才找到原因。

三、RGB接口:真正的“硬核”驱动

RGB接口跟前面几种完全不是一个量级。它没有命令/数据之分,直接往显存里填像素数据。说白了,就是MCU把屏幕当成一块内存来操作。

RGB接口的信号线包括:

  • R[0:7]、G[0:7]、B[0:7] —— 24位真彩色数据线
  • HSYNC —— 行同步
  • VSYNC —— 帧同步
  • DOTCLK —— 像素时钟
  • DE —— 数据使能(可选)

这里有个坑:RGB接口需要MCU有LCD控制器外设,比如STM32F429的LTDC。普通MCU没有这个外设,你就算把IO口全用上,也模拟不出RGB时序——因为像素时钟动辄几十MHz,GPIO翻转速度根本跟不上。

核心要点:RGB接口适合大尺寸、高分辨率的屏幕(比如480x272以上)。但代价是MCU必须带LCD控制器,而且显存要外挂SDRAM。

四、LVDS接口:远距离传输的王者

LVDS(低压差分信号)接口,我最早是在工业平板电脑上接触的。它的特点是:

  • 差分信号传输,抗干扰能力强
  • 传输距离可达10米以上
  • 功耗低,适合便携设备

LVDS接口通常用于7寸以上的大屏,比如1024x600或者1920x1080分辨率。但要注意,LVDS需要专门的发送器芯片(比如DS90C385),MCU本身不直接支持。

我记得有一次做车载仪表盘项目,客户要求屏幕和主板分开1米远。当时试了RGB接口,信号衰减得一塌糊涂。换成LVDS之后,问题迎刃而解。

五、MIPI-DSI接口:手机屏的标配

MIPI-DSI是移动设备的主流接口。它用差分信号传输,但比LVDS更先进——支持双向通信、低功耗模式、多通道聚合。

MIPI-DSI的关键参数:

参数 典型值 说明
通道数 1~4 Lane 通道越多,带宽越大
每通道速率 500Mbps ~ 1.5Gbps 取决于PHY设计
工作模式 Command Mode / Video Mode Command Mode需要帧缓冲

说实话,MIPI-DSI在单片机领域用得不多。因为大部分MCU没有MIPI PHY,需要外接桥接芯片(比如LT8911)。但如果你做的是高端HMI或者智能穿戴,MIPI-DSI几乎是绕不开的选择。

避坑指南:MIPI-DSI的PCB布线要求极高。差分对之间要等长,阻抗要控制在100Ω±10%。我曾经因为差分线没等长,导致屏幕花屏,最后用示波器一看,眼图都闭合了。

六、接口选型决策图

下面这张图是我自己总结的选型逻辑,帮你快速定位该用哪种接口。

LCD接口选型决策图 LCD接口选型 分辨率 ≤ 320×240? 引脚够用? 并行 8080/6800 串行 SPI/I2C 传输距离 > 1米? LVDS 差分传输 RGB 需LTDC 提示:MIPI-DSI用于高端场景 分辨率高、带宽大、需专用PHY

七、接口对比总结

最后,我把这几种接口的核心参数整理成一张表,方便你快速对比。

接口类型 引脚数 最大速率 传输距离 典型分辨率 MCU要求
8080并行 12~20 ~20MHz <30cm 320×240以下 FSMC/FMC
6800并行 12~20 ~15MHz <30cm 320×240以下 需模拟时序
SPI 4~5 ~40MHz <20cm 128×128以下 SPI外设
I2C 2 ~1MHz <30cm 128×64以下 I2C外设
RGB 20~30 ~50MHz <30cm 800×480以下 LTDC控制器
LVDS 4~8 ~1Gbps ~10米 1920×1080 需发送器芯片
MIPI-DSI 2~10 ~6Gbps ~50cm 4K以下 需MIPI PHY
我的建议:如果你是做产品开发,先看MCU有什么外设,再选接口。别为了用某个接口,硬上带LTDC的高端MCU——成本压不住。我见过有人用STM32F429驱动一个320×240的屏,大材小用,成本翻了三倍。