1. 高通SDX35平台LCD驱动开发概述
在嵌入式系统开发中,LCD驱动调试是连接硬件与图形界面的关键环节。高通SDX35作为一款广泛应用于物联网和边缘计算设备的平台,其显示子系统支持多种接口类型的LCD模块。ST7735SV是一款常见的1.8英寸128x160分辨率SPI接口LCD控制器,因其低成本和小尺寸特性,常被用于便携式设备。
本次调试的核心目标是在SDX35的UEFI环境下,通过SPI总线实现ST7735SV的初始化和基本图形输出功能。与常见的Linux framebuffer驱动不同,UEFI阶段需要遵循EFI_GRAPHICS_OUTPUT_PROTOCOL规范进行开发,这对寄存器配置和时序控制提出了特殊要求。
2. 硬件接口与初始化流程
2.1 SPI物理层配置
ST7735SV采用4线SPI接口(CS/SCK/MOSI/DC),在SDX35硬件上需要确认以下配置:
- GPIO引脚复用:确保SPI相关引脚未被其他功能占用
- 时钟极性(CPOL)和相位(CPHA):ST7735SV通常需要模式3(CPOL=1, CPHA=1)
- 时钟频率:初始配置阶段建议≤10MHz,初始化后可提升至最大支持频率
典型的QCOM平台SPI控制器配置示例:
c复制EFI_SPI_PERIPHERAL_CONFIG spiConfig = {
.BusFrequency = 10000000,
.BitWidth = 8,
.Mode = SPI_MODE_3,
.SlaveSelect = SPI_SLAVE_SELECT_0,
};
2.2 关键初始化序列
ST7735SV需要严格按照datasheet规定的上电序列进行初始化,主要步骤包括:
- 硬件复位(通过GPIO或电源周期)
- 发送软件复位命令(0x01)
- 设置内存访问控制(MAC, 0x36)
- 配置像素格式(0x3A)
- 设置显示开/关控制(0x29)
特别注意:每个命令之间需要插入适当延时,典型值如下表所示:
| 命令 | 延时(ms) | 说明 |
|---|---|---|
| 0x01 | 120 | 软件复位 |
| 0x11 | 120 | 退出睡 |
