基于SPI通信方式的OLED显示
1、SPI简介
SPI 协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设 备接口,是一种高速全双工的通信总线。它被广泛地使用在 ADC、LCD 等设备与 MCU 间, 要求通讯速率较高的场合。
SPI 通讯设备之间的常用连接方式
SPI 通讯使用 3 条总线及片选线,3 条总线分别为 SCK、MOSI、MISO,片选线为 S S ,它们的作用介绍如下
SPI 基本通讯过程
这是一个主机的通讯时序。NSS、SCK、MOSI 信号都由主机控制产生,而 MISO 的信 号由从机产生,主机通过该信号线读取从机的数据。MOSI 与 MISO 的信号只在 NSS 为低 电平的时候才有效,在 SCK 的每个时钟周期 MOSI 和 MISO 传输一位数据
CPOL/CPHA 及通讯模式
SPI 一共有四种通讯模 式,它们的主要区别是总线空闲时 SCK 的时钟状态以及数据采样时刻
“时钟极性 CPOL”和“时钟相位 CPHA”
时钟极性 CPOL 是指 SPI 通讯设备处于空闲状态时,SCK 信号线的电平信号(即 SPI 通 讯开始前、 NSS 线为高电平时 SCK 的状态)。CPOL=0 时, SCK 在空闲状态时为低电平, CPOL=1 时,则相反。
时钟相位 CPHA 是指数据的采样的时刻,当 CPHA=0 时,MOSI 或 MISO 数据线上的 信号将会在 SCK 时钟线的“奇数边沿”被采样。当 CPHA=1 时,数据线在 SCK 的“偶数 边沿”采样。
当 CPHA=0 的时序图。首先,根据 SCK 在空闲状态时的电平,分为两种 情况。SCK 信号线在空闲状态为低电平时,CPOL=0;空闲状态为高电平时,CPOL=1。 无论 CPOL=0 还是=1,因为我们配置的时钟相位 CPHA=0,在图中可以看到,采样时 刻都是在 SCK 的奇数边沿。注意当 CPOL=0 的时候,时钟的奇数边沿是上升沿,而 CPOL=1 的时候,时钟的奇数边沿是下降沿。所以 SPI 的采样时刻不是由上升/下降沿决定 的。MOSI 和 MISO 数据线的有效信号在 SCK 的奇数边沿保持不变,数据信号将在 SCK 奇 数边沿时被采样,在非采样时刻,MOSI 和 MISO 的有效信号才发生切换。
当 CPHA=1 时,不受 CPOL 的影响,数据信号在 SCK 的偶数边沿被采样
由 CPOL 及 CPHA 的不同状态,SPI 分成了四种模式,主机与从机需要工作在相同的模式下才可以正常通讯,实际中采用较多的是“模式 0”与“模式 3”。
2、OLED屏幕介绍
OLED即有机发光管(Organic Light-Emitting Diode,OLED)。OLED显示技术具有自发光、广视角、几乎无穷高的对比度、较低功耗、极高反应速度、可用于绕曲性面板、使用温度范围广、构造及制程简单等有点,被认为是下一代的平面显示屏新兴应用技术。
OLED显示和传统的LCD显示不同,其可以自发光,所以不需要背光灯,这使得OLED显示屏相对于LCD显示屏尺寸更薄,同时显示效果更优。
常用的OLED屏幕有蓝色、黄色、白色等几种。屏的大小为0.96寸,像素点为
128*64,所以我们称为0.96oled屏或者12864屏。
OLED模块显存
OLED本身是没有显存的,它的显存是依赖于SSD1306提供的
SSD1306的显存总共为12864bit大小,SSD1306将这些显存分为了8页。每页包含了128个字节,总共8页,这样刚好是12864的点阵大小。
SSD1306芯片
SSD1306是一个单片CMOS、OLED/PLED驱动芯片可以驱动有机/聚合发光二极管点阵图形显示系统。由128 segments 和64 Commons组成。该芯片专为共阴极OLED面板设计。
SSD1306中嵌入了对比度控制器、显示RAM和晶振,并因此减少了外部器件和功耗。有256级亮度控制。数据/命令的发送有三种接口可选择:6800/8000串口,I2C接口或SPI接口。适用于多数简介的应用,注入移动电话的屏显,MP3播放器和计算器等。
SSD1306芯片特性
分辨率:128 * 64 点阵面板;
电源:
VDD = 1.65V to 3.3V,用于IC逻辑;
VCC = 7V to 15V,用