跳转至

显示控制器

概述

显示控制器(LCDC)通过所选接口将准备好的像素送到面板。在支持 TurboPixel 的器件和配置下,它还可以在输出时解压 TurboPixel 帧缓冲。LCDC 也支持有限的图层混合:可将输出图层与单色背景进行 alpha 混合。资料列出了图层 0 和图层 1,但 SF32LB52x 不支持图层 1。这项有限的混合功能不能代替通用 UI 渲染或 ePicasso 图像合成;eZip 资源解码仍由独立模块完成。

主要参考资料:思澈科技(SiFli)LCDC HAL 文档。

以上链接固定到 SiFli-SDK 的特定提交,说明的是该修订版本中的 HAL 行为;它不能证明所有 SF32 器件和封装,或其他 SDK 版本,都支持其中涉及的每种接口、图层或功能。请结合项目使用的具体器件、封装和 SDK 版本核实。

完整的资源到面板流程请参阅图形概览。本文重点说明显示控制器、面板连接和驱动集成。

当你需要选择面板接口、定义 LVGL 的 flush 输出路径,或在目标硬件上完成新面板的启动调试时,请阅读本文。它将显示控制器输出工作与资源解压、像素合成区分开,便于在正确的层级定位显示问题。

选择显示接口

EPD 和 Memory-in-Pixel 表示面板技术或像素更新方式,并非可互换的总线标准。EPD 模组可能通过 SPI 连接外部控制器;资料还记载了 SF32LB57x 的 LCDC EPD 直驱模式。JDI 有串行和并行两种接口模式,信号定义不同。选型时应核对面板的实际电气接口和维护要求,不能只看显示技术类别。

面板选择会影响带宽、缓冲策略、引脚占用、功耗、初始化复杂度和 PCB 风险。请确认所选器件和封装的实际可用接口。

显示接口与面板技术选项
接口或面板类型 典型用途 设计说明
三线/四线 SPI 小型 TFT 或 AMOLED、简单 HMI 引脚少、布线简单,但全屏动画带宽有限。
Dual-SPI / Quad-SPI 可穿戴 AMOLED 和紧凑型显示屏 引脚数量适中的同时,带宽高于基本 SPI。
8080 MCU 接口 并行显示面板 带宽高于串行 SPI,但占用更多引脚。
RGB / DPI 较大或高刷新率显示屏 连续像素流,带宽和引脚需求高,时序更严格。
MIPI DSI 高像素密度 AMOLED 或高级面板 带宽高且引脚少,但初始化和信号完整性设计更复杂。
EPD 面板技术 电子纸和超低刷新率显示屏 主机侧接口取决于模组和控制器。保持静态图像时,面板功耗可能较低;但更新较慢,且需要面板专用的波形和电源控制。
JDI(串行或并行) 低功耗反射式面板 两种 JDI 模式的信号不同;应核对所选面板的电气接口和维护要求。
Memory-in-Pixel 面板技术 低功耗反射式显示屏,也适用于常显或强光下可读的 UI 像素存储集成在面板内,刷新行为不同于 TFT/AMOLED。请遵循面板数据手册。

例如,小型 SPI/QSPI 面板通常适合局部更新,而 RGB/DPI 面板则需要持续扫描带宽预算。不要只按理论吞吐量选择接口:还需计入像素格式、分辨率、刷新行为、面板 GRAM 和其他 PSRAM 使用者。

按器件划分的接口矩阵

下表用于系列选型,而不是引脚分配表,列出相关资料中明确记载的各 SF32 系列或硅版本显示接口。破折号表示现有资料未列出该接口;这并不排除通过 GPIO 驱动外部控制器或采用板级特定实现。提交原理图前,务必确认具体料号、封装、引脚复用、SDK 版本和面板驱动。

SF32 显示接口矩阵
SF32 系列/版本 资料列出的 LCD/面板接口 封装或版本约束 实际选型方向
SF32LB52x 三线/四线 SPI、Dual-SPI、Quad-SPI、MCU/8080(MIPI DBI)、串行/并行 JDI;通过 SPI 连接的 EPD;52B/D/E/G/J 硬件指南还列有 8 位并行 EPD 信号接口 型号指南所列 52x 型号均采用 QFN68L。52B/D/E/G/J 硬件指南列出了信号分配和 TPS 电源管理芯片控制方式,但这并不能证明支持 LCDC EPD 直驱模式。请按具体型号核实驱动支持。 适合紧凑型 SPI/QSPI、8080 和 JDI 设计;并行 EPD 设计需核实所选型号对应的 GPIO、时序以及 TPS 电源控制实现。
SF32LB55x 三线/四线 SPI、Dual-SPI、Quad-SPI、MCU/8080、DPI/RGB、串行/并行 JDI、MIPI DSI 命令模式 资料列出的 2-lane MIPI DSI 接口适用于 BGA145/169 封装;JDI 和 MIPI DSI + SPI/DSPI 双屏异显仅列于 557VD3A6。命令模式要求面板控制器具有内部 SRAM/GRAM。 适用于可穿戴设备及其他配备显示屏的联网产品,且需采用兼容的 BGA 封装和 MIPI 命令模式面板。
SF32LB56xU 三线/四线 SPI、Dual-SPI、Quad-SPI、串行 JDI 型号指南所列 U 版本采用 QFN68L;请核对具体料号和引脚复用。 适合以 QSPI 带宽和较少引脚为重点的紧凑型串行面板设计。
SF32LB56xV 三线/四线 SPI、Dual-SPI、Quad-SPI、DBI 8080、DPI/RGB、串行/并行 JDI 型号指南列出的 V 版本采用 WBBGA175(BGA175);请按具体料号核实所需引脚及板级布线。 适合需要 8080、DPI/RGB 或并行 JDI 的高分辨率或高刷新率设计。
SF32LB57x 三线/四线 SPI、Dual-SPI、Quad-SPI、8/16 位 8080/DBI、DPI/RGB、JDI 和 LCDC 直驱 EPD 封装包括 QFN68、QFN80 和 BGA112 等选项;请确认具体料号、封装引脚及面板驱动路径。 适合图形交互较复杂、需要并行或串行显示接口,或需要 JDI、EPD 的产品。
SF32LB58x 三线/四线 SPI、Dual-SPI、Quad-SPI、MCU/8080、DPI/RGB、串行/并行 JDI、2-lane MIPI DSI 命令和视频模式 型号指南所列料号均采用 BGA256。命令模式使用带内部 SRAM/GRAM 的面板控制器;视频模式也支持无 RAM 面板控制器。型号指南还列出了通过 MIPI DSI + SPI/DSPI/QSPI 实现双屏异显。具体设计仍需核实 LCD 控制器和引脚复用。 适合高分辨率和带宽需求高的 UI 设计,包括双屏配置,以及带或不带控制器 RAM 的 MIPI DSI 面板。

对于 SF32LB56x,不要将 U 和 V 版本视为可以互换。对于 SF32LB55x 和 SF32LB58x,只有在确认具体封装、其 DSI 引脚以及面板的 DSI 通道(lane)数和工作模式后,才能在原理图中预留 MIPI DSI。尤其是 SF32LB55x 仅支持命令模式,因此无 RAM 的视频模式面板并不匹配。EPD 设计还需要面板特定的时序、波形和电源规划;仅有接口名称并不构成完整的 EPD 设计。

思澈科技(SiFli)的芯片型号指南在 SF32LB55x 系列层面列出了 DPI/RGB,但其具体料号表并未为所列料号标注 DPI。此处只能作为系列层面的依据;依赖 DPI 前,必须核实具体料号的支持情况和所需引脚。SF32LB56x 的 U/V 区别依据两份独立的硬件设计指南,不能直接套用 HAL 文档中面向整个系列的接口表。

两份 SF32LB52x 硬件指南对 JDI 的记载并不一致:概述列出串行 JDI,详细 JDI 小节则给出了并行信号映射。因此,矩阵同时保留两种资料记载,但这不构成具体引脚可用性的保证。设计定版前,应按具体型号核对 LCDC 映射、SDK/驱动和面板信号。

对于 SF32LB52x,应区分硬件指南中记载的 8 位并行 EPD 信号接口与 LCDC EPD 直驱模式。52B/D/E/G/J 硬件指南列出了并行 EPD 信号及 TPS 电源管理芯片控制信号;SiFli-SDK v2.5.1 发布说明则记载了 SF32LB57x 对 LCDC EPD 直驱的支持。不能据此推断 52x 设计可使用 57x 的 LCDC EPD 直驱路径;请按具体型号核实驱动和时序实现。

接口资料:思澈科技(SiFli)芯片型号指南、SF32LB52x 电池供电版硬件指南、52B/D/E/G/J 硬件指南、SF32LB55x、SF32LB56xU、SF32LB56xV、SF32LB58x 和 SF32LB57x SDK 支持说明。

控制器、缓冲区与 Flush 路径

