目录

I2C Master

1.概述

I2C是一种简单的串行通讯总线,由飞利浦公司在1980年代为让主板、嵌入式系统或手机用以连接低速周边设备而发展。自2006年11月起,I2C协议是可以被免费使用的,但是芯片厂商仍需要付费以获得I2C从属设备的地址。 I2C只使用两条双向漏极开路(串行数据SDA与串行时钟SCL)并利用电阻进行上拉,I2C允许相当大的工作电压范围,但典型电压等级为+3.3V或者5V。其设备地址包含7bit长度与10bit长度。I2C传输速率有不同的模式:

本IP的设计旨在使用户能够高效进行开发,减少开发周期。支持7位设备地址与标准/快速/低速模式,暂不支持10位地址操作模式,若相关器件性能支持,该IP也可运行在3.4Mbit/s(所使用的FPGA IO建立时间需满足时序要求)。

:!:注意,该IP仅限学习与交流使用。

2.I2C Master 特性

3.IP结构



I2CMasterCore由4部分组成,分别为i2cmaster, i2cmasterconfig, i2cmasterlogic与clkdiv,功能分别如下:

4.Signal & I/O Ports

4.1 i2c_master_logic Module

i2cmasterlogic Module是I2C Master Core逻辑实现部分,所包含接口如下所示:

clk_in

时钟输入信号,该信号直接影响I2C总线工作频率,典型输入频率为100Kbit/s,可使I2C总线工作在100K标准模式下,如果从机设备支持快速或高速模式,该时钟频率可响应输入更高频率,如400Kbit/s或者3.4Mbit/s。

rst_n

复位输入信号,该信号为被拉低时,电路进入复位状态。

scl&sda

I2C通讯总线,硬件电路需配置为上拉,管脚约束建议同样调整为为上拉。

i2c_read_data

该寄存器用于存储主机在从机中读取到的数据。

i2c_device_address

该信号为从机设备地址,暂只支持7位的设备地址。

i2c_reg_address

该信号为读/写操作目标寄存器的地址,由外部输入。

i2c_write_reg_data

该信号为I2C写入目标寄存器数据,由外部输入。

i2c_config

该信号为配置I2C工作模式的外部输入信号,本I2C Master IP核支持如下工作模式,分别对应输入信号为: