I2C概念部分课堂随笔——《ARM微控制器与嵌入式系统》
概况
freescale——SPI
nxp——i2c
特性:串行,同步,单端,双向(但非双工,需要协议),主从,总线
线与
引脚是开漏、开集电极的:连到同一根线上的设备,其中只要有一个设备输出为0,则被下拉到地,线上电压都变成逻辑0
内部就是一个对地导通开关
也就是:大家都是1才是1,任何一个为0则都是0
I2C优点
方便多个设备读写
规范(通信协议)
i2c是电平有效的,注意spi是触发沿有效
默认仅在时钟信号为低时才能跳变,若在高电平发生跳变:如下含义
时钟高电平时下降沿表示起始信号
时钟高电平时上升沿表示停止信号
注意i2c一定是MSB在前,LSB在后
也就是高位先发送,低位后发送
数据帧
灰色:主机下拉产生数据
白色:从机下拉产生数据
数据流程:
- 主机宣布开始,发送起始位S
- 主机选择从机(地址)占7个bit
- 如果主机要读,发1,主机要写,发0
- 从机应答:反馈0说明从机说:ok,若不反馈**(反馈1,也就是不下拉)**:不ok 注意默认是1,高阻——Not Ask
- 8位数据的传送(比如主机写到从机,则主机发)
- 周而复始的读/写操作
- 终止:主机接收到NOT ASK, 发送停止位P,终止通讯
注意i2c一定是MSB在前,LSB在后
也就是高位先发送,低位后发送
这是一种有交互的,互相有管控的通讯协议