OLED小屏幕 嵌入式电路 通用设计指南
废话(请跳过)
> 本文由 雨晨_Ethan ( 2807315871@qq.com ) 编写,手翻文档+手敲文档+AI审查,如果对您有所帮助,欢迎参观我的网站: eteasy.top
>如果您有任何疑惑或发现错误之处均欢迎通过在我网站 eteasy.top 中相关页面下方以留言的方式提出,请勿通过邮箱提问,因为我们希望一份答复可以帮到更多的人,如果您通过邮箱提问,请恕不予答复
>该指南为详解的完全指南,很多地方深入到了屏幕的内部结构与工作原理,为了保证准确导致废话很多,如果你希望有一个凝练的回答可以尝试自己用AI提炼一下,或者将此篇文章完整地复制到您AI助手的知识库中,我就不再发一篇提炼版了
前言
每一位嵌入式初学者在项目中应该多少都会用到OLED小屏幕,有的人选择直接使用已经引出4个引脚(VCC、SDA、SCL、GND)的OLED模块,还有些人希望用更优雅的方式集成,即直接将OLED排线或OLED排线座焊在主板上,但是它们中很多人都会对良莠不齐的屏幕数据手册感到一头雾水,不明白怎么设计OLED屏幕的外围电路,或者是将不必要部分也添加到电路中
本文将以四种最常见芯片(SSD1306、SSD1315、SH1116、SH1115)驱动的OLED小屏幕为例,深入介绍OLED小屏幕各引脚的功能与接线方法,掌握这些知识后通过举一反三,你便也能轻松掌握别的芯片驱动的OLED屏幕的外围电路绘制方法
一、引脚定义详解(基础)
让我们先从最简单的 SH1115 OLED屏幕开始,因为使用它的OLED屏幕只有14个引脚,而且基本都为必接引脚
14Pin SH1115 OLED引脚位序图

1.电源类引脚(Pin 1-4 、5、7、8、13、14)
(1)Pin 1-4:C1P、C1N、C2P、C2N一般必接
这四个引脚是内部升压电路用的电容引脚,外部的两个电容配合屏幕内部集成的电荷泵进行升压并产生一个高电压(一般为6.4~10.0V,因芯片而异)在芯片的VPP引脚,直连到屏幕的VCC引脚为OLED发光源供电,所以这两个电容是必须的, 官方推荐值为 CH111x:220nF ,SSD13xx:1μF,耐压>=16V,接线方法:
( C1P----||----C1N )( C2P----||----C2N )
(2)Pin 5、8:VBAT / VDD2一般必接、VDD必接
VBAT引脚字面意思是电池供电输入(Voltage Battery),在使用中我们一般会使用同VDD的3.3V标准供电给VBAT,但是也可以直接用锂电池的电压给VBAT,不同型号的VBAT允许电压范围不同(如SSD1306 3.3 ~ 4.2V,CH1115 2.5 ~ 4.7V,感兴趣的请自行查阅芯片数据手册,需要注意的是在CH111x数据手册中,VBAT引脚被命名为VDD2,而OLED小屏幕的引脚定义还是常用VBAT大概是因为VBAT已经被用成惯例了)。
VDD是系统供电引脚,一般支持电压范围为1.65~3.3V(SSD1306)或1.65~3.5V(其余三种)
实际上,VBAT 本质就是内部电荷泵的电源输入引脚,也就是说它负责给OLED发光源供电,而VDD引脚仅负责给控制电路供电
VDD的滤波电容官方推荐值为 CH111x:4.7μF,SSD13xx:1.0μF*2
(3)Pin 7:VSS必接
VSS是系统地引脚,直接接GND公共地,不解释了
(4)Pin 13:VCOMH必接
VCOMH是“公共电极取消选择电平”,具体原理这里没有空间展开了,简言之就是OLED像素在未被刷新时的负极引脚电平,如果不在VCOMH和GND之间接一个电容将可能导致屏幕显示画面的异常闪烁,所以是必接的,官方推荐值为 CH111x:4.7μF,SSD13xx:2.2μF
(5)Pin 14: VCC必接
OLED屏幕的VCC并不是我们直觉容易以为的3.3V系统供电引脚,而是前文所说的,经屏幕内部电荷泵升压之后产生的高电压电位,一般为7.5 ~ 9.5V,我们要做的就只是在它与GND之间接上滤波电容
官方推荐值为4.7μF , 耐压>=16V 陶瓷电容
(6)什么情况下 Pin 1 ~ 4 和 VBAT 不用接--->“外部VCC模式”
根据前面的内容你已经了解到了,OLED的发光源是使用VCC(即芯片的VPP引脚)的高电压供电的,这个高电压在前文中由VDD经内部的电荷泵升压后得到,也就是说,如果你直接使用高电压给VCC外部供电,也就不需要用到内部电荷泵了,VCC供电从“内置电荷泵”模式转变为“外部VCC”模式,这时你可以①不接 Pin 1~4 的两颗电容,②VCC外接高电压电源,不同芯片的VCC可用值不同,在10V上下分布,如果你想用“外部VCC”模式,最好自己查清楚VCC可用值③VBAT接法因芯片而异,我查了SSD1315和CH1115,SSD1315实例电路中VBAT悬空,而CH1115的实例电路给的是接到了VDD。不过更推荐也更常用的依旧是“内置电荷泵”模式,毕竟只是多了两颗电容就剩下了多接一个外部电源的麻烦
2.配置类引脚(Pin 9、12)
(1)Pin 9:RES#非必接
RES#为复位信号输入引脚,低电平时芯片复位,高电平时芯片工作。
芯片供电稳定后需要进行复位以确保工作状态稳定,OLED小屏幕中一般都有内置的RC复位,所以除非有软件复位的需求,RES#一般情况下可以直接悬空
(2)Pin 12:IREF必接/非必接
IREF是OLED外部亮度调节引脚,接不同的阻值是OLED呈现出不同的亮度
本文的四个芯片中,SSD1306只有外部配置模式,必须接一个电阻到GND来设置亮度,而其余三种芯片均有内部/外部两种模式,可以直接通过软件用内部电阻设置电路,(摘自CH1116Datasheet第31页:IREF can be controlled by external resister or internal resister.)
当使用外界电阻调节亮度时,不同芯片的阻值-亮度对应关系又不一样,建议自己查数据手册来算,问AI很容易出错,这里是数据手册给的推荐值(内部电荷泵模式)为:CH1115:300kΩ,CH1116:310kΩ,SSD1306:400kΩ,SSD1315:240kΩ
3.通信类引脚(Pin 10-11)
Pin 10-11必接
Pin 10-11 是I2C协议的两个通信引脚,这两个引脚一般没有内置的上拉,所以需要你在电路中绘制两个上拉电阻(推荐值为4.7k),或者直接将GPIO设置为内部上拉模式
4.其它(Pin 6)
Pin 6:NC不接
即NotConnected,内部引脚是空置的,不用接东西
二、引脚定义详解(进阶)
在引脚定义详解的进阶部分中,我们将详细解释 30PinOLED屏幕 特有的其它引脚,这些引脚的引出让我们可以实现丰富的配置,而且可以选择更高速的 SPI协议 和 8-bit并行协议

