3. LCD驱动芯片与数据手册解读:ILI9341/ST7789/ST7735等常见驱动IC介绍,如何阅读时序图与电气特性表
在单片机驱动TFT彩屏的开发中,驱动IC(Driver IC)是连接MCU与液晶面板的核心桥梁。本章将深入剖析三款市场占有率最高的驱动芯片——ILI9341、ST7789、ST7735,并系统讲解如何精准阅读数据手册中的时序图与电气特性表,为后续的驱动代码编写打下坚实基础。
3.1 三大主流驱动IC对比
这三款芯片分别对应不同的分辨率与市场定位,选择正确的驱动IC是项目成功的第一步。下表从关键维度进行了横向对比:
| 参数项 | ILI9341 | ST7789 | ST7735 |
|---|---|---|---|
| 最大分辨率 | 240×320 (QVGA) | 240×320 / 240×240 | 132×162 / 128×160 |
| 接口类型 | MCU 8/9/16/18-bit, SPI, RGB | MCU 8/9/16/18-bit, SPI, RGB | MCU 8/9/16/18-bit, SPI |
| 典型应用 | 2.8寸~3.5寸彩屏 | 1.3寸~2.0寸小屏 | 0.96寸~1.8寸极小屏 |
| GRAM大小 | 172,800 字节 | 172,800 字节 | 42,240 字节 |
| 驱动电压 | 2.5V ~ 3.3V | 1.65V ~ 3.3V | 1.8V ~ 3.3V |
| 指令兼容性 | 行业标准集 | 与ILI9341高度兼容 | 子集,部分指令不同 |
选型建议: 如果你的项目需要2.8寸以上屏幕且对色彩要求高,ILI9341是首选;若追求小尺寸、低功耗穿戴设备,ST7789的1.3寸圆形屏方案更优;ST7735则适合成本敏感的极小屏应用。
3.2 驱动IC内部架构与数据流
理解驱动IC的内部数据通路,有助于我们正确配置初始化序列。下图展示了典型的TFT驱动IC核心模块与数据流向:
关键理解: 所有显示数据最终都通过GRAM(图形显存)中转。MCU写入GRAM的速度决定了刷新率上限,而显示驱动电路则独立地从GRAM读取数据并刷新面板。这就是为什么SPI接口虽然写入慢,但显示不会撕裂的原因。
3.3 如何阅读时序图
时序图是数据手册中最关键也最容易出错的部分。以ILI9341的8080并行接口写时序为例,我们需要关注以下几个核心参数:
3.3.1 8080并行接口写时序解析
常见陷阱: 很多开发者只关注时钟频率,却忽略了建立时间(tDS)和保持时间(tDH)。即使SPI时钟频率在规格范围内,如果建立时间不足,会导致数据被错误锁存,表现为花屏或颜色错位。务必在数据手册的“AC Characteristics”表中核对这三个参数。
3.3.2 SPI接口时序关键参数速查表
对于SPI接口,时序参数相对简单,但仍有几个关键值需要严格遵循。下表以ILI9341的SPI模式为例:
| 符号 | 参数名称 | 最小值 | 典型值 | 最大值 | 单位 |
|---|---|---|---|---|---|
| tSCYC | SCLK周期时间 | 50 | - | - | ns |
| tSCLKH | SCLK高电平时间 | 20 | - | - | ns |
| tSCLKL | SCLK低电平时间 | 20 | - | - | ns |
| tSDS | 数据建立时间 | 10 | - | - | ns |
| tSDH | 数据保持时间 | 5 | - | - | ns |
| tCSS | 片选建立时间 | 15 | - | - | ns |
实战换算: tSCYC最小50ns对应最大SPI时钟频率为20MHz。但实际项目中建议降频至10~15MHz使用,以留出时序裕量,尤其是在长走线或杜邦线连接的情况下。
3.4 电气特性表解读
电气特性表(DC Characteristics)决定了MCU与驱动IC之间的电平匹配是否可靠。以下是需要重点关注的三个维度:
3.4.1 电源与IO电平
- VDDI(接口电压): 决定IO引脚的逻辑电平阈值。常见值为1.8V或3.3V,必须与MCU的IO电压匹配。
- VDD(核心电压): 驱动IC内部逻辑供电,通常为2.5V~3.3V,需要独立的LDO供电。
- VIH / VIL(输入高/低电平阈值): 例如VIH最小为0.7×VDDI,VIL最大为0.3×VDDI。如果MCU输出3.3V而VDDI=1.8V,则VIH=1.26V,3.3V远高于阈值,需要串联电阻限流。
3.4.2 驱动能力与电流
- IOL / IOH(输出驱动电流): 决定驱动IC的IO口可以吸入/拉出的电流,通常为4~8mA,足以驱动MCU的IO口。
- ICC(工作电流): 全屏刷新时的功耗指标。ILI9341在3.3V下典型值为20mA,休眠模式下可降至5μA。
3.4.3 复位时序要求
复位时序是初始化成功的第一步,很多开发者在此处踩坑。ILI9341的复位要求如下:
- RESX引脚保持低电平至少 10μs(tRES)。
- RESX拉高后,需要等待 5ms(tRST)才能发送第一条指令。
- 在tRST期间,芯片内部正在进行PLL锁定和DCDC启动,此时发送指令会被忽略。
代码实现要点: 在初始化函数开头,先拉低RESX并延时20μs(留一倍裕量),再拉高并延时10ms,确保芯片完全就绪。切勿在复位后立即发送指令。
3.5 数据手册阅读方法论总结
面对一份几百页的英文数据手册,建议按以下优先级顺序阅读:
| 阅读顺序 | 章节 | 核心关注点 |
|---|---|---|
| 1 | General Description | 分辨率、接口类型、电压范围 |
| 2 | Pin Assignment | 引脚功能定义、复用选项 |
| 3 | AC Characteristics | 时序参数表(建立/保持时间) |
| 4 | DC Characteristics | 电平阈值、工作电流 |
| 5 | Command Table | 指令集与参数格式 |
| 6 | Initial Sequence | 厂商推荐的初始化流程 |
避坑提醒: 不要直接复制网上的初始化代码。不同批次、不同厂商的屏幕模组,其初始化序列可能略有差异。务必以你手中屏幕数据手册的“Initial Setting”章节为准,逐条核对寄存器值。