I2C概念部分课堂随笔——《ARM微控制器与嵌入式系统》

概况

I2C概念部分课堂随笔——《ARM微控制器与嵌入式系统》
I2C概念部分课堂随笔——《ARM微控制器与嵌入式系统》
freescale——SPI
nxp——i2c

特性:串行,同步,单端,双向(但非双工,需要协议),主从,总线

I2C概念部分课堂随笔——《ARM微控制器与嵌入式系统》

线与

引脚是开漏、开集电极的:连到同一根线上的设备,其中只要有一个设备输出为0,则被下拉到地,线上电压都变成逻辑0
内部就是一个对地导通开关
也就是:大家都是1才是1,任何一个为0则都是0

I2C优点

I2C概念部分课堂随笔——《ARM微控制器与嵌入式系统》
方便多个设备读写

规范(通信协议)

i2c是电平有效的,注意spi是触发沿有效
I2C概念部分课堂随笔——《ARM微控制器与嵌入式系统》
默认仅在时钟信号为低时才能跳变,若在高电平发生跳变:如下含义
时钟高电平时下降沿表示起始信号
时钟高电平时上升沿表示停止信号
I2C概念部分课堂随笔——《ARM微控制器与嵌入式系统》
注意i2c一定是MSB在前,LSB在后
也就是高位先发送,低位后发送

数据帧

I2C概念部分课堂随笔——《ARM微控制器与嵌入式系统》
I2C概念部分课堂随笔——《ARM微控制器与嵌入式系统》
灰色:主机下拉产生数据
白色:从机下拉产生数据
数据流程:

  • 主机宣布开始,发送起始位S
  • 主机选择从机(地址)占7个bit
  • 如果主机要读,发1,主机要写,发0
  • 从机应答:反馈0说明从机说:ok,若不反馈**(反馈1,也就是不下拉)**:不ok 注意默认是1,高阻——Not Ask
  • 8位数据的传送(比如主机写到从机,则主机发)
  • 周而复始的读/写操作
  • 终止:主机接收到NOT ASK, 发送停止位P,终止通讯

注意i2c一定是MSB在前,LSB在后
也就是高位先发送,低位后发送

这是一种有交互的,互相有管控的通讯协议
I2C概念部分课堂随笔——《ARM微控制器与嵌入式系统》

高阶内容:重复起始和子地址

I2C概念部分课堂随笔——《ARM微控制器与嵌入式系统》
I2C概念部分课堂随笔——《ARM微控制器与嵌入式系统》