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模拟时序,那叫一个痛苦。
二、串行接口: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就算了吧——速度太慢,而且从机地址冲突的问题很烦人。
三、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翻转速度根本跟不上。
四、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几乎是绕不开的选择。
六、接口选型决策图
下面这张图是我自己总结的选型逻辑,帮你快速定位该用哪种接口。
七、接口对比总结
最后,我把这几种接口的核心参数整理成一张表,方便你快速对比。
| 接口类型 | 引脚数 | 最大速率 | 传输距离 | 典型分辨率 | 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 |