IIC接口引脚分配
SSD1306在I2C总线模式下的接口分配
数据/命令引脚 | 控制引脚 | |||||||
[D7:D3] | D2 | D1 | D0 | E | R/W# | CS# | D/C# | RES# |
共阴 | SDAOUT |
SDAIN | SCL | 共阴 | SA0 | RES# |
IIC通信接口由总线的数据信号SDA(SDAOUT和SDAIN)和总线的时钟信号SCL组成。 数据和时钟信号必须连接上拉电阻。
SA0 为从机地址引脚,RES#为设备的初始化引脚。
1.SDA 数据信号线
SDA是主机和从机间进行数据收发和应答的通道。需注意的是,SDA引脚的ITO 电阻和上拉电阻有一个潜在的分压,
结果就是,SDA线上的应答信号可能达不到有效的低电平。
SDAOUT和SDAIN连接在一起由数据信号线SDA引出,SDAIN引脚必须连接以充当SDA。SDAOUT引脚可能断开。
当SDAOUT引脚断开时,I2C总线中的应答信号将被忽略。
2.SCL 时钟信号线
3.SA0 丛机地址位
bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
0 | 1 | 1 | 1 | 1 | 0 | SA0 | R/W# |
![IIC总线 写入数据格式](https://i.loli.net/2020/08/18/t8H9P5SWgLuEU6r.png)
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的一个上升沿。