1.5inch OLED Module 产品说明
提供树莓派、STM32、Arduino例程
| SKU | 产品 |
|---|---|
| 待补 | 1.5inch OLED Module |
产品参数
- 驱动芯片:SSD1327
- 支持接口:4-wire SPI / I2C
- 分辨率 :128 * 128
- 显示尺寸:1.5inch
- 外形尺寸:44.5mm * 37mm
- 显示颜色:16位灰度
- 工作电压:3.3V / 5V
管脚配置
| 引脚 | 描述 |
|---|---|
| VCC | 电源正 |
| GND | 电源地 |
| DIN | 数据输入 |
| CLK | 时钟输入 |
| CS | 片选 |
| DC | 数据/命令选择 |
| RST | 复位 |
硬件配置

模块出厂默认使用4线SPI通信,即BS1和 BS2 默认接0(1和0不全代表电平,只是电阻接的焊接方式,具体硬件连接见下表);
注:上图为硬件上的焊接,下表为实际的硬件连接。
| 通信协议 | BS0 | BS1 | CS | DC | DIN | CLK |
|---|---|---|---|---|---|---|
| 4Wire SPI | 0 | 0 | 片选 | DC | MOSI | SCK |
| I2C | 1 | 1 | 悬空 | 悬空 | SDA | SCL |
具体硬件配置,如下:
使用4线SPI :即出厂设置,BS1和BS2接0连接到GND,DIN接控制引脚MOSI, CLK接控制引脚SCK;
使用I2C : BS1和BS2接1连接至VCC, DIN接控制引脚SDA, CLK接控制引脚SCL, CS和DC可不接,BS3为配置I2C从设备地址,默认是0x3D。接1时,OLED设备地址为0X3D, 接0时,OLED设备地址为0X3C。
PS:程序默认SPI模式,需要切换模式请修改 DEV_Config.h 详见程序说明-底层硬件接口-接口选择
工作原理
-
SSD1327是一款128*128像素的OLED控制器,而本产品使用的OLED内置了次控制器,同时控制器能够支持16位灰度显示,这样就可以显示一些16位灰度以内的图片了;
-
该OLED支持8bit 8080并行、8bit 6800并行、三线SPI、四线SPI以及I2C控制,由于并行控制会浪费IO口,三线SPI不常用,因此模块可选择四线SPI以及I2C控制。
-
控制器可以支持16位深度图片,而16位深度可以用4个bit控制,控制器在硬件上也是这样处理:1byte控制两个像素点,因此若控制器使用的是水平扫描,则控制难度最低。(具体请见数据手册:page30)

SPI协议

注:与传统的SPI协议不同的地方是:由于是只需要显示,故而将从机发往主机的数据线进行了隐藏,该表格详见Datasheet Page 21。
-
CS#为从机片选, 仅当CS为低电平时,芯片才会被使能。
-
D/C#为芯片的数据/命令控制引脚,当DC = 0时写命令,当DC = 1时写数据
-
SDIN为传输的数据,即16位灰度图片;
-
SCLK为SPI通信时钟。
-
对于SPI通信而言,数据是有传输时序的,即时钟相位(CPHA)与时钟极性(CPOL)的组合:
-
CPOL的高低决定串行同步时钟的空闲状态电平,CPOL = 0,为低电平。CPOL 对传输协议没有很多的影响;
-
CPHA的高低决定串行同步时钟是在第一时钟跳变沿还是第二个时钟跳变沿数据被采集,当CPHL = 0,在第一个跳变沿进行数据采集;
-
这两者组合就成为四种SPI通信方式,国内通常使用SPI0,即CPHL = 0,CPOL = 0
I2C协议

详见Datasheet Page 23
-
发送一个7个字节的从设备地址+一个字节的读写位,然后等待从设备的响应,这个与大部分的I2C通信是类似的,改7位地址可以通过DC管脚来控制;
-
发送一个数据位+一个命令数据位+6个控制自己字节,实际上有用的就是命令数据为,该位设置为0就是写命令,设置为1就是写数据;
-
发送8位的数据。这样一次控制传输就算完成了。
注:该控制器使用串口通信时是无法读取OLED数据。