页面加载中,请稍候
来源:嵌入式Linux系统开发发布时间:2022-05-252205浏览
询问 AII2C 系列文章主要分为两个部分来写:
1、I2C spec:研究 I2C 协议本身,研究它的协议规范、传输机制。
2、I2C driver:研究 Linux I2C 驱动。
I2C 系列文章目录如下:
I2C specI2C IntroductionI2C driver
I2C Architecture
I2C Transfer
I2C Synchronization And Arbitration
I2C Hs-mode
I3C Introduction
I3C Protocol
I2C SW Architecture
I2C Data Structure
I2C Register Flow
I2C Data Transfer
I2C 是一种低速、串行总线,有 SDA(串行数据线) 和 SCL(串行时钟线) 两条信号线,半双工通信。通信速度如下:
• Bidirectional bus:
• Unidirectional bus:
速度由 SCL 决定,不同模式对上升沿的要求不一样,上升沿由上拉电阻和等效电容决定(RC)。
I2C 是一种多主从架构总线7-bit address :2 的 7 次方,能挂 128 个设备。
10-bit address :2 的 10 次方,能挂 1024 个设备。
但是 I2C 协议规定,总线上的电容不可以超过 400pF。管脚都是有输入电容的,PCB上也会有寄生电容,所以会有一个限制。
实际设计中经验值大概是不超过 8 个器件。
总线之所以规定电容大小,是因为 I2C 使用的 GPIO 为开漏结构,要求外部有电阻上拉,电阻和总线电容产生了一个 RC 延时效应,电容越大信号的边沿就越缓,有可能带来信号质量风险(方波变三角波)。
传输速度越快,信号的窗口就越小,上升沿下降沿时间要求更短更陡峭,所以 RC 乘积必须更小。
note:要把预留设备地址去除,保留地址如下:

note:写的是 two groups,而不仅仅是八个,0000 XXX 和 1111 XXX 系列地址都是保留的。
新闻来源:嵌入式Linux系统开发,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。
暂无评论哦,快来评论一下吧!
2026-06-10

2026-06-15
2026-06-16