1.配置类引脚(BS0 / BS1 / BS2 、D/C# / A0 、CS / CS# 、E / RD# 、R/W# / WR 、D0~D7)
(1) BS0 / BS1 / BS2 必接
这三个是总线接口模式选择引脚,接不同电平对应的工作协议或模式不同,对应情况如下:

对于无BS2引脚的屏幕,其内部BS2默认为0;对于无BS0引脚的屏幕,其内部BS0默认为0
(2) D/C# / A0 必接
D/C# 和 A0 其实是一个东西,只是不同型号的命名不同,它在8-bit 并行和4线SPI协议下是数据/命令选择引脚,在3线SPI协议下悬空,在I2C协议下是I²C 从机地址选择引脚,具体如下表所示

(3) CS / CS# 非必接
这是SPI协议的片选引脚,仅在使用SPI协议时用的上
(4) E/RD# 非必接
E / RD#是8-bit 并行模式下决定引脚处于使能(Enable)状态还是只读(Read)状态的引脚,改引脚为0时允许读写,为1时只允许读取数据,一般可以直接将这个引脚接VDD,而当系统使用SPI或I2C协议工作时,可以直接悬空或接地
(5) R/W# / WR 非必接
R/W#与WR都是8-bit 并行模式的读/写控制引脚,置0时系统处于写模式,1时处于读模式
2.通信类引脚
D0~D7选择性必接
这些是通信引脚,具体如下表所示

3.其它
N/A不接
即“Not Available”,和“NC”是一样的,不用接
三、特殊补充
在我写完这篇文章后又发现了一些文章内容之外的东西,作为补充写成第三点
1.SCLK / SDIN
在有的屏幕的引脚定义图里你可以看见 SCLK 和 SDIN 两个引脚,这两个其实分别就是SPI协议的 SCK 和 MOSI,有这两个引脚就说明屏幕是SPI协议的,比如下面这个:

2.VLSS
模拟地脚,对电气性能要求不是非常高的情况下一般可以直接接到VSS(GND);对电器性能要求很高且周围有敏感元件的情况下,VCC、VCOMH的电容和IREF的电阻都要先与VLSS连接,之后VLSS单点连接到VSS(GND)
四、练习
最后我再放上两个别的屏幕的引脚表,大家可以自己分析看看自己是不是真的掌握了


