2. ePaper 硬件接口基础

本章聚焦于驱动墨水屏所需的硬件底层知识。你将理解 SPI 通信协议的核心机制、掌握 ePaper 模块 FPC 连接器的引脚定义,并明确驱动电压与时序的关键要求。这是后续封装驱动接口与适配灰度算法的硬件基石。

2.1 SPI 通信协议详解

SPI(Serial Peripheral Interface)是 ePaper 驱动中最常用的同步串行通信接口。它采用主从架构,由主机(MCU)控制时钟并选择从机(ePaper 驱动 IC)。

2.1.1 SPI 四线信号定义

信号线 方向 功能描述
SCLK 主机 → 从机 串行时钟,由主机产生,决定数据传输速率
MOSI 主机 → 从机 主机输出/从机输入,数据线
MISO 从机 → 主机 从机输出/主机输入,数据线(部分 ePaper 模块未使用)
CS 主机 → 从机 片选信号,低电平有效,选中目标从机
关键提示: 多数 ePaper 驱动 IC(如 SSD1680、UC8151)仅使用 SCLK、MOSI、CS 三线进行写操作,MISO 线通常用于读取状态寄存器或内置温度传感器数据,非必需时可悬空。

2.1.2 SPI 通信时序与模式

SPI 协议通过时钟极性(CPOL)和时钟相位(CPHA)组合定义四种工作模式。ePaper 驱动 IC 通常工作在 模式 0(CPOL=0, CPHA=0) 或 模式 3(CPOL=1, CPHA=1)。

  • 模式 0: 空闲时 SCLK 为低电平,数据在 SCLK 上升沿采样。
  • 模式 3: 空闲时 SCLK 为高电平,数据在 SCLK 上升沿采样。
适配建议: 初始化 MCU 的 SPI 外设时,务必查阅目标 ePaper 驱动 IC 的数据手册,确认其支持的 SPI 模式。错误的模式配置将导致通信完全失败。
SPI 模式 0 时序图 SPI 模式 0 时序图 (CPOL=0, CPHA=0) CS 片选低电平有效 SCLK 空闲低电平,上升沿采样 MOSI D7 D6 D5 D4 D3 D2 D1 D0 ↑采样 ↑采样 ↑采样 ↑采样

2.2 ePaper 模块引脚定义 (FPC 连接器)

ePaper 模块通过 FPC(柔性印刷电路)排线与主板连接。不同尺寸和厂商的模块引脚定义略有差异,但核心功能引脚高度一致。以下以常见的 24-Pin FPC 接口 为例进行说明。

2.2.1 标准 24-Pin FPC 引脚功能表

Pin# 符号 类型 功能描述
1 CS 数字输入 SPI 片选,低电平有效
2 SCLK 数字输入 SPI 时钟
3 MOSI 数字输入 SPI 数据输入
4 MISO 数字输出 SPI 数据输出(可选)
5 DC 数字输入 数据/命令控制:低电平=命令,高电平=数据
6 RST 数字输入 硬件复位,低电平有效
7 BUSY 数字输出 忙状态指示:低电平=忙,高电平=空闲
8 VCC 电源 逻辑电源 (3.3V)
9 VDD 电源 驱动电源 (3.3V / 5V,视模块而定)
10 VEE 电源 负压电源 (-20V ~ -15V,用于驱动)
11 GND 电源 地
12-24 NC / 备用 - 未连接或厂商保留引脚
硬件设计警告: VEE 负压电源是 ePaper 模块特有的电源轨,用于产生驱动电场。MCU 无法直接提供,必须使用专用的 DC-DC 转换芯片(如 TPS65185、MAX17135)生成。错误的电源设计可能导致屏幕无法刷新或永久损坏。

2.2.2 关键控制引脚说明

  • DC (Data/Command): 这是 SPI 通信之外最重要的控制线。当 DC 为低电平时,SPI 传输的数据被解释为寄存器地址或命令;当 DC 为高电平时,SPI 传输的数据被写入当前选中的寄存器或 RAM。
  • RST (Reset): 硬件复位引脚。在初始化流程中,MCU 需要先拉低 RST 至少 10ms,然后释放,以复位驱动 IC 的内部状态机。
  • BUSY: 状态反馈引脚。在刷新过程中,驱动 IC 会拉低 BUSY 表示正在处理。MCU 必须在发送新命令前等待 BUSY 变为高电平,否则可能导致操作冲突。
