很久以前玩的OLED,现在整理一下。
1 OLED模块介绍
1.1 模块
OLED:organic/polymer light emitting diode 高分子有机电激发光二极管
OLED模块原理图:

OLED模块结构图:

市面上统一尺寸的配置和设计大差不差的,OLED生产商大部分都是中景园电子,官网可以下载OLED 显示屏裸屏的资料。
以驱动芯片为SSD1306的屏为例:
OLED 显示屏裸屏外观:

驱动芯片SSD1306尺寸很小,6.76*0.86mm。仔细看在液晶屏下面一点点可以看到一个长条就是了。
1.2 SSD1306简介
SSD1306是一款带控制器的单片CMOS OLED/PLED驱动,用于OLED点阵图形显示系统。它由128个segment和64个common组成。该集成电路是为普通阴极型OLED面板设计的。
SSD1306内置了对比度控制、显示RAM和振荡器,减少了外部组件的数量和功耗。它有256级亮度控制。数据/命令从通用MCU通过硬件可选的6800/8000串行兼容并行接口,I2C接口或串行外设接口发送。它适用于许多小型便携式应用,如手机子显示器、MP3播放器和计算器等。
1.2 SSD1306引脚
SSD1306单片机接口由8个数据引脚和5个控制引脚组成。不同接口模式下的引脚分配如下表所示。

1.3 SSD1306接口配置
不同的MCU模式可以通过BS[2:0]引脚上的硬件选择来设置。根据原理图可知这款的BS[2:0]=3’b010。设置为I2C驱动。

I2C写数据与命令的时序:

contorl byte: 8’h40(数据),8’h00(指令)
关于I2C时序,这里注意几个关键参数就行,其他的都是标准接口:
- I2C时钟周期最小为2.5us,即400KHz。
- 刷新率:
取I2C时钟频率 f I 2 C f_{I^2C} fI2C=350KHz。I2C驱动模块系统时钟为4倍I2C时钟频率 f s y s f_{sys} fsys=1.4MHz。
从触发一次写到写完成大概需要130个系统时钟。
完成一次刷新需要1048次I2C写,其中1024个数据以及24个指令。
所以刷新率为:
f r e f r e s h = f s y s / 130 / 1048 ≈ 10.276 H z f_{refresh} = f_{sys} / 130 / 1048 \approx 10.276Hz frefresh=fsys/130/1048≈10.276

本文详细介绍了SSD1306驱动芯片及其在OLED显示屏的应用,包括接口配置、驱动代码实现及一个基于Python的简单应用示例。
最低0.47元/天 解锁文章
6724

被折叠的 条评论
为什么被折叠?



