主要内容

I2C的主人

配置和奴隶与I2C通信设备

  • 库:
  • SoC Blockset /硬件逻辑I / O

  • I2C主块

描述

I2C的主人块配置和与inter-integrated电路通信(I2C)奴隶设备连接到现场可编程门阵列(FPGA)。此块包含一个I2C主控制器与一个AXI-Lite接口进行配置。

I2C的主人块支持这些特金宝app性:

  • AXI4-Lite接口支持配置和访问金宝app

  • 单主机和主机支持金宝app

  • 金宝app支持7位和10位地址I2C奴隶设备

  • 突发模态支持最大破裂大金宝app小为256字节

  • 金宝app支持多种传输速度模式

  • 一个HDL-IP兼容的模型与代码生成功能

块使用AXI-Lite接口配置和创建一个控制路径接口与一个I2C奴隶设备通信。硬件产生的生成过程包含一个AXI-Lite注册界面和两个硬件接口,串行时钟(sci)和串行数据(SDA)。sci和SDA连接I2C的主人块设备和奴隶。

每个端口的块是一个AXI-Lite登记,除sdaIn,sclIn,sci,sda港口。与奴隶通信设备,AXI-Lite注册接口配置中的注册信息I2C的主人块。此表包含I2C大师AXI-Lite注册信息。

寄存器地址 港口和注册名字 寄存器大小的位 操作模式
0 x100 ctrlInf——控制信息

32

0 x104 slvAddr——奴隶地址

32

0 x108 regAddr——寄存器地址

32

0 x10c dataReg——数据寄存器

32

0 x110 readDone——阅读完成注册 32
0 x114 完成——完成注册

32

0 x118 rdy——准备注册 32
0 x11c respData——第一反应数据寄存器 32
0 x120 validData——响应数据有效的注册 32
0 x124 statusReg——状态寄存器 32

执行读写操作使用I2C的主人块,你需要遵循正确的序列。本节提供的信息序列流进行读和写操作。

阅读顺序

读取数据从外部奴隶设备:

  1. 发送ctrlInf注册信息。

  2. 发送slvAddr注册信息。

  3. 发送regAddr注册信息。

  4. 设置完成注册1之后发送一组注册信息块,然后将它设置为0

  5. 从外部读取响应数据从设备。在阅读的数据respData注册,设置readDone注册1然后设置0立即。

  6. 设置readDone注册1再次,阅读超过4个字节的数据。读操作后,将其设置为0立即。

在读取序列,一组注册信息的组合ctrlInf,slvAddr,regAddr寄存器。

写的顺序

写数据到外部奴隶设备:

  1. 发送ctrlInf注册信息。

  2. 发送slvAddr注册信息。

  3. 发送regAddr注册信息。

  4. 发送dataReg注册包含数据来编写到奴隶设备注册。

  5. 设置完成注册1写完一组注册信息,然后将其设置为0

  6. 设置完成注册1再一次,写超过4个字节的数据。写操作后,将其设置为0立即。

以写序,一组注册信息的组合ctrlInf,slvAddr,regAddr,dataReg寄存器。

港口

输入

全部展开

控制信息寄存器包含配置信息块与奴隶通信设备,指定为一个标量。这个寄存器的读或写操作指示,奴隶设备寄存器地址的字节数,设备数据寄存器的字节数,奴隶设备地址类型。你可以根据你的要求修改配置。

目的 值描述
0 设置写或阅读模式。

写信给奴隶设备寄存器,设置这个值0。从设备读取注册,设置这个值1

[2:1] 组的大小设备寄存器地址。

如果奴隶设备寄存器地址大小是:

  • 一个字节(8位),这个值设置为00

  • 两个字节(16位),这个值设置为01

  • 三个字节(24位),将这个值设置为10

  • 4个字节(32位),将这个值设置为11

[10:3] 设置设备寄存器的数据大小。

如果奴隶设备寄存器支持:金宝app

  • 一个字节的数据,将这个值设置为00000000

  • 两个字节的数据,将这个值设置为00000001

  • 三个字节的数据,将这个值设置为00000010

  • 四个字节的数据,将这个值设置为00000011

  • 5个字节的数据,将这个值设置为00000100

  • 6个字节的数据,将这个值设置为00000101

  • 7个字节的数据,将这个值设置为00000110

  • 8个字节的数据,将这个值设置为00000111

  • 9个字节的数据,将这个值设置为00001000

  • 十个字节的数据,将这个值设置为00001001

  • 11个字节的数据,将这个值设置为00001010

  • 12字节的数据,将这个值设置为00001011

  • 13个字节的数据,将这个值设置为00001100

  • 14个字节的数据,将这个值设置为00001101

  • 15个字节的数据,将这个值设置为00001110

  • 16字节的数据,将这个值设置为00001111

…。…....

  • 256字节的数据,将这个值设置为11111111

11 设置奴隶设备类型

配置7位地址奴隶设备,设置这个值0。奴隶设备配置10位地址,设置这个值1

数据类型:uint16

Slave-address寄存器包含从属设备的地址,指定为一个标量。

数据类型:uint16

寄存器地址的奴隶设备,指定为一个标量。

数据类型:uint32

数据寄存器,指定为一个标量。块使用这个端口向设备写入数据寄存器。

数据类型:uint32

阅读完成信号,指定为一个布尔标量。当这个值1(真正的),用户可以阅读收到的响应数据块从奴隶设备。当这个值0(假),用户还没有准备好读的响应数据块。

数据类型:布尔

完成信号,指定为一个布尔标量。这个值表示块当阅读AXI-Lite注册信息。

数据类型:布尔

输入串行数据,作为一个返回布尔标量。这个端口提供了一个串行数据信号,奴隶的块设备。

数据类型:布尔

输入串行时钟,作为一个返回布尔标量。这个端口提供了一个串行时钟信号奴隶的块设备。

数据类型:布尔

输出

全部展开

输出串行时钟,指定为一个布尔标量。这个端口提供了一个串行时钟信号从奴隶的块设备。

数据类型:布尔

输出串行数据,指定为一个布尔标量。这个端口提供了一个串行数据信号从奴隶的块设备。

数据类型:布尔

准备好信号,作为一个返回布尔标量。当这个值1(真正的)块准备接受配置数据。当这个值0(假的),还没有准备好接受配置数据块。

数据类型:布尔

响应数据寄存器包含从属设备寄存器的数据,作为一个标量返回。

数据类型:uint32

控制信号表明如果响应数据是有效的,作为一个返回布尔标量。当这个值1(真正的),响应响应数据寄存器的数据是有效的。当这个值0(假),响应响应数据寄存器的数据是无效的。

数据类型:布尔

表明I2C总线的状态,作为一个标量返回。

目的 值描述
(七) 保留

保留

3 表明I2C总线的状态。

当这个值1,这表明I2C总线忙。当这个值0,它表明,I2C总线空闲和准备配置。

2 表示承认状态从奴隶设备I2C的主人。

当这个值1,它表明奴隶设备没有承认I2C的主人。当这个值0,这表明奴隶设备已经承认I2C的主人。

(1:0) 保留 保留

数据类型:uint32

参数

全部展开

速度模式指定为这些值之一:

  • 标准模式——金宝app支持高达100赫兹的频率

  • 快速模式——金宝app支持高达400赫兹的频率

  • 快+模式——金宝app支持频率1 MHz

扩展功能

定点转换
设计和模拟使用定点定点系统设计师™。

版本历史

介绍了R2019a

全部展开

行为改变R2020a