低速率总线接口——IIC

IIC总线

IIC总线作为一种常用的总线,常用于配置或者读取一些低速率的外设数据。
作为一名FPGA逻辑工程师,惭愧得对大家说,其实我是在工作4年以后有一天,才认识到自己完全不懂IIC。
所以补上这篇博客,聊聊IIC

IIC信号

IIC信号部分比较简单,主要就是SCL、SDA
其中SCL为master产生的时钟,输出到slave;SDA为数据线,是双向IO。在写操作的时候,全部为输出,在读操作中,根据具体的读写协议格式,判断是输入还是输出。
低速率总线接口——IIC
这是典型的IIC传输1个字节的时许图,在空闲时期,SDA与SCL同为高
再时钟的上升沿发送8比特数据,等待1比特从设备的响应ACK信号
需要注意的是,IIC设备多有地址的概念,实际芯片在访问的时候,首先是发送地址,但是地址其实只占用了1个字节的高7比特
低速率总线接口——IIC
Bit0 通常情况下,作为读写标志位使用,1代表读,0代表写

写一个字节

  • 开始信号
  • 从设备地址(R/W=0)
  • 寄存器地址
  • 寄存器数据
  • 停止信号