IIC(Inter-Integrated Circuit)又称I2C,是是IICBus简称,所以中文应该叫集成电路总线
同步串行半双工通信总线方式
When configuring I2C, note that pull-up resistors need to be configured,I2C总线规定设备空闲时,sda和scl线需要保持高电平,所以配置上拉电阻
1. 简述I2C总线特点?
同步串行半双工
2. 设计I2C时需要注意什么?
I2C总线要求在总线空闲时需要直高电平,需要上拉电阻阻值4.7k-10k欧姆
3. 描述I2C通信的时序?
在scl高电平时sda数据线需要保持平稳,接收方采样数据
在scl低电平时sda可以切换高低电平,发送方发出数据
4. I2C常见的通信速率?
400khz
100khz
5. 起始信号后的7位代表什么?第8位代表什么?第9位代表什么?
前七位数据位,I2C 从设备总线地址,选中从机地址
第八位:R/W 控制主机和从机的读写
R/W:0 主机向从机写
R/W:1 主机向从机读
6. AT24C02的容量大小?
2kbit = 256字节
7. AT24C02的设备地址是多少?
固定 7 位基础地址:01010(0x50),A0/A1/A2 硬件引脚接地时 7 位地址为 0x50
I2C的特点
半双工 同步 串行
上拉电阻4.7k-10k欧姆的上拉电阻:
I2C总线要求:时钟线和数据线起始要求设备空闲时需要置高电平
I2C的通信速率 100khz 400khz
时序
SCL时钟线为高电平时,sda数据信号需要保持稳定电平不能改变,I2C接收方采样数据
SCL时钟线为低电平时,sda可以改变,I2C发送方发送数据
应答信号:发送完8bit数据后,接收方需要回复一个应答信号(低电平/ACK 高电平/NACK)
结束信号:SCL变为高电平时,SDA数据信号线由低电平变为高电平(上升沿)
0:主机向从机发送数据(写)
1:主机向从机读数据(读)
I2C写时序:
主机发送起始信号->读取7位从机数据地址和一位写位->等待从机的的ack->主机发送寄存器地址->主机向从机写入寄存器地址->等待从机ack应答->主机发送结束信号
I2C读时序:
主机发送起始信号->从主机发送从机地址和一位写位->等待从机ack-主机向从机发送内部寄存器地址->等待从机ack->重新发送起始信号->主机发送从机地址+读位->等待从机ack应答->从机向主机回复数据->主机接收到最后一个字节数据,向从机回复NACK->主机发送结束信号