OLED技术解析与驱动实战指南

发布于:2025-05-01 ⋅ 阅读:(90) ⋅ 点赞:(0)

OLED(Organic Light-Emitting Diode,中文叫有机发光二极管)因其自发光、超高对比度、超广视角等特性,在智能设备、可穿戴设备和高端显示领域广泛应用。
本篇文章将系统讲解OLED的驱动原理驱动手册分析方法屏幕驱动流程以及OLED显示图片的实现方法
 


一、OLED驱动原理

1.1 原理概述

OLED面板由许多微小的发光单元(像素点)组成,每个像素点都能自己发光。驱动电路的作用,就是根据控制器的指令,精确地给每个像素提供正确的电压和电流,从而实现不同颜色和亮度的显示效果。

什么是OLED驱动IC

每块OLED屏幕背后,都有一颗或者几颗专门的芯片(驱动IC),例如SSD1306、SH1106、SSD1351等。这些芯片内置了寄存器、存储器和电荷泵,专门负责管理像素。

接下来我们就以分析SSD1306的手册进行分析

图片

图片

图片

图片

引脚讲解

BS[2:0]位:就是选择 MCU(单片机)和显示驱动器之间的通信接口模式。这个配置通常由硬件引脚

图片

VDD:核心逻辑电源引脚。

VCC:用于驱动 OLED 屏幕的电源引脚,也是最高电压源引脚。

VSS:地(GND)引脚。

D/C#:数据/命令选择引脚。(拉高传输数据,拉低传输命令)

RES#:复位引脚,用于重置 SSD1306 驱动 IC。

CS#:片选引脚,用于选择目标设备

下图是SSD1306 在 SPI 模式下的数据传输时序

图片

SPI 模式下,通过 时钟信号(SCLK) 和 数据线(SDIN) 如何将数据传送到 OLED 屏幕:

  • CS# 确保你选中正确的设备。

  • D/C# 用来区分是发送命令还是显示数据。

  • 然后通过 SCLK 时钟信号,逐位(从最低位到最高位)传输数据到 SDIN,确保正确显示。

接下来SSD1306 中的 Graphic Display Data RAM (GDDRAM)

(可以理解为显存)

1. GDDRAM (Graphic Display Data RAM)

GDDRAM 是 SSD1306 显示控制器内部的一个内存区域,用于存储显示内容(如图像、文字等)。它是 OLED 屏幕显示的“数据源”,也就是说,显示的每个像素值都是从 GDDRAM 中读取出来的。

SSD1306 的 GDDRAM 总共有 128 x 64 像素(共 8192 个像素点),但是由于其内部存储的特殊方式,实际上它被划分为 多个页面。每个页面包含 128 列和 8 行像素,每一行有 8 个像素。

2. GDDRAM 页结构

GDDRAM 是按照 页(Page) 来组织的,SSD1306 使用 页面寻址模式 来管理屏幕上的数据。

  • GDDRAM 的总大小是 128 x 64,所以它被划分为 8 页(Pages),每一页包含 128 列,具体每一页的内容表示屏幕的一行高度(8 行)。

每个页面的大小是 128(列数) x 8(行数),这样总共有 8 页,每页 128 字节,总共占用 1024 字节(8 页 * 128 字节 = 1024 字节)。因此,GDDRAM 的 1024 字节分别存储了 8 页的数据。



那么我们如果对OLED进行操作,设置起始位置,首先设置起始页位置,接下来就是列位置,但是数据为一个字节,前四位位命令,后四位是参数。

所以我们现在比如在第三页,107列设置为起始位置,就是一下步骤

首先设置起始页地址0xB3  //起始的页地址
在107列的话,将107对应二进制0110 1011  前四位为高列地址,后四位为低列地址设置列地址低四位0x0B设置列地址高四位0x16

4. 基础命令(Fundamental Commands)

SSD1306 使用一系列基础命令来配置显示屏、控制 GDDRAM、设置显示模式等。以下是一些关键的基础命令。

4.1 开启和关闭显示
  • 0xAE:关闭显示。通过此命令,屏幕的显示内容将被关闭,虽然 GDDRAM 中的内容仍然存在。

  • 0xAF:开启显示。通过此命令,恢复 OLED 屏幕的显示。

4.2 地址设置命令

这些命令用于设置 GDDRAM 中的列地址和页地址,允许我们在不同位置显示内容。

  • 0x21:设置列地址范围。后跟两个字节,指定开始和结束列地址(从 0 到 127)。

    • 例如:0x21 0x00 0x7F 设置列地址为从 0 到 127。

  • 0x22:设置页地址范围。后跟两个字节,指定开始和结束页地址(从 0 到 7)。

    • 例如:0x22 0x00 0x07 设置页地址为从 0 到 7。

4.3 显示模式配置
  • 0x20:设置显示内存寻址模式。后跟一个字节来选择寻址模式:

    • 0x00:水平寻址模式(Horizontal Addressing Mode)

    • 0x01:垂直寻址模式(Vertical Addressing Mode)

    • 0x02:页面寻址模式(Page Addressing Mode)

4.4 对比度设置
  • 0x81:设置显示对比度。后跟一个字节来调整显示的对比度(亮度)。值范围是 0x00(最暗)到 0xFF(最亮)。

4.5 复位命令
  • 0xRESET:复位显示控制器,使得 OLED 屏幕恢复到默认状态。


5. 如何在 GDDRAM 中写入数据

要在 SSD1306 中显示图像或文字,首先需要通过相应的命令设置列地址和页地址,然后将图像的每个像素数据写入 GDDRAM。


网站公告

今日签到

点亮在社区的每一天
去签到