LCDC 资料中的示意图区分了面板可见区域、刷新窗口和源缓冲区。面板的列偏移、行偏移必须统一处理。刷新窗口可能只覆盖源缓冲区的一部分;窗口内没有源数据的像素会显示背景色。因此,应同时检查窗口坐标、缓冲区起点和行跨度(stride),不要默认源缓冲区与刷新窗口完全重合。

UI 框架生成变化后的像素,显示驱动和控制器将它们送往面板。合适的路径取决于面板:

  • SPI/QSPI 或 8080 驱动通常设置面板窗口,并只传输变化区域。
  • 扫描帧缓冲区的控制器按显示时序从内存读取像素数据。
  • 支持 TurboPixel 的路径读取压缩后的最终位图,并在显示控制器阶段解压。

在 LVGL 设计中,显示 flush 回调是渲染与输出之间的边界。它应识别区域、启动正确的 DMA 或控制器操作,并且只有在框架可以安全复用绘制缓冲区时才发出完成信号。CPU 与硬件共享缓冲区时,必须明确缓存清理(clean)/失效(invalidate)规则。

缓冲区何时可以复用,取决于实际传输路径。向面板内部显存传输时,必须等硬件读完绘制缓冲区后再释放它。连续扫描输出时,仅收到帧中断还不能释放正在使用的帧缓冲;要确认切换已经完成、控制器不再读取旧缓冲后,才能复用旧缓冲。传输完成和面板显示更新是两个不同的时刻;需要防止撕裂时,应按面板要求配合防撕裂同步(TE)信号或帧时序。

对于可缓存的共享内存,硬件读取前应先清理(clean)CPU 写入的源数据。硬件写入前,应按平台的缓存维护规则准备目标缓冲,避免脏缓存行随后回写并覆盖硬件结果。等硬件完成写入后,CPU 读取前再使目标缓冲失效(invalidate)。同时应满足缓存行对齐和使用权管理要求,不能忽略同一缓存行中的相邻数据。

显示路径决策
决策 需要验证的方向
Flush 区域 在面板和驱动支持时,仅传输变化区域。
缓冲策略 根据延迟(latency)和内存需求选择局部、整帧、单缓冲或双缓冲。
同步 只有硬件不再读取时才能释放或复用缓冲;连续扫描输出还要确认缓冲切换已完成。
像素格式 匹配面板、驱动、渲染器和任何加速器路径,避免在频繁执行的路径上转换格式。
缓存 硬件读取前清理(clean)CPU 写入的缓冲区;CPU 读取前使硬件写入的缓冲区失效(invalidate)。

局部刷新与脏区域

局部渲染和局部传输是两回事。即使内存中只改动一小块区域,RGB/DPI 或 DSI 视频模式的连续像素流仍可能需要传输整帧。电子纸还要确认局部更新波形、温度影响、残影和全屏刷新间隔,不能认为更新区域越小就一定能正常驱动。

多数嵌入式 UI 无需每帧重绘全屏。LVGL 会跟踪失效区域,驱动可只刷新变化部分。这对 SPI/QSPI 面板、电池供电可穿戴设备、只有少量数值变化的静态页面、EPD 和 JDI 显示屏尤其有价值。

全屏刷新适合动画较多的页面、过渡效果,或天然从完整帧缓冲区扫描的面板。具体选择取决于显示接口带宽、面板行为和内存预算,而不仅仅是 UI 框架设置。

面板启动调试流程

应在调试控件或应用行为之前,分阶段启动调试面板:

  1. 验证电源轨、复位时序、背光或使能引脚,并测量基本电流消耗。
  2. 严格按照面板供应商提供的初始化序列发送命令。
  3. 填充纯色,以发现字节顺序、像素格式和接口接线问题。
  4. 绘制简单几何图案,以检查行跨度、窗口寻址和坐标。
  5. 加入图像资源和文字,以检查颜色转换、字体和资源位置。
  6. 依次启用局部刷新、DMA、TurboPixel 和图形加速,每次只增加一项。
  7. 测试睡眠、关闭显示、唤醒和重新初始化路径。

先用目标面板接口的最小配置验证纯色和几何图案。加入 DMA、压缩或图形加速后,应分别沿新增路径重复这些测试,再调试完整的 LVGL 页面。

定位显示路径故障

应将各阶段视为独立边界。不要同时修改面板命令、LVGL 代码、缓冲区的内存布局和 DMA 设置,否则显示故障将难以复现和定位。

