0.96寸OLED显示屏 IIC接口(SSD1306)

IIC接口引脚分配

                                                      SSD1306在I2C总线模式下的接口分配

数据/命令引脚 控制引脚
[D7:D3] D2 D1 D0 E R/W# CS# D/C# RES#
共阴 SDAOUT
SDAIN SCL 共阴 SA0 RES#

 

 

 

  

IIC通信接口由总线的数据信号SDASDAOUTSDAIN)和总线的时钟信号SCL成。 数据和时钟信号必须连接上拉电阻。

SA0 为从机地址引脚,RES#为设备的初始化引脚。

 

 1.SDA  数据信号线

  SDA是主机和从机间进行数据收发和应答的通道。需注意的是,SDA引脚的ITO 电阻和上拉电阻有一个潜在的分压,

结果就是,SDA线上的应答信号可能达不到有效的低电平。

  SDAOUT和SDAIN连接在一起由数据信号线SDA引出,SDAIN引脚必须连接以充当SDA。SDAOUT引脚可能断开。

当SDAOUT引脚断开时,I2C总线中的应答信号将被忽略。

 

2.SCL 时钟信号线

   信息在IIC总线中的传输遵循时钟信号SCL。 数据位的每次传输都是在SCL的单个时钟周期内进行的。
 

3.SA0 丛机地址位

在IIC总线发送或接收任何信息之前,SSD1306必须先识别从机地址。 设备将响应具有以下字节格式的字节:
 
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
0 1 1 1 1 0 SA0 R/W#
 
 
 
 
 ”D/C#“作SA0用于从地址选择。SA0位为从机地址提供扩展位。 “0111100”或“0111101”均可作为SSD1306的从机地址。
“R/W#”用于确定IIC总线接口的操作模式。 R/W#=1,为读取模式。 R/W#=0,为写入模式。
 
 写数据
 I2C总线接口允许将数据和命令写入设备, 以下为I2C总线的写入模式按时序图。
 
 
 
IIC写入模式
 

1.主机通过启动条件启动数据通信。  启动条件是在SCL保持高电平期间捕获到SDA的一个下降沿,见下图:

2.开始通信后首先发送一个字节:从机地址和读写控制位R/W#。SA0位为0或1(根据D/C#实际接高或低),R/W#置“0”为写入模式。

3.接收到一个字节的数据后,在下一个时钟周期的高电平期间将由总线上对应设备地址的从机产生应答信号(拉低SDA)。

4.在得到应答后,发送一个控制字节,由Co位和D/C位及尾部000000组成。

D7 D6 D5 D4 D3 D2 D1 D0
Co D/C# 0 0 0 0 0 0

 

 

 

  a)Co位为0,则后续字节均为数据。D/C#位确定下一个数据字节作为命令或数据。  

  b)D/C#位设置为“0”,后续数据字节定义为命令。 D/C#位设置为“1” ,后续数据字节定义为数据,并存储在GDDRAM上。

     每次数据写入后,GDDRAM列地址指针将自动增加一个。

5.从机在每接收到一个命令字节或数据字节后都将产生应答信号。

6.当需要写入完成时,通过停止条件结束数据通信。停止条件是在SCL保持高电平期间捕获到SDA的一个上升沿。

注意: 
1.除了启动及停止的状况下,它要求数据位在每一个时钟周期的高电平期间保持稳定,不可以进行改变。
2.数据线和时钟线都需要接外接上拉电阻。
 
 
 
原文地址:https://www.cnblogs.com/Gimiracle/p/13520991.html