I2C/IIC学习笔记

I2C/IIC

有些同学I2C和IIC分不清,I2C和IIC实际上是指同一种通信协议。I2C是Inter-Integrated Circuit的缩写,而IIC是它的另一种表述方式,代表的是同一个意思,即"集成电路间总线"。I2C是一种由飞利浦公司(现恩智浦半导体公司)开发的简单、双向二线制同步串行总线,用于连接微控制器及其外围设备。在许多文献和技术资料中,这两个术语是交替使用的。

通信过程

I2C是一种多主机、同步、串行计算机总线,用于连接低速外围设备到微控制器和计算机系统。I2C通信过程包括以下几个关键步骤:

1.开始条件:主机设备通过将SDA从高电平拉低到低电平,同时SCL保持高电平,表示通信开始。

2.地址和读/写位:主机设备发送7位的从设备地址,然后加上一个读/写位(R/W bit)。这个位指示接下来的通信是读(1)还是写(0)操作。

3.确认地址:从设备接收到地址后,如果地址匹配,它会在时钟的下一个脉冲上拉低SDA线,发送一个应答(ACK)信号。

4.数据传输:

写操作:如果主机设备要写数据到从设备,它会在发送完地址和接收到ACK之后,发送数据字节,并在每个字节后等待从设备的ACK。

读操作:如果主机设备要从从设备读取数据,从设备会在接收到读命令后发送数据字节,主机设备在每个字节后发送ACK,除了最后一个字节,最后一个字节后发送非应答(NACK)信号。

5.重复开始条件(Repeated Start Condition):如果主设备想要发送另一个开始条件而不释放SDA线和SCL线,它可以通过发送重复开始条件来继续通信。

6.结束通信:主机设备在完成数据传输后,可以通过拉低SDA线,在SCL为高电平时生成停止条件(Stop Condition),表示通信结束。

建立/保持时间

建立时间:

指在SCL的上升沿或下降沿之前,SDA必须稳定在新的电平状态的最小时间。这个时间确保了从设备能够正确地采样到数据。

保持时间:

指在SCL的上升沿或下降沿之后,SDA必须保持在当前电平状态的最小时间。这个时间确保了数据在时钟边沿之后仍然稳定,直到从设备完成采样。

时序图/学习笔记

《字丑勿喷》

相关推荐
yi0112 小时前
LeetCode 219:存在重复元素 II——哈希表记录“最近一次出现的位置”
数据结构·人工智能·笔记·python·算法·leetcode·哈希表
志尊宝3 小时前
Vue3 零基础每日笔记(073):keep-alive 页面缓存实战——列表页返回不丢状态
vue.js·笔记·缓存·#vue #前端 #前端开发·#javascript·#vue.js
李日华大战鸡红4 小时前
FOC状态空间方程模型推导(学习记录)
python·学习·线性代数
weixin_448119945 小时前
Datawhale Easy Data × AI:笔记1 已重做,看新的笔记
笔记
要开心吖ZSH6 小时前
MySQL 慢 SQL 排查操作手册-个人笔记版
java·笔记·sql·mysql·慢查询
kkkkkkkkkk_Z6 小时前
新手自学嵌入式 | 学习日记:异常与中断基础、i.MX6ULL裸机开发环境搭建、GPIO模块与点灯原理
学习
咖啡忍者7 小时前
【SAP】程制造生产计划PP-PI(Production Planning for Process Industries)
笔记
m4Rk_7 小时前
【论文阅读】Agent 记忆机制(94):MemGen——在推理过程中动态生成并织入潜在记忆
论文阅读·人工智能·学习·开源·github
晓德7 小时前
0、LLM大模型安全学习系列(启)
学习·安全
Titan20248 小时前
MySQL索引学习笔记
笔记·学习·mysql