I2C参数
主从模式:
- 主机
- 从机
常见速率:
- 普通模式(100kHz)
- 快速模式(400kHz)
- 快速模式+(1MHz)
- 高速模式(3.4MHz)
- 超高速模式(5MHz)
地址模式:
- 7位地址模式
- 10位地址模式
读写标志R/W :
- 读写位是0,表示主机将要向从机写入数据
- 读写位是1,则表示主机将要从从机读取数据
I2C协议数据传输时序
一个I2C信号包括:起始信号、地址数据信号,读写信号,应答信号,内容数据信号,应答信号,停止信号。其中起始信号与结束信号时序比较特殊,其他信号值“0”“1”时序都相同。
读时序
写时序
数据时序解析
- 起始信号:当SCL 线在高电平期间 SDA 线从高电平向低电平切换。
- 停止信号:当SCL线在高电平期间 SDA 线由低电平向高电平切换。
- “0”“1”值信号:当SCL线在高电平期间,如果SDA一直为高电平表示数据“1”,一直为低电平时表示数据“0”。注意SCL为高电平时SDA不可变化。
注:SDA和SCL同时为高时,为IIC总线的空闲状态
数据传输实例
起始和结束信号查看SCL高电平期间的电平跳变。
数值查看SCL时钟高电平期间SDA的电平,SCL高电平期间SDA是高就是“1”,是低就是“0”。
从设备地址如何确定
以PCF8574芯片为例子
原理图
芯片地址表
每个I2C芯片都会有自己的地址表,这个芯片的地址A6~A3为固定值,A2 ~ A0根据外接电平确定,(Vss低电平,VDD高电平),根据原理图设备的地址为0100000b。即设备的7位的地址为20h。下表中address of PCF8574表示含读写信号的地址,如果发送8个字节地址:值=(7位的地址<<1)+ R/W
I2C总线下PCF8574模块-示例代码
参考:
详细介绍I2C
STM32硬件I2C与软件模拟I2C超详解