文章系列
I2C子系统驱动架构 - 简介
I2C子系统驱动架构 - 驱动框架
I2C子系统驱动架构 - 具体实现
I2C介绍
I2C(Inter-Integrated Circuit)是由Philips半导体(现在的NXP半导体)研发的一种串行总线,一条总线上可以接多个设备。
I2C支持三种速率模式:标准,快速和高速,标准模式速率为100Khz,快速模式速率为400Khz,高速模式速率为3.4Mhz,后来在快速模式基础上又推出了快速+和超快速两种模式,支持的速率分别达到1Mhz和5Mhz。
硬件连接
举例:I2C的硬件连接原理图如下所示
其中A0、A1、A2决定了I2C设备的地址,SCL为时钟线,SDA为数据线,分别连接到SoC的SCL和SDA的引脚,SCL和SDA一般都要接一个10M的上拉电阻
I2C协议
I2C协议如下所示,某些器件会根据自己的特点定义一些复杂的协议,但是基本的协议时序都差不多,某些器件data可能不只8位数据位,可能是16位等等,具体差别可以详看数据手册
Ref.
I2C-wiki