ePaper 模块 FPC 连接器引脚功能框图 ePaper 模块 FPC 连接器引脚功能框图 MCU (主机) GPIO SPI GPIO GPIO GPIO CS SCLK MOSI DC RST FPC 连接器 24-Pin ePaper 驱动 IC (从机) SPI 接口 控制逻辑 电源管理 栅极/源极 BUSY 状态反馈

2.3 驱动电压与时序要求

ePaper 的刷新依赖于精确的电压序列和时序控制。错误的电压或时序会导致显示残影、刷新不全甚至屏幕损坏。

2.3.1 电源轨与电压域

一个典型的 ePaper 模块需要以下电源轨:

电源轨 典型电压 用途
VCC 3.3V 驱动 IC 逻辑电源
VDD 3.3V 源极驱动电源
VEE -20V ~ -15V 栅极驱动负压
VCOM 可调 (通常 -2.5V ~ -1.5V) 公共电极电压,影响对比度
关键指标: VCOM 电压的精度直接影响显示效果。通常需要在模块初始化阶段通过 SPI 写入 VCOM 寄存器,或通过外部电位器校准。偏差过大会导致屏幕整体偏暗或出现不可逆的烧屏现象。

2.3.2 上电与复位时序

驱动 ePaper 必须遵循严格的上电顺序。以下是一个标准的上电流程:

  1. 上电 VCC 和 VDD: 先给逻辑部分供电。
  2. 等待电源稳定: 至少等待 10ms。
  3. 拉低 RST 引脚: 保持低电平至少 10ms。
  4. 释放 RST: 拉高 RST,等待驱动 IC 内部初始化完成。
  5. 等待 BUSY 变高: 确认驱动 IC 就绪。
  6. 使能 DC-DC 转换器: 通过 SPI 命令开启 VEE 和 VCOM 输出。
  7. 等待电源稳定: 等待约 50ms,确保负压建立。
ePaper 上电与复位时序流程图 ePaper 上电与复位时序流程图 1. 上电 VCC / VDD 2. 等待 10ms 稳定 3. 拉低 RST (≥10ms) 4. 释放 RST (拉高) 5. 等待 BUSY 变高

2.3.3 刷新时序与帧率

ePaper 的刷新过程不是瞬间完成的。一个完整的刷新周期包括多个阶段:

  • 初始化阶段: 设置驱动参数、VCOM、波形表(LUT)。
  • 数据写入阶段: 通过 SPI 将图像数据写入 SRAM。
  • 显示刷新阶段: 驱动 IC 根据 LUT 输出一系列高压脉冲,驱动墨水粒子运动。此阶段 BUSY 引脚保持低电平。
  • 空闲阶段: 刷新完成,BUSY 变高,可进入低功耗模式。
性能考量: 全屏刷新时间通常在 1~3 秒之间,局部刷新可缩短至 200~500ms。在 BUSY 为低电平时,绝对禁止发送新的刷新命令或写入图像数据,否则会导致时序错乱和显示异常。

2.3.4 典型初始化代码片段

以下代码展示了在 MCU 上实现标准上电和复位时序的 C 语言逻辑:

// ePaper 初始化函数示例
void ePaper_Init(void) {
    // 1. 上电 VCC 和 VDD (假设由 GPIO 控制电源使能)
    GPIO_SetPin(POWER_EN_PIN, HIGH);
    Delay_ms(10);  // 等待电源稳定

    // 2. 硬件复位
    GPIO_SetPin(RST_PIN, LOW);
    Delay_ms(10);  // 保持复位至少 10ms
    GPIO_SetPin(RST_PIN, HIGH);
    Delay_ms(10);  // 等待内部复位完成

    // 3. 等待 BUSY 释放
    while (GPIO_GetPin(BUSY_PIN) == LOW) {
        // 等待驱动 IC 就绪
    }

    // 4. 通过 SPI 发送初始化命令序列
    ePaper_SendCommand(0x01);  // 驱动输出控制
    ePaper_SendData(0x03);
    // ... 其他初始化命令

    // 5. 开启 DC-DC 转换器
    ePaper_SendCommand(0x04);  // 电源控制
    ePaper_SendData(0x03);
    Delay_ms(50);  // 等待负压建立

    // 6. 设置 VCOM 电压
    ePaper_SendCommand(0x2C);  // VCOM 寄存器
    ePaper_SendData(0x1C);     // 根据模块校准值设定
}
调试建议: 在开发初期,建议使用逻辑分析仪抓取 SCLK、MOSI、CS、DC、BUSY 五根线的波形。通过观察 BUSY 的脉宽和 SPI 数据包的完整性,可以快速定位硬件连接或时序配置问题。