显示路径诊断矩阵
现象 首先检查的边界 有针对性的测试 可能的原因类别
面板始终空白 电源、复位和面板初始化 测量电源轨和复位;执行厂商初始化序列;发送纯色填充。 上电时序、复位极性、初始化命令或物理接口连接。
纯色填充正常但颜色不对 渲染器到面板的像素格式 绘制红、绿、蓝、黑、白测试条。 RGB/BGR 顺序、字节序、色深设置或格式转换。
图像偏移、裁剪或撕裂 寻址和同步 绘制网格,再重复更新一个固定区域。 窗口坐标、行跨度、面板时序、缓冲区过早复用或 DMA 同步不完整。
静态 UI 正常但动画卡顿 渲染、传输和内存边界 分别测量渲染时间和 flush 完成时间。 重绘区域过大、PSRAM 争用、接口过慢或缓冲策略不合适。
仅在睡眠/唤醒后出现伪影 电源状态切换 在每种支持的关闭显示和唤醒路径后重新执行填充/网格测试。 面板状态丢失、遗漏复位/初始化、电源轨时序或缓存/缓冲区状态过期。
仅在启用某功能后失败 特定可选路径 每次只启用 DMA、局部刷新、ePicasso 或 TurboPixel 中的一项。 配置不受支持、对齐/缓存规则不满足,或驱动集成错误。

各类面板的设计建议

SPI 和 QSPI AMOLED/TFT

优先采用局部刷新;适用时采用 RGB565;控制动画区域。小范围变化时避免整屏重绘,应在刷新变化区域前完成渲染和合成。

RGB / DPI 面板

应将持续扫描带宽与 CPU、ePicasso、DMA 及其他内存流量一并纳入预算。根据所需刷新率选择帧缓冲策略;内存允许时考虑双缓冲;PCB 设计还需考虑时序和信号完整性。

MIPI DSI 面板

应在确定料号前选择面板模式。SF32LB55x 仅支持 MIPI DSI 命令模式,因此面板控制器必须提供内部 SRAM/GRAM 来保存更新后的图像。SF32LB58x 同时支持命令模式和视频模式:命令模式面板需要控制器 RAM,而视频模式可通过连续像素流驱动无 RAM 面板控制器。应尽早验证初始化,测试低功耗状态和唤醒时序,并确保所需数据速率低于接口的实际可用吞吐量,为协议开销、时序约束和其他内存访问留出余量。

EPD 显示屏

围绕低频更新设计;仅在支持且视觉效果可接受时使用局部更新模式。不要预设有动画效果,并规划显示 PMIC、VCOM 和波形要求。

JDI 与 Memory-in-Pixel 面板

本文中的 JDI 指面板的串行或并行接口模式;Memory-in-Pixel 指一种面板技术。二者可能出现在同一低功耗显示方案中,但不是同一概念。对于 MIP 面板,可通过小区域更新和合适的 UI 布局利用其在供电时保留像素状态的特性。这不代表图像可在断电后保存,也不代表系统待机功耗为零。COM 反相及其他维护操作应遵循具体面板数据手册;随后在产品条件下测量刷新表现、户外可读性和功耗。

量产交接检查清单

在将显示路径视为完成之前,应记录其他工程师复现该配置所需的参数:

  • 具体的 SF32 器件、封装、SDK 版本、板卡版本、面板料号和面板控制器版本。
  • 接口模式、引脚分配、像素格式、字节/颜色顺序、目标刷新行为以及面板初始化来源。
  • 绘制缓冲区和帧缓冲区的位置、大小、对齐、缓存维护责任方,以及 DMA/控制器完成信号。
  • 局部刷新策略、面板窗口规则,以及为避免伪影必须一起刷新的区域。
  • 代表性 UI 状态下实测的渲染时间、传输时间、峰值/平均 PSRAM 流量(如适用)和电流。
  • 睡眠、关闭显示、唤醒和恢复测试结果,包括传输失败或中断后的行为。

这份记录可将一次性的显示启动调试成果变为可重复的产品集成。面板、SDK、内存布局、像素格式或显示驱动变化时,应重新验证。

要点

  • 显示控制器负责面板输出,与 ePicasso 的像素合成和 eZip 的资源解压相互独立。
  • 接口选择在很大程度上决定带宽需求、缓冲策略、功耗、引脚占用和 PCB 设计要求。
  • Flush 路径、同步、缓存维护和面板初始化都应作为一等(first-class)固件工作对待。
  • 启用上层 UI、DMA、TurboPixel 或加速功能之前,应先用简单图案验证面板。
  • 应逐一隔离显示路径边界来诊断故障,并保留已验证的配置和测量结果以完成量产交接。

最后更新: