4. 硬件连接与原理图设计
在嵌入式系统中,LCD TFT 显示屏的硬件连接是驱动开发的基础。错误的引脚连接或电源设计会导致显示异常、通信失败甚至器件损坏。本章将详细讲解单片机与 LCD 之间的关键引脚对应关系、电源去耦电容的布局原则以及电平匹配电路的设计方法。
4.1 核心引脚功能与对应关系
大多数 SPI 接口的 LCD TFT 显示屏(如 ILI9341、ST7789、ST7735 等)使用 5 个控制/数据引脚加 3 个电源引脚。下表列出了标准引脚定义及其在单片机侧的典型连接方式:
| LCD 引脚 | 全称 | 功能描述 | 单片机侧推荐 GPIO | 备注 |
|---|---|---|---|---|
| CS | Chip Select | 片选信号,低电平有效,选中 LCD 进行通信 | 任意 GPIO(推挽输出) | 多设备共用 SPI 总线时必须独立 |
| DC | Data/Command | 数据/命令选择:高电平=数据,低电平=命令 | 任意 GPIO(推挽输出) | 部分 LCD 标为 RS 或 A0 |
| RESET | Reset | 硬件复位,低电平复位,高电平正常工作 | 任意 GPIO(推挽输出)或 RC 复位电路 | 建议由单片机控制,避免上电时序问题 |
| SCL | Serial Clock | SPI 时钟线,由主机(单片机)驱动 | SPI SCK 引脚 | 频率通常 ≤ 10MHz,视 LCD 规格而定 |
| SDA | Serial Data | SPI 数据线(MOSI),主机输出从机输入 | SPI MOSI 引脚 | 部分 LCD 支持半双工,需确认 |
| VCC | Power Supply | LCD 逻辑电源,通常 2.8V~3.3V | 3.3V 电源轨 | 严禁直接接 5V,除非有电平转换 |
| GND | Ground | 公共地 | GND | 与单片机共地,减少回路噪声 |
| LEDA | Backlight Anode | 背光正极,需串联限流电阻 | PWM 引脚或 3.3V 经电阻 | 电流通常 20mA~40mA |
设计提示: 在原理图设计阶段,建议在 CS、DC、RESET 引脚上串联 10Ω~100Ω 的阻尼电阻,以抑制信号反射和过冲。RESET 引脚建议外接 10kΩ 上拉电阻至 VCC,确保上电期间 LCD 处于复位状态。
4.2 电源去耦电容设计
LCD TFT 显示屏在刷新画面时会产生瞬态电流尖峰,若电源去耦不足,会导致显示噪点、花屏甚至通信失败。去耦电容的布局应遵循“就近、低感、多级”原则。
- 一级去耦(大电容): 在 LCD 模块的 VCC 入口处放置 10μF~47μF 的电解电容或钽电容,用于吸收低频纹波和提供电荷储备。
- 二级去耦(小电容): 在 LCD 模块的 VCC 与 GND 引脚之间紧贴放置 0.1μF(100nF)陶瓷电容,用于滤除高频噪声。该电容应尽可能靠近 LCD 引脚,走线长度不超过 5mm。
- 背光电源去耦: 如果背光由独立电源供电,同样需要在 LEDA 引脚附近放置 1μF+0.1μF 并联电容。
布局规则: 去耦电容的接地端应直接打过孔到 GND 平面,避免与信号线共享回流路径。电容与 LCD 之间的电源走线宽度建议 ≥ 0.5mm,以降低直流电阻。
下图展示了 LCD 模块电源去耦的典型布局结构:
4.3 电平匹配电路设计
单片机与 LCD 之间的电平不匹配是硬件设计中最常见的陷阱。当前主流单片机(如 STM32、ESP32)的 GPIO 电平为 3.3V,而部分 LCD 模块(尤其是旧款或大尺寸屏)可能要求 5V 逻辑电平。此外,若单片机为 1.8V 内核(如某些低功耗 MCU),则需将电平提升至 LCD 的 3.3V 标准。
4.3.1 电平匹配方案对比
| 方案 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| 电阻分压 | 单向信号(如 CS、DC、RESET) | 成本极低,电路简单 | 驱动能力弱,不适用于高速时钟 |
| MOSFET 双向电平转换 | 双向信号(如 SDA 在部分半双工模式) | 支持双向传输,适合 I²C 类总线 | 需要外接上拉电阻,占用 PCB 面积 |
| 专用电平转换 IC | 高速 SPI(≥10MHz)或多通道 | 信号完整性好,支持高速 | 成本较高,需额外供电 |
| 直接连接(3.3V ↔ 3.3V) | 单片机与 LCD 均为 3.3V 逻辑 | 无需额外元件,最简洁 | 需确认 LCD 是否容忍 3.3V 逻辑 |
重要警告: 切勿将 5V 单片机 GPIO 直接连接 3.3V LCD 的输入引脚!这可能导致 LCD 逻辑电路过压损坏。即使 LCD 标称“5V 兼容”,也建议串联 100Ω~1kΩ 限流电阻或使用电平转换电路。
4.3.2 典型电平匹配电路(3.3V MCU → 5V LCD)
对于单向控制信号(CS、DC、RESET),推荐使用 NPN 三极管或 MOSFET 电平转换电路。下图展示了一个基于 2N7002 N-MOSFET 的典型电平匹配电路:
4.4 完整原理图连接示例
以下是一个基于 STM32F103 与 ILI9341 LCD 的完整引脚连接代码示例(仅展示硬件初始化部分,不包含驱动逻辑):
// 硬件引脚宏定义(STM32 HAL 库风格)
#define LCD_CS_PORT GPIOB
#define LCD_CS_PIN GPIO_PIN_12
#define LCD_DC_PORT GPIOB
#define LCD_DC_PIN GPIO_PIN_13
#define LCD_RESET_PORT GPIOB
#define LCD_RESET_PIN GPIO_PIN_14
#define LCD_SCL_PORT GPIOB
#define LCD_SCL_PIN GPIO_PIN_3 // SPI1 SCK
#define LCD_SDA_PORT GPIOB
#define LCD_SDA_PIN GPIO_PIN_5 // SPI1 MOSI
// 背光控制(PWM)
#define LCD_BL_PORT GPIOA
#define LCD_BL_PIN GPIO_PIN_1 // TIM2_CH2
// GPIO 初始化函数
void LCD_GPIO_Init(void) {
GPIO_InitTypeDef GPIO_InitStruct = {0};
// 使能 GPIO 时钟
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
// CS, DC, RESET 配置为推挽输出
GPIO_InitStruct.Pin = LCD_CS_PIN | LCD_DC_PIN | LCD_RESET_PIN;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(LCD_CS_PORT, &GPIO_InitStruct);
// 背光引脚配置为 PWM 输出(略)
// SPI 引脚由 SPI 外设初始化接管
}
布局建议: 在 PCB 布局时,将 LCD 接口连接器放置在板边,SPI 信号线(SCL、SDA)走线长度尽量相等且远离高频开关电源区域。CS、DC、RESET 等控制信号可适当绕行,但不要与时钟线平行过长,避免串扰。
4.5 硬件连接检查清单
在焊接完成并上电之前,请逐项核对以下清单:
- 电源极性: VCC 与 GND 是否接反?背光 LEDA 是否串联了限流电阻?
- 电平匹配: 单片机与 LCD 的逻辑电平是否兼容?若不兼容,是否已加入电平转换电路?
- 去耦电容: 0.1μF 电容是否紧贴 LCD 电源引脚?10μF 电容是否在电源入口处?
- 复位电路: RESET 引脚是否有上拉电阻(10kΩ)?是否由单片机控制?
- SPI 总线: SCL 与 SDA 是否交叉?确认 SDA 连接的是 MOSI 而非 MISO。
- 背光控制: 背光 PWM 引脚是否配置正确?频率是否在可听范围(建议 > 1kHz)?
上电前必做: 使用万用表测量 LCD 的 VCC 与 GND 之间的电阻,确保无短路。首次上电时建议在电源回路中串联 100mA 自恢复保险丝,防止意外过流损坏 LCD。