IIC

1. 串口通信缺点

1. 串口通信通常需要至少三条线(TX、RX和GND),而 I2C 总线仅需要两条信号线(SDA和SCL);

2. 串口通信仅支持一对一通信,而 I2C 总线支持多机通信,允许单个主机与多个从机设备进行通信;

3. 串口通信通常无应答机制,而 I2C 必须有应答机制;

4. 串口通讯一般是异步通信,而 I2C 使用同步传输方式,数据在时钟信号(SCL)的控制下传输。

2. IIC总线介绍

I2C总线,全称Inter-Integrated Circuit(互连集成电路),是一种由Philips(现NXP半导体)公司在1980年 代初开发的同步 串行 半双工通信总线。

工作原理:

主从关系:

主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被 认为是从器件。在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。

数据传送:

如果主机要发送数据给从器件,则主机首先寻址从器件,然后主动发送数据至从器件,最后由主 机终止数据传送。

如果主机要接收从器件的数据,首先由主器件寻址从器件,然后主机接收从器件发送的数据,最 后由主机终止接收过程。

时钟同步:

SCL用于数据的时钟同步,确保主从设备之间的数据传输同步进行。

主要特点

硬件简单:

I2C总线只需要一根数据线和一根时钟线两根线,总线接口已经集成在芯片内部,不需要特 殊的接口电路。

多主机总线:

I2C总线是一个真正的多主机总线,如果两个或多个主机同时初始化数据传输,可以通过 冲突检测和仲裁防止数据破坏。

在线检测:

I2C总线可以通过外部连线进行在线检测,便于系统故障诊断和调试。

数据传输与地址设定:

数据传输和地址设定由软件设定,非常灵活。总线上的器件增加和删除不影响其 他器件正常工作。

负载能力:

由于线路中电容会影响总线传输速度,I2C总线的负载能力为400pF,因此可以估算出总线 允许长度和所接器件数量。

应用领域

I2C总线广泛应用于各种设备和应用领域,例如传感器、存储器(如EEPROM)、显示屏、温度传感器、实时 时钟(RTC)、扩展IO芯片等。

3. IIC总线时序

3.1 起始信号

起始信号由主设备发起,用于通知总线上的所有设备即将开始数据传输。

当SCL为高电平时,SDA由高电平变为低电平,产生一个下降沿,表示起始信号的开始。

3.2 停止信号

停止信号也由主设备发起,用于通知总线上的所有设备数据传输已经结束。

当SCL为高电平时,SDA由低电平变为高电平,产生一个上升沿,表示停止信号的开始。

3.3 应答信号

每当一个字节的数据传输完成后,接收方会向发送方发送一个应答信号(ACK)或非应答信号 (NACK)。

应答信号在SCL的第9个时钟周期(当SCL为高电平时)发送。

如果SDA线为低电平,则表示ACK(有效应答),表示接收方已成功接收该字节。

如果SDA线为高电平,则表示NACK(非应答),通常表示接收方接收该字节没有成功。

3.4 读写时序

发送一个字节:SCL低电平期间,主机将数据位依次放到SDA线上(高位先行),然后释放SCL,从机将在 SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可发送 一个字节

接收一个字节:SCL低电平期间,从机将数据位依次放到SDA线上(高位先行),然后释放SCL,主机将在 SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可接收 一个字节(主机在接收之前,需要释放SDA)

3.5 一次完整的I2C时序

模块:OLED显示屏

1. 0.96寸OLED屏幕介绍

0.96 寸 4P OLED 屏幕模块是一种显示屏模块,它包括一个 0.96 英寸的 OLED 显示屏和四个引脚。这种 OLED 屏幕模块通常用于嵌入式系统和小型电子设备中,可以显示文本、图像和其他类型的信息。由于其小 尺寸和低功耗,也常用于智能手表、健康追踪器和其他便携式设备中。

0.96OLED 参数:

驱动芯片:SSD1306

分辨率:128 × 64

显示尺寸:0.96英寸

外形尺寸:27.5 × 27.8(mm)

玻璃尺寸:26.7 × 19.26 × 1.4(mm)

显示区域:21.74(W)× 10.864(mm)

视角:全视角

工作电压:3.3V ~ 5V

工作温度:-20℃ ~ 70℃

存储温度:-30℃ ~ 80℃

使用寿命:>=16000 小时

支持接口:I2C

0.96OLED 屏幕模块的优点有:

1. 高对比度和高亮度:OLED 屏幕模块可以提供深黑色背景和明亮的字色,因此可以实现高对比度和高亮 度的显示效果;

2. 自发光:OLED 屏幕模块不需要背光灯,因此可以实现更薄、更轻的设计;

3. 响应速度快:OLED 屏幕模块的响应速度非常快,可以实现流畅的动画和视频效果;

4. 视角宽:OLED 屏幕模块的视角非常宽,即使从不同角度观察,图像和文字也能保持清晰。

0.96OLED 屏幕模块的缺点有:

1. 显示寿命短:与 LCD 显示屏相比,OLED 的显示寿命相对较短,因为它的有机材料会随着时间的推移 而逐渐失效;

2. 显示面积小:0.96 寸 OLED 屏幕模块的显示面积相对较小,因此不适合用于需要大屏幕的应用。

2. 如何驱动OLED屏幕显示内容?

3. OLED通讯协议

4. SSD1306(OLED显示屏驱动芯片)

5. GDDRAM(OLED存储显示数据的专用内存)

页地址模式:

水平地址模式:

垂直地址模式:

6. OLED命令

7.取模工具

OLED实验

实验目的:驱动 OLED 屏幕,显示字符、字符串、汉字、图片等内容。

编写代码

OLED头文件编写

取模的头文件编写(相当于字符库)

OLED相关函数编写

主函数轮番调用显示字符、字符串、图片函数OLED显示为

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