AN 486: 采用 Altera MAX 系列实现 SPI 至 I2C 的接口

ID 683611
日期 9/22/2014
Public

1.2. I2C 接口

Altera 器件充当 I2C 总线的主器件。

由于设计旨在提供 SPI 主器件与 I2C 器件之间的接口,因此,I2C 总线不支持多个主器件。

表 2.  I2C 接口引脚下表对 I2C 接口引脚进行了说明。
信号 方向 功能
SCLK 输出 I2C 串行时钟
SDA 双向 I2C 数据总线

根据从 SPI 一侧接收到的命令寄存器值来执行 I2C 功能。

表 3.  I2C 命令下表介绍了命令寄存器中存储的值的重要性。
命令寄存器 数据输入寄存器 在 I2C 线上的功能
10000000 从器件地址 + 读/写 启动/重新启动
01000000 要写入的数据 写入一个字节
00100000 不重要 读取一个字节
00010000 不重要 停止
00000000 不重要 空,等待状态

在某个特定 I2C 事务中读取的数据存储在数据输出寄存器中,由 SPI 主器件在其下一个 SPI 事务中读取。 SPI 主器件需要最后一个命令字 00000000 (b) 来读取状态寄存器和数据输出寄存器的值,而无需在 I2C 总线执行任何操作。

图 3. I2C 命令格式