1.3inch OLED 用户手册
1.3inch OLED
用户手册
1. 产 品 特 性
表 1: 产品参数
驱动芯片
支持接口
分辨率
显示尺寸
外形尺寸
颜色
视角
工作温度
存储温度
2. 实 验 现 象
SH1106
3-wire SPI、4-wire SPI、I2C
128*64
1.3 inch
29mm*33mm
黄蓝
>160°
-20℃~70℃
-30℃~80℃
本手册使用 Waveshare Open103R(主控芯片 STM32F103R)开发板为例介绍演示实验效果。
2.1. 硬 件 设 置
OLED 模块提供三种驱动接口:分别为 3-wire SPI、4-wire SPI 和 I2C 接口,模块出厂设置 BS0/BS1
置为 0/0,选通 4-wire SPI。
通过 BS0/BS1 的跳线配置模块工作模式和引脚功能。(需要用到焊接器材,在没有我司工作人员
指导下擅自更改,将视为自动放弃保修。配置方法参考下表)。
表 2. 硬件配置
标识
BS1/BS0 CS D/C DIN
CLK
模式
3-wire SPI 0/1
CS 0
MOSI SCLK
4-wire SPI 0/0
CS D/C
I2C
1/0
0
0/1
SDA
SCL
版本:V2.4,日期:2015 年 5 月 15 日
1
微雪电子WAVESHARE ELECTRONICS
1.3inch OLED 用户手册
2.2. 软 件 设 置
用 Keil 打开工程文件.\IDE\ OLED.uvproj,定位到以下字段,把#define INTERFACE_4WIRE_SPI 前面
的//(双斜杠)去掉。
//#define INTERFACE_3WIRE_SPI
//3-wire SPI
#define INTERFACE_4WIRE_SPI
//4-wire SPI
//#define INTERFACE_IIC
//I2C
编译通过之后,下载程序到 Open103R 开发板。
注意:如果模块配置为 3-wire SPI 或者 I2C 接口,只需把以上对应字段的//(双斜杠)去掉即可。
2.3. 硬 件 连 接
把 OLED 模块连接到 Open103R 开发板 SPI2 接口。上电之后,实验效果如下图:
图 1: 实验验证效果
版本:V2.4,日期:2015 年 5 月 15 日
2
微雪电子WAVESHARE ELECTRONICS
1.3inch OLED 用户手册
3. SH1106 OLED 4-wire SPI 和 I2C 接 口 的 介 绍
8080 并行接口,6800 并行接口,SPI 和 I2C 接口可以通过设置 IM0~IM2 选通,参见下表:
表 3: 接口设置表
(引用自 SH1106_V2.3.pdf 的 Functional Description 章节)
注意:当选通 SPI 串口或者 I2C 接口,建议把 D7~D2 连接到 VDD1 或者 VSS。也允许把 D7~D2 悬
空。
虽然 SH1106 芯片提供了 5 种驱动接口,但是 OLED 模块本身的跳线只提供 3 种驱动接口设置
(3-wire SPI ,4-wire SPI 和 I2C。IM2 硬件置 1)。BS0/BS1 分别与 IM0/IM1 对应。
以下章节简单介绍中 4-wire SPI 和 I2C 接口的驱动的实现方法,详细请参考《SH1106_V2.3.pdf》。
3.1. 4-wire SPI 接 口 介 绍
串行接口包括串行时钟 SCL,串行数据 SI, A0 和 CS。在每个 SCL 上升沿,SI 会以 D7, D6,„D0 的
顺序移入 8 位移位寄存器。每 8 个时钟周期,A0 会采样一次,并且在相同时钟周期内,移位寄
存器的数据字节会写入到显示数据的 RAM(A0=1)或者命令寄存器(A0=0)中。参见下表:
表 4: SPI 接口设置表
(引用自 SH1106_V2.3.pdf 的 4 Wire Serial Interface 章节)
注意:表中“-”引脚,必须总是保持高电平或者低电平。建议把 D7~D2 连接到 VDD1 或者 VSS。
也允许把 D7~D2 悬空。
当 CS 为高电平时,SPI 接口初始化。此时 SCL 脉冲或者 SDI 数据无效。CS 下降沿使能串口并指示
数据传输开始。CS 一直保持低电平时,SPI 接口同样可以正常工作,但并不推荐这样做。
版本:V2.4,日期:2015 年 5 月 15 日
3
微雪电子WAVESHARE ELECTRONICS
1.3inch OLED 用户手册
图 2: 4-wire SPI 数据传输时许
当芯片未处于活动状态时,移位寄存器和计数器重置为初始状态。
在 SPI 串口模式下,无法读取。
在线端反射和外部噪声的情况下,应注意 SCL 信号。建议在实际设备上重新检查操作。
3.2. SH1106 OLED I2C 接 口 介 绍
SH1106 芯片可以通过标准 I2C 总线传输数据,但是只能以从机模式通信。指令或者 RAM 数据可
写入到芯片中,并且可从芯片读取状态和 RAM 数据。
表 5: SH1106 OLED I2C 接口介绍
(引用自 SH1106_V2.3.pdf 的 I2C-bus Interface 章节)
注意:表中“-”引脚,必须总是保持高电平或者低电平。建议把 D7~D2 连接到 VDD1 或者 VSS。
也允许把 D7~D2 悬空。
在 I2C 总线应用中,CS 信号可以一直处于拉低状态。I2C 总线用于不同 IC 或模块之间的双向、
两线通讯。两线指的是串行数据线(SDA)和串行时钟线(SCL)。两线都必须通过上拉电阻拉高。数
据传输只在总线不繁忙的情况下才启动。
注意:上拉电阻提供的正电压必须等于 VDD1。
I2C 位传输
每个时钟周期都会传输一个数据位,在脉冲为高期间,SDA 线数据必须保持稳定。这是因为传输
数据的突变可能会被芯片认为是控制信号。
版本:V2.4,日期:2015 年 5 月 15 日
4
微雪电子WAVESHARE ELECTRONICS
1.3inch OLED 用户手册
图 3: 位传输时序图
(引用自 SH1106_V2.3.pdf 的 I2C-bus Interface 章节)
启动和终止条件
在总线不繁忙的情况下,数据和时钟都保持高电平。数据行由高向低转变的过程中,SCL 高电平
定义为启动条件(S)。数据行由低向高转变的过程中,SCL 高电平定义为结束条件(P)。
图 4: 开始和终止条件
确认信号
每 8 个字节都跟随有一个确认位。这个确认位是高电平的,在主机生成一个额外确认时钟脉冲的
时候,由发送器传送给总线。已经定址的从接收器在接收到每个字节之后,必须生成一个确认信
号。同样,主接收器在接收到每个由从发送器的时钟输出时,必须生成一个确认信号。
版本:V2.4,日期:2015 年 5 月 15 日
5
微雪电子WAVESHARE ELECTRONICS
1.3inch OLED 用户手册
图 5: 确认信号
I2C 协议
SH1106 支持读写访问。R/W 位是从属地址的一部分。在任何数据传输到 I2C 总线之前,应答设
备须先被寻址。两个 7 位从属地址(0111100 和 0111101)将保留给 SH1106。
从属地址的最低有效位是通过连接 SA0 的输入为逻辑 0(VSS)或者 1(VDD1)来设置的。I2C 总线协
议如下图所示。
图 6: I2C 协议
(参见 SH1106_V2.3.pdf 的 Protocol 章节)
版本:V2.4,日期:2015 年 5 月 15 日
6
微雪电子WAVESHARE ELECTRONICS