1.5inch RGB OLED Module

来自Waveshare Wiki
Eng10讨论 | 贡献2019年7月31日 (三) 14:41的版本 →‎硬件配置
跳转至: 导航搜索
1.5inch RGB OLED Module
{{{name2}}}
{{{name3}}}
功能简介
特性 无特性,不解释
显示尺寸 1.5英寸
分辨率 128×128
' 无特性,不解释
' 无特性,不解释
接口 OLED SPI

产品概述

提供树莓派、STM32、Arduino例程

产品特性

  • 驱动芯片 : SSD1351
  • 支持接口 : 4-wire SPI、3-wire SPI
  • 分辨率 : 128 * 128
  • 显示尺寸 : 1.5inch
  • 显示颜色 : 65K彩色
  • 工作电压 : 3.3V / 5V

管脚配置

CS||片选
功能引脚 描述
VCC 电源正
GND 电源地
DIN 数据输入
CLK 时钟输入
DC 数据/命令信号选择
RST 复位信号

硬件配置

  • 本OLED模块提供两种通信方式:4-wire SPI和3wire-SPI,在模块的背面有一个可选择焊接的电阻,通过该电阻来选择通信方式。如下图:

1.5inch rgb oled module.png
模块出厂默认使用4线SPI通信,即BS0默认接0 注:下表为接口连接。

通信协议 BS CS DC DIN CLK
4Wire SPI 0 片选 DC MOSI SCK
3Wire SPI 1 片选 GND MOSI SCK

具体硬件配置,如下:
使用4线SPI:即出厂设置,BS接0连接到GND,DIN接控制引脚MOSI, CLK接控制引脚SCK;
使用3线SPI: BS接1连接到VCC,D/C需接地,DIN接控制引脚MOSI, CLK接控制引脚SCK;

工作原理

SSD1351是一款128RGB * 128 Dot Matrix OLED/PLED 控制器,其内部有一个128*128*18bit的SRAM作为显示缓存区,支持262k和65k两种颜色深度。并支持8bit 8080并行、8bit 6800并行、3wire-SPI和4wire-SPI等通信方式。
本模块选择了4wire-SPI和3wire-SPI作为通信方式,减小模块的面积,同时节省了控制器的IO资源。

4WIRE-SPI通信协议

1.5inch rgb oled module 4wspi.png
在4wire-SPI通信中,先将DC置1或置0,再发送一个或多个字节的数据。
当DC置1时,发送的字节将作为显示数据存入SSD1351的SRAM中,作为显示数据。在发送数据时,可以连续发送多个字节。
当DC置0时,发送的字节将作为控制OLED的命令,发送命令时,一般一次只发送一个字节。
详见SSD1351 Datasheet Figure 8-5。

3WIRE-SPI通信协议

1.5inch rgb oled module 3wspi.png
3wire-SPI和4wire-SPI唯一的区别在于,它去掉了控制发送命令和数据的DC引脚,在每次SPI传输的字节前加一个位来识别该字节是命令还是数据。
故在3wire-SPI中,DC引脚需要接地,此外,每次传输的数据不是8bit,而是9bit。

树莓派

提供C语言与python例程

树莓派使用教程

开启SPI接口

PS:如果使用的是Bullseye分支的系统,需要将”apt-get“改成“apt",Bullseye分支的系统只支持Python3。
  • 打开树莓派终端,输入以下指令进入配置界面
sudo raspi-config
选择Interfacing Options -> SPI -> Yes 开启SPI接口

RPI open spi.png
然后重启树莓派:

sudo reboot

请确保SPI没有被其他的设备占用,你可以在/boot/config.txt中间检查

安装库

如果使用bookworm系统,只能使用lgpio库,bcm2835跟wiringPi无法安装与使用

BCM2835

#打开树莓派终端,并运行以下指令
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz
tar zxvf bcm2835-1.71.tar.gz 
cd bcm2835-1.71/
sudo ./configure && sudo make && sudo make check && sudo make install
# 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/

wiringPi

#打开树莓派终端,并运行以下指令
cd
sudo apt-get install wiringpi
#对于树莓派2019年5月之后的系统(早于之前的可不用执行),可能需要进行升级:
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v
# 运行gpio -v会出现2.52版本,如果没有出现说明安装出错

#Bullseye分支系统使用如下命令:
git clone https://github.com/WiringPi/WiringPi
cd WiringPi
./build
gpio -v
# 运行gpio -v会出现2.70版本,如果没有出现说明安装出错

lgpio

#打开树莓派终端,并运行以下指令
wget https://github.com/joan2937/lg/archive/master.zip
unzip master.zip
cd lg-master
sudo make install

# 更多的可以参考官网:https://github.com/gpiozero/lg
  • python
sudo apt-get updata
sudo apt-get install python-pip 
sudo pip install RPi.GPIO
sudo pip install spidev

硬件连接

LCD 树莓派BCM
VCC 5V
GND GND
DIN MOSI
CLK SCK
CS CE0
DC 24
RST 25

下载例程

在树莓派终端运行:

sudo apt-get install p7zip
wget http://www.waveshare.net/w/upload/e/eb/1.5inch_RGB_OLED_Module_Code.7z
7zr x 1.5inch_RGB_OLED_Module_Code.7z -r -o./1.5inch_RGB_OLED_Module_Code
sudo chmod 777 -R  1.5inch_RGB_OLED_Module_Code
cd /1.5inch_RGB_OLED_Module_Code/RaspberryPi/

运行例程

  • C语言
cd c
make clean
make
sudo ./main
  • python
cd python
sudo python main.py

STM32

  • 该例程使用的开发板为:XNUCLEO-F103RB
  • 示例工程基于MDK-ARM V5,使用STM32CubeMX配置生成

硬件配置

LCD 树莓派BCM
VCC 5V
GND GND
DIN D11(PA7)
CLK D13(PA5)
CS D10(PB6)
DC D7(PA8)
RST D8(PA9)
  1. 下载示例程序,打开/STM32/OLED_Demo/MDK-ARM/OLED_Demo.uvprojx
  2. 编译并选择烧录器
  3. 复位开发,可看到演示效果

Arduino

  • 该例程使用的开发板为:UNO

硬件配置

LCD 树莓派BCM
VCC 5V
GND GND
DIN D11
CLK D13
CS D10
DC D7
RST D8
  1. 下载示例程序,打开Arduino/1.5 inch OLED Demo/OLED_Demo/OLED_Demo.ino
  2. 编译并选择开发板
  3. 复位开发板,可看到演示效果
在3.3V工作电压下:全白约为60mA,全黑约为4mA。


OLED是没有背光的,显示属于自发光方式。只接VCC和GND,OLED是不会亮的。 必须用程序控制才能亮点OLED。