I3C

简介

改进型内部集成电路 (I3C) 是 MIPI 联盟定义的一组通信协议的一部分。该规范的开发旨在通过为传感器提供快速、低成本、低功耗的双线数字接口,简化移动无线产品中的传感器系统设计架构。

MIPI I3C 主控制器是一个数字核心,实现了 MIPI I3C 规范中定义的与主主控制器相关的所有协议功能。MIPI_I3C 核心在系统(应用)和 I3C 接口之间提供了一个接口,允许与 I3C 设备和传统 I2C 设备(从设备)进行通信,但存在 MIPI I3C 规范中指定的限制。

双角色 MIPI_I3C 控制器可以通过处理器接口 (ICB) 配置为 I3C 主主控制器或 I2C 主设备/从设备。该控制器满足 MIPI I3C 规范中规定的 I3C 协议和 I2C 协议的要求。

系统框图

I3C 系统确保可靠的数据发送和接收。I3C 接口旨在改进 I2C 接口的特性,同时保持向后兼容性(但存在一些限制,例如不支持时钟拉伸)。

I3C 协议支持不同角色的设备,如下所示:

  • 主主控制器

  • 次级主控制器

  • I3C 从设备

  • I2C 从设备

主主控制器是一种专业的主控制器,在上电复位后启动,负责为连接到 I3C 总线的每个 I3C 设备分配动态地址。次级主控制器是一个能够同时充当主设备和从设备的 I3C 实例。它在上电复位后作为从设备启动。次级主控制器必须获得 I3C 总线的所有权才能成为当前主控制器,然后才能向其关联的从设备发起任何传输。

标准符合性

MIPI_I3C 控制器符合以下标准:

  • MIPI 联盟改进型内部集成电路规范,版本 1.0 - 2018年7月19日

  • I2C-BUS 规范和用户手册,Rev. 6 - 2014年4月4日

主要特性

I3C 的主要特性如下:

  • 双线 I3C 串行接口 - 由串行数据线 (SDA) 和串行时钟线 (SCL) 组成

  • 仅支持主主控制器角色,该角色发送大部分 I3C 命令 (CCC),寻址所有从设备(广播 CCC)或特定的单个从设备(定向 CCC)

  • 仅支持单数据率消息传输 (SDR)

  • 广播消息,发送给总线上的所有 I3C 从设备

  • 定向消息,寻址到特定的从设备

  • 主模式下的时钟停滞支持

  • 硬件辅助的动态地址分配 (DAA)

  • 检测由于传入 IBI 导致的仲裁丢失,并随后重新传输命令

  • 带内中断(无有效载荷)处理

  • 支持 DMA 访问以实现多数据通信

  • RX 和 TX 的 FIFO 大小可在 RTL 级别配置

  • 整个 I3C 控制器设计同步于一个时钟域:ICB_CLK

MIPI_I3C 控制器支持 I2C 规范的以下通用特性:

  • 并行总线/I2C 协议转换器

  • 主设备和从设备能力:同一接口可以充当主设备或从设备

  • I2C 主设备特性: - 时钟生成 - 起始和停止条件生成

  • I2C 从设备特性: - 可编程的 I2C 地址检测 - 停止位检测

  • 7位/10位寻址的生成和检测

  • 支持最多两个从设备地址响应(均具有可配置的掩码字段)

  • 支持通用呼叫软件复位

  • 支持不同的通信速度: - 标准速度 (最高 100 kHz) - 快速速度 (最高 400 kHz) - 快速模式增强版 (最高 1 MHz)

  • 状态标志: - 发送器/接收器模式标志 - 字节传输结束标志 - I2C 忙标志

  • 时钟拉伸能力: - TX 数据未就绪 - RX 数据未被 CPU 或 DMA 核心读取

  • 支持通过 DMA 控制器进行 DMA 访问,用于高速数据通信

  • SMBus 规范 rev 2.0 兼容性: - 硬件 PEC(数据包错误检查)生成和验证,带 ACK 控制 - 支持地址解析协议 (ARP) - 支持主机和从设备设备 - 支持 SMBus 警报 - 支持超时和空闲条件检测

  • PMBus rev 1.1 标准兼容性

功能描述

MIPI_I3C 核心接口描述

MIPI_I3C 控制器具有以下接口:

  • ICB(内部芯片总线)从设备接口

  • 用于外部 IO 连接的 I3C SDA/SCL IO 接口

  • 中断接口

  • 用于外部 DMA 核心的 DMA 握手和配置接口

MIPI_I3C 内部模块描述

本节描述了 I3C 模块框图 (图 6.1) 中所示的内部模块。

寄存器块模块

I3C 寄存器块包含所有 mipi_i3c 寄存器。mipi_i3c 中的所有寄存器都是 32 位宽。mipi_i3c 中的寄存器接口用于为不同的总线模式、时序参数以及中断的启用/禁用来编程控制器。

寄存器接口还用于向控制器传输命令和 Tx 数据,以及从控制器接收 Rx 数据和响应。

中断控制模块

中断控制模块将中断使能为一个单一引脚。中断的生成和清除基于中断寄存器设置。

DMA 访问控制模块

DMA 访问控制模块负责基于 Tx-FIFO 和 Rx-FIFO 的占用水平来断言和取消断言 DMA 握手接口。

CFG 控制模块

CFG 控制块是一个状态机,控制 mipi_i3c 在当前主控制器模式下的发送和接收操作。该模块从应用接口检索命令,并指示发送和接收总线控制块进行相应的操作。

总线控制模块和从设备控制模块

总线控制块用于控制主设备 (I3C/I2C) 和 I2C 从设备的与协议相关的发送或接收信号(包括时序信号),并用于仲裁丢失检查。

主控制器功能 MIPI_I3C 内部模块

MIPI I3C 核心中主控制器角色概述

MIPI I3C 倡导分层总线架构,在任何给定时间只有一个主控制器(当前主控制器)控制 I3C 总线。I3C 总线上必须有一个主主控制器,可以有选择地拥有次级主控制器。

主控制器转变为当前主控制器的过程基于总线拓扑:

  • 单主控制器系统 - 主主控制器始终是当前主控制器,因为它是单主控制器系统中唯一的主控制器。

  • 多主控制器系统 - 在总线初始化期间,主主控制器是当前主控制器;之后,任何次级主控制器都可以基于主控制器请求和主控制器权限移交机制成为当前主控制器。

Nuclei MIPI_I3C 核心始终充当主主控制器,在上电后拥有 I3C 总线。这意味着 MIPI_I3C 核心驱动 SCL 线并在 SDA 线上发起传输。

动态地址分配 (DAA)

DAA 概述

Nuclei_MIPI_I3C 核心作为主主控制器,负责执行动态地址分配 (DAA) 过程,为连接到 I3C 总线的每个 I3C 设备提供唯一的动态地址。主主控制器在以下条件下为设备提供动态地址:

  1. 在 I3C 总线初始化时。

  2. 当设备连接到已配置的 I3C 总线时(通过热加入或其他方法指示)。

一旦设备接收到动态地址,这个分配的动态地址将在设备后续在 I3C 总线上的所有事务中使用。

DAA 方法描述

SETDASA 过程(格式 1:主要)

主主控制器使用定向命令码 - 从静态地址设置动态地址 (SETDASA) 为任何已知静态地址的 I3C 设备分配动态地址。这比使用 ENTDAA 过程更快。SETDASA 过程在系统冷启动后由主主控制器启动。

以下流程描述了使用 SETDASA 过程的动态地址分配:

  1. 应用程序初始化 MIPI_I3C 控制器。

  2. 应用程序按如下所示编程寄存器。

    2.1 编程 SETUP[2] 寄存器以在 SCL 和 SDA 总线上生成 START 条件。 2.2 使用 8’hFC 编程 TXDATA[7:0] 寄存器,这表示 SETDASA 过程的 7’h7E + W。 2.3 等待从设备将 SDA 拉低 (STATUS[2] = 0),这表示从设备确认命令数组 (7’h7E + W)。 2.4 使用 SETDASA CCC 编程 TXDATA[7:0] 寄存器,编程 SETUP[16] 以使能奇偶校验位可以自动插入到 SDA 总线。 2.5 编程 SETUP[2] 寄存器以在 SCL 和 SDA 总线上生成重新开始条件。 2.6 使用特定从设备地址 + W 编程 TXDATA[7:0] 寄存器。 2.7 等待从设备确认其自身地址 (STATUS[2] == 0)。 2.8 使用特定从设备地址 + W 编程 TXDATA[7:0] 寄存器。 2.9 等待从设备确认此动态地址 (STATUS[2] == 0)。 2.10 使用动态地址编程 TXDATA[7:0] 寄存器,并编程 SETUP[16] 以使能奇偶校验位可以自动插入到 SDA 总线。 2.11 编程 SETUP[2] 寄存器(发送 START 条件)以重新开始动态地址分配,或编程 SETUP[3] 寄存器(发送 STOP 条件)以完成动态地址分配。

ENTDAA 过程

主主控制器使用广播命令码 - 进入动态地址分配 (ENTDAA) 为任何之前未分配动态地址的 I3C 设备分配动态地址。此过程在冷启动后、完成使用 SETDASA 过程为静态地址设备进行动态地址分配之后,或者如果从任何 I3C 设备接收到热加入请求时,由主主控制器启动。

以下流程描述了使用 ENTDAA 过程的动态地址分配:

  1. 应用程序初始化 MIPI_I3C 控制器。

  2. 编程 SETUP[2] 寄存器以在 SCL 和 SDA 总线上生成 START 条件。

  3. 使用 8’hFC 编程 TXDATA[7:0] 寄存器,这表示 SETDASA 过程的 7’h7E + W。

  4. 等待从设备确认 (STATUS[2] == 0) 此广播地址 (7’h7E)。

  5. 使用 I3C 模式广播 CCC (ENTDAA) 和 T 位编程 TXDATA[7:0] 寄存器,编程 SETUP[16] 以使能奇偶校验位可以自动插入到 SDA 总线。

  6. 编程 SETUP[2] 寄存器(发送 START 条件)以重新开始动态地址分配,并使用 8’hFD 编程 TXDATA[7:0] 寄存器,这表示 SETDASA 过程的 7’h7E + R。

  7. 等待从设备确认 (STATUS[2] == 0) 广播地址 (7’h7E)。

  8. 编程 SETUP[10] 以使 MIPI_I3C 核心发送 64 个 SCL 并完成 8 字节数据读取,同时保持 SDA 线拉高。

  9. 使用动态地址编程 TXDATA[7:0] 寄存器,并编程 SETUP[16] 以使能奇偶校验位可以自动插入到 SDA 总线。

  10. 等待从设备确认此动态地址 (STATUS[2] == 0)。

  11. 主主控制器应重复此过程,跳回步骤 4,直到 I3C 总线上没有任何设备发出 ACK。

  12. 此动态地址分配过程应由主主控制器发出 STOP 来结束。

主模式下的带内中断 (IBI) 流程

I3C 非当前主控制器设备可以通过带内中断 (IBI) 向当前主控制器发起通信。在 MIPI_I3C 配置为主主控制器的情况下,I3C 总线上可能出现以下类型的 IBI:

  • 热加入请求

  • 从设备中断请求

  • 来自次级主控制器的主控制器所有权请求

热加入请求的检测和处理

热加入请求是通用类型(保留地址 7’b000_0010),因此在设备控制寄存器中有一个单比特控制位 (SETUP[6]) 可用于控制响应。当控制位设置为 0 时,MIPI_I3C 控制器对所有热加入请求响应 ACK 并生成 IBI 中断 (STATUS[7] 为 “1”)。该响应进入 IBI 队列,通知应用程序采取必要行动(发出 ENTDAA 命令)。当控制位设置为 1 时,MIPI_I3C 控制器对所有热加入请求响应 NACK,并且也会生成 IBI 中断 (STATUS[7] 为 “1”)。

从设备中断请求的检测和处理

为了请求中断,I3C 从设备应在起始条件(但不是重复起始条件之后)之后,将其地址发送到仲裁的地址头中。如果在总线可用条件下没有出现起始条件,则 I3C 从设备可以通过拉低 SDA 线发出起始条件,然后等待当前主控制器拉低 SCL。

当控制位 (SETUP[6]) 设置为 0 时,MIPI_I3C 控制器对接收到的 SIR 响应 ACK 并生成 IBI 状态响应。当控制位设置为 1 时,MIPI_I3C 控制器对接收到的 SIR 响应 NACK。

主控制器请求的检测和处理

当 I3C 次级主控制器请求成为当前主控制器时:

  1. 为了执行请求,I3C 次级主控制器应等待起始条件(不是重复起始条件)或总线可用条件,并发出自己的起始条件。

  2. 在起始条件之后,I3C 次级主控制器应在 I3C 总线上发出自己的动态地址,后跟 RnW 位为 0,以请求成为当前主控制器。

  3. 如果 I3C 次级主控制器通过拥有较低的动态地址赢得仲裁,并且如果当前主控制器当前愿意将主控制器权限让给请求者,则当前主控制器应响应 ACK。

  4. 在 ACK 之后,当前主控制器可以发出一个或多个命令,然后应发出 GETACCMST CCC 后跟 STOP,此时它释放对 SCL 线的控制。

  5. 在 STOP 和总线可用条件之后,I3C 次级主控制器承担当前主控制器的角色并控制 I3C 总线。

当控制位 (SETUP[6]) 设置为 0 时,MIPI_I3C 控制器对接收到的 Master-Request 响应 ACK 并生成 IBI 状态响应。当控制位设置为 1 时,MIPI_I3C 控制器对接收到的 Master-Request 响应 NACK 并生成 IBI 状态响应。

I2C 模式描述

除了接收和发送数据外,此接口还将其从串行转换为并行格式,反之亦然。中断由软件启用或禁用。该接口通过数据引脚 (SDA) 和时钟引脚 (SCL) 连接到 I2C 总线。它可以连接到标准(最高 100 kHz)、快速(最高 400 kHz)、快速增强版(最高 1 MHz)或高速模式(最高 3.4 MHz)的 I2C 总线。

模式选择

该接口可以在以下四种模式之一运行:

  • 主发送器

  • 主接收器

  • 从发送器

  • 从接收器

默认情况下,它在主模式下运行,可以向 I2C 从设备外设生成 START 或 STOP 条件,并允许多主控制器能力。该接口可以通过设置 SETUP[11] 寄存器从主模式切换到从模式。

通信流程

在主模式下,I2C 接口发起数据传输并生成时钟信号。串行数据传输总是以起始条件开始,以停止条件结束。起始和停止条件都在主模式下由软件生成。

在从模式下,该接口能够识别其自身的双地址(7 位或 10 位)以及通用呼叫地址。

数据和地址作为 8 位字节传输,MSB 优先。起始条件之后的第一个字节包含地址(7 位模式下为一个,10 位模式下为两个)。地址总是在主模式下传输。

一个字节传输的 8 个时钟周期之后是第 9 个时钟脉冲,在此期间接收器必须向发送器发送一个确认位。

确认可以由软件启用或禁用。I2C 接口地址(双地址 7 位/10 位和/或通用呼叫地址)可以通过软件选择。

I2C 接口的框图如 I2C 模块框图 (图 6.6) 所示。

I2C 初始化

启用和禁用外设:

I2C 外设时钟必须在时钟控制器中配置和启用。

在通过设置 SETUP 寄存器中的 CFG_DNF_NUM 启用 I2C 之前,必须配置数字滤波器。

然后可以通过设置 SETUP 寄存器中的 ENABLE 位来启用 I2C。

注意:I2C 外设可以使用配置寄存器的默认值工作。用户无需再配置时序。

注意:当 I2C 传输正在工作时,不允许更改时序配置。

软件复位

可以通过设置 SETUP 寄存器中的 SOFT_RESET 位来执行软件复位。在这种情况下,I2C 线路 SCL 和 SDA 被释放。内部状态机被复位,通信控制位以及状态位恢复为其复位值。配置寄存器不受影响。

当软件设置 SETUP[7] 时,将生成一个软复位脉冲并立即复位 I2C 控制器。

主控制器 SCL 和 SDA 时序

I2C 总线时序特性在 I2C 协议时序生成 (图 6.8) 中给出。必须配置时序以保证正确的数据保持和建立时间,用于主模式和从模式。这通过编程以下时序寄存器来完成:

  • I2C_TIMING.PRESC[31:0]

  • CFG_START_SETUP_TIME[31:0], CFG_START_HOLD_TIME[31:0]

  • CFG_SDA_SETUP_TIME[31:0], CFG_SDA_HOLD_TIME[31:0]

  • CFG_SCL_HIGH_PERIOD[31:0], CFG_SCL_LOW_PERIOD[31:0]

  • CFG_STOP_SETUP_TIME[31:0], CFG_BUS_FREE_TIME[31:0]

I2C 总线规范中指定的 SCL 时钟的最小高电平和低电平周期决定了最大比特传输速率:标准模式设备为 100 kbit/s,快速模式设备为 400 kbit/s,快速模式增强版为 1000 kbit/s。

必须配置时序以保证正确的数据保持和建立时间,用于主模式和从模式。

I2C 时序参数与寄存器对应关系

符号

参数

时序寄存器

tSU;STA

START 条件的建立时间

CFG_START_SETUP_TIME[31:0]

tHD;STA

START 条件的保持时间

CFG_START_HOLD_TIME[31:0]

tSU;DAT

数据建立时间

CFG_SDA_SETUP_TIME[31:0]

tHD;DAT

数据保持时间

CFG_SDA_HOLD_TIME[31:0]

tSU;STO

STOP 条件的建立时间

CFG_STOP_SETUP_TIME[31:0]

tBUF

STOP 和 START 条件之间的总线空闲时间

CFG_BUS_FREE_TIME[31:0]

注意:时序寄存器的单位是 I2C_TIMING.PRESC[31:0],它是 icb_clk 的预分频器。

I2C 主模式

在主模式下,I2C 接口发起数据传输并生成时钟信号。串行数据传输总是以 START 条件开始,以 STOP 条件结束。主模式是随着 START 位在总线上生成 START 条件而选择的。

以下是主 CPU 模式下的主要所需序列:

  • 编程时序寄存器以生成正确的 I2C 时序

  • 通过使能 SETUP[11] 寄存器中的 ROLE_MODE 位来配置 I2C 控制器在主模式下工作

  • 编程 SETUP[1] 寄存器中的 ENABLE 位以启用 I2C 控制器

  • 设置 SETUP[2] 寄存器中的 START 位以生成 START 条件

  • 配置 TXDATA 寄存器

  • 编程 SETUP[5:4] 寄存器中的 WRITE 或 READ 位以使主设备工作在发送器模式或接收器模式

  • 当 STATUS[4] 中的 BYTE_ON_GOING 位为低电平时,表示字节传输完成

START 和 STOP 条件

所有事务都以 START (S) 开始,并以 STOP (P) 终止。当 SCL 为高电平时,SDA 线上从高电平到低电平的转换定义了 START 条件。当 SCL 为高电平时,SDA 线上从低电平到高电平的转换定义了 STOP 条件。

设置 START 位会导致接口在 SDA 和 SCL 线上生成起始条件。

在最后一个字节写入 TXDATA 寄存器后,由软件设置 STOP 位以生成 STOP 条件。

START 和 STOP 条件总是由主设备生成。总线在 START 条件之后被视为繁忙。I2C 控制器在 STOP 条件之后的一定时间后被视为再次空闲。

从设备地址传输

一旦发送了起始条件,从设备地址将从 TXDATA 寄存器发送。

然后从设备地址通过内部移位寄存器发送到 SDA 线。

在 7 位寻址模式下,发送一个地址字节。

一旦地址字节发送完毕,字节进行中位 (STATUS[4] 寄存器) 被硬件清除。然后主设备等待读取 STATUS[2] 寄存器中的 ACK 位,该位指示从设备在 SDA 线上发送握手信号。

主发送器模式

在地址传输之后,主设备从 TXDATA 寄存器发送字节到 SDA 线,通过内部移位寄存器。

当接收到确认脉冲时,STATUS 寄存器中的 ACK 位由硬件设置。

如果 STATUS[4] 寄存器中的 BYTE_ON_GOING 位被清除并且新的数据字节写入 TXDATA 寄存器,则主设备通过设置 SETUP[4] 寄存器中的 WRITE 位,将下一个字节从 TXDATA 寄存器发送到 SDA 线。

主接收器模式

在地址传输之后,I2C 接口进入主接收器模式。在此模式下,接口从 SDA 线接收字节到 RXDATA 寄存器,通过内部移位寄存器。并在每个字节后发送确认脉冲。

当发送确认脉冲(ACK 位为低电平)时,表示主设备发送握手信号,从设备将发送下一个数据到 SDA 线。

如果 STATUS[4] 寄存器中的 BYTE_ON_GOING 位被清除并且通过读取 RXDATA 寄存器获取了一个数据字节,则主设备可以通过设置 SETUP[5] 寄存器中的 READ 位,向 SDA 线发送下一个读取操作。

I2C 从模式

为了在从模式下工作,用户必须启用至少一个从设备地址。有两个从设备地址可用于编程从设备自身地址 I2C_SLAVE_ADDRESS1 和 I2C_SLAVE_ADDRESS2 寄存器。

一旦检测到 START 条件,地址从 SDA 线接收并发送到移位寄存器。然后将其与 SLAVE_ADDRESS1_EN 启用时的 SLAVE_ADDRESS1 寄存器地址,或 SLAVE_ADDRESS2_EN 启用时的 SLAVE_ADDRESS2 寄存器地址,或 SLAVE_ADDRESS1_EN 和 SLAVE_ADDRESS2_EN 都启用时的 SLAVE_ADDRESS1 寄存器和 SLAVE_ADDRESS2 寄存器地址,或通用呼叫地址 (0x0000_0000) 进行比较。

从发送器模式

在地址接收和清除 ADDR 之后,从设备从 TXDATA 寄存器发送字节到 SDA 线,通过内部移位寄存器。从设备拉伸 SCL 为低电平,直到 TXDATA 填充了要发送的数据。

当接收到确认脉冲时:

  • STATUS[11] 寄存器中的 I2C_SLAVE_TXE 位由硬件设置,并且如果 INT_IE[3] 位置位则生成中断,这指示软件应将数据字节填充到 TXDATA 寄存器中。

如果数据字节写入 TXDATA 寄存器,则从设备将下一个字节从 TXDATA 寄存器发送到 SDA 线。

从接收器模式

在地址接收和清除 ADDR 之后,从设备从 SDA 线接收字节到 RXDATA 寄存器,通过内部移位寄存器。

在每个字节之后,接口按顺序生成:

  • 如果 ACK 位置位,则生成确认脉冲

  • I2C_SLAVE_RXF 位由硬件设置,并且如果 INT_IE[3] 位置位则生成中断

如果在下一个数据接收结束之前未读取 RXDATA 寄存器中的数据,则 I2C_SLAVE_RXF 位置位,并且接口等待软件通过从 RXDATA 寄存器读取来获取接收到的数据,同时拉伸 SCL 为低电平。

通用呼叫地址

通用呼叫地址用于同时寻址连接到 I2C 总线的每个设备。

当 I2C 控制器在从模式下工作时,它可以响应通用呼叫复位作为自身的软复位。

当接收到 2 字节序列时,I2C 控制器将生成软复位。通用呼叫复位将 I2C 控制器的主逻辑复位到空闲状态并释放 SCL 和 SDA 线(上拉)。

I3C 私有 DMA 控制器

I3C 控制器在开始以传输或接收模式工作时,可以使用私有 DMA 控制器访问内存。也就是说,CPU 或 SoC 上的任何其他主设备在适当的内存位置准备感兴趣的数据(或在接收数据场景下准备足够的内存空间)。

通过编程 I3C 控制器的相应 CMD_TX/DATA_TX/DATA_RX 使能位,可以启用 DMA 传输,前提是所有其他配置寄存器(如基地址、传输大小等)已正确配置。

总共支持 3 个通道传输(CMD_TX/DATA_TX/DATA_RX),可以通过编程 I3C 控制器内的相应配置和控制位来实现。为了避免一个通道的数据传输持续占用物理总线,3 个通道遵循循环仲裁方案。

使用 DMA 的连续通信

I2C 能够使用 DMA 继续通信。CMD 缓冲区、RX 缓冲区和 TX 缓冲区的 DMA 请求是独立生成的。

I2C DMA CMD 结构

[31:24]

[23:0]

CMD 代码

参数

DMA CMD 列表

CMD 名称

OP 代码

CMD 描述

I2C_CMD_START

32’h0000_0000

I2C 传输开始命令

I2C_CMD_STOP

32’h1000_0000

I2C 传输结束命令

I2C_CMD_RD_ACK

32’h2000_0000

I2C 接收数据并确认命令

I2C_CMD_RD_NACK

32’h3000_0000

I2C 接收数据并不确认命令

I2C_CMD_WR

32’h4000_0000

I2C 发送数据并等待确认命令

I2C_CMD_WAIT

32’h5000_0000

I2C 等待虚拟周期命令

I2C_CMD_RPT

32’h6000_0000

I2C 下一个命令重复命令

I2C_CMD_CFG

32’h7000_0000

I2C 配置命令

I2C_CMD_WAIT_EV

32’h0800_0000

I2C 等待 DMA 外部事件命令

I2C_CMD_WRB

32’h3800_0000

I2C 写字节命令

I2C_CMD_EOT

32’h4800_0000

信号传输结束

I2C_CMD_SETUP_UCA

32’h1800_0000

设置 RX 或 TX 通道起始地址

I2C_CMD_SETUP_UCS

32’h2800_0000

设置 RX 或 TX 通道传输大小+使能

SMBus 特性

系统管理总线 (SMBus) 是一个双线接口,各种设备可以通过它与彼此以及系统的其余部分通信。它基于 I2C 操作原理。SMBus 为系统和电源管理相关任务提供控制总线。

SMBus 涉及三种类型的设备:

  • 从设备

  • 主设备

  • 主机设备

I2C 可以配置为主设备或从设备,也可以配置为主机。

SMBus 命令协议

设备支持十一种命令协议。设备可以使用这十一种命令协议中的任何一种或全部进行通信。

地址解析协议 (ARP)

SMBus 从设备地址冲突可以通过为每个从设备动态分配新的唯一地址来解决。

从设备字节控制

SMBus 设备允许在从模式下进行 ACK 控制。

主机通知协议

SMBus 设备通过设置 I2C_ADVANCED_SETUP 寄存器中的 SMHEN 位来支持主机通知协议。

SMBus 警报

仅从设备可以通过 SMBALERT# 向主机发出信号,表示它想要通信。

数据包错误检查 (PEC)

数据包错误检查是通过在每条消息传输末尾附加数据包错误代码 (PEC) 来实现的。

超时

SMBus 定义了 10 KHz 的最小总线时钟频率 F5MB。SMBus 的最大时钟频率定义为 100 KHz。

中断

I3C 中断请求

中断标志

使能控制位

i2c_eot

int_ie[0]

i2c_arlost

int_ie[1]

i2c_slave_txe_int

int_ie[2]

i2c_slave_rxf_int

int_ie[3]

i2c_timeout_int

int_ie[4]

i3c_sir_int(slave_request_int)

int_ie[5]

i3c_hjr_int(hot_join_request_int)

int_ie[5]

i3c_smr_int(second_master_request_int)

int_ie[5]

i2c_dma_cmd_load_status

int_ie[6]

i2c_dma_rx_en_load_status

int_ie[7]

i2c_dma_tx_en_load_status

int_ie[8]

I3C 寄存器

I3C 中的寄存器偏移地址

偏移地址

寄存器名称

功能描述

0x24

STATUS

I2C 状态寄存器

0x28

I2C_TIMING

时序预分频器

0x2C

I2C_SETUP

I2C 设置配置寄存器

0x30

TXDATA

发送数据寄存器

0x34

RXDATA

接收数据寄存器

0x38

INT_IE

中断使能寄存器

0x3C

I2C_SLAVE_ADDRESS1

从设备地址

0x44

I2C_SLAVE_ADDRESS2

从设备地址

0x48

I2C_TIME_OUT

SCL 超时计数

0x4C

I3C_PID_LOW

从设备临时 ID[31:0]

0x50

I3C_PID_HIGH

从设备临时 ID[47:32]

0x54

I3C_MASTER_BCR

I3C 主设备总线特性寄存器

0x58

I3C_MASTER_DCR

I3C 主设备设备特性寄存器

0x5C

I3C_TSCO

I3C 设置时序

0x64

DMA_RX_DATASIZE

DMA RX 通道数据大小

0x68

DMA_TX_DATASIZE

DMA TX 通道数据大小

0x7C

TXFIFO_WM_CNT

TXFIFO 水位线级别

0x80

RXFIFO_WM_CNT

RXFIFO 水位线级别

0x98

DEBUG

用于系统调试的 I2C 内部信号

0x9C

IP_VERSION

I2C 控制器的 IP 版本

0xA0

CFG_START_SETUP_TIME

START 建立时间

0xA4

CFG_START_HOLD_TIME

START 保持时间

0xA8

CFG_SDA_SETUP_TIME

SDA 建立时间

0xAC

CFG_SDA_HOLD_TIME

SDA 保持时间

0xB0

CFG_SCL_HIGH_PERIOD

SCL 高电平周期(主模式)

0xB4

CFG_SCL_LOW_PERIOD

SCL 低电平周期(主模式)

0xB8

CFG_STOP_SETUP_TIME

STOP 建立时间

0xBC

CFG_BUS_FREE_TIME

STOP 和 START 条件之间的总线空闲时间

0xC0

I2C_RX_SADDR

RX 缓冲区基地址

0xC8

I2C_RX_SIZE

RX 缓冲区大小(字节)

0xCC

I2C_RX_CFG

RX 通道配置

0xD0

I2C_TX_SADDR

TX 缓冲区基地址

0xD8

I2C_TX_SIZE

TX 缓冲区大小(字节)

0xDC

I2C_TX_CFG

TX 通道配置字段

0xE0

I2C_CMD_SADDR

CMD 缓冲区基地址

0xE8

I2C_CMD_SIZE

CMD 缓冲区大小(字节)

0xEC

I2C_CMD_CFG

CMD 通道配置字段

0x100

I2C_ADVANCED_SETUP

I2C 高级特性设置配置寄存器

0x104

I2C_ADVANCED_STATUS

I2C 高级特性状态寄存器

寄存器描述

STATUS 寄存器

偏移地址: 0x24

STATUS 寄存器

字段

位

访问

复位值

描述

BUSY

0

RO

0x0

  • I2C 总线忙状态标志

  • 0: I2C 总线空闲

  • 1: I2C 总线数据传输进行中

ARB_LOST

1

W1C

0x0

  • I2C 仲裁丢失状态标志

  • 0: 无仲裁丢失错误

  • 1: 仲裁丢失错误

NACK_RECEPTION

2

W1C

0x0

  • 数据传输阶段(不包括地址阶段)的确认状态位

  • 0: 在 I2C 总线检测到 ACK

  • 1: 在 I2C 总线检测到 NACK

EOT

3

W1C

0x0

传输结束

BYTE_DONE

4

RO

0x0

当字节发送或接收完成时,硬件设置此位

TIME_OUT

5

W1C

0x0

当 SCL 线低电平时间大于配置数值时断言此位

I3C_SIR_STATUS

6

W1C

0x0

I3C 从设备中断请求中断

I3C_HJR_STATUS

7

W1C

0x0

I3C 热加入请求中断

I3C_SMR_STATUS

8

W1C

0x0

I3C 次级主控制器请求中断

I2C_SLAVE_RECEIVE

9

RO

0x0

  • 从设备接收模式

  • 1: 主设备向从设备发送写操作,从设备即将从主设备读取

  • 0: 无主设备写操作发生

I2C_SLAVE_TRANSMIT

10

RO

0x0

  • 从设备发送模式

  • 1: 主设备向从设备发送读操作,从设备即将向主设备写入

  • 0: 无主设备读操作发生

I3C_EOT_STATUS

11

W1C

0x0

I3C DMA 命令 EOT 中断

TXFIFO_EMPTY

12

RO

0x1

当 TX-FIFO 为空时断言此位

TXFIFO_FULL

13

RO

0x0

当 TX-FIFO 满时断言此位

I3C_BUS_CONFLICT

14

RO

0x0

当多主设备驱动总线时的 I3C 总线冲突

RXFIFO_EMPTY

15

RO

0x1

当 RX-FIFO 为空时断言此位

RXFIFO_FULL

16

RO

0x0

当 RX-FIFO 满时断言此位

I3C_RD64_BIT_DONE

17

W1C

0x0

在 I3C 模式下读取 64 位数据时指示字节完成

CFG_CMD_EN

18

RO

0x0

来自 DMA 核心的 CMD 通道使能握手信号

CFG_TX_EN

19

RO

0x0

来自 DMA 核心的 TX 通道使能握手信号

CFG_RX_EN

20

RO

0x0

来自 DMA 核心的 RX 通道使能握手信号

DMA_MODE_STATUS

21

RO

0x0

指示 I3C 在 DMA 模式下工作

DMA_CMD_LOAD_STATUS

22

W1C

0x0

指示 CMD 影子设置成功加载到主寄存器

DMA_RX_LOAD_STATUS

23

W1C

0x0

指示 RX 影子设置成功加载到主寄存器

DMA_TX_LOAD_STATUS

24

W1C

0x0

指示 TX 影子设置成功加载到主寄存器

TXFIFO_WM

25

RO

0x0

TX-FIFO 水位状态位

RXFIFO_WM

26

RO

0x0

RX-FIFO 水位状态位

ADDR_MATCH

27

W1C

0x0

  • I2C 总线地址阶段的确认状态

  • 0: 从设备不匹配地址并在 I2C 总线发送 NACK 响应

  • 1: 从设备匹配地址并在 I2C 总线发送 ACK 响应

BERR

28

W1C

0x0

当总线错误发生时设置此位为 1

MASTER_STATE

31:29

RO

0x0

  • 指示 I2C 内部状态机

  • 3’b000: 空闲

  • 3’b001: 开始

  • 3’b010: 读取

  • 3’b011: 写入

  • 3’b100: 确认

  • 3’b101: 等待

  • 3’b110: 停止

I2C_TIMING 寄存器

偏移地址: 0x28

I2C_TIMING 寄存器

字段

位

访问

复位值

描述

PRESC

31:0

RW

0xa

  • 此字段用于预分频 i2c_ker_ck 以生成时钟周期 tPRESC

  • t_PRESC = (PRESC+1) * ti2c_clk

I2C_SETUP 寄存器

偏移地址: 0x2C

I2C_SETUP 寄存器

字段

位

访问

复位值

描述

WORK_MODE

0

RW

0x0

  • I2C 核心工作模式选择

  • 1’b0: CPU 模式

  • 1’b1: DMA 模式

ENABLE

1

RW

0x0

  • CPU 模式下的 I2C 核心使能

  • 0: I2C 核心禁用

  • 1: I2C 核心使能

START

2

RW

0x0

  • 在 I2C 总线发送 START 条件

  • 0: I2C 总线中的 START 条件完成

  • 1: 在 I2C 总线发送 START 条件

STOP

3

RW

0x0

  • 在 I2C 总线发送 STOP 条件

  • 0: I2C 总线中的 STOP 条件完成

  • 1: 在 I2C 总线发送 STOP 条件

TRANSFER_DIRECTION

4

RW

0x0

  • 传输方向(主模式)

  • 1’b0: 主设备请求写传输

  • 1’b1: 主设备请求读传输

ACK

6

RW

0x1

  • 用于握手的确认位,用于主模式或从模式

  • 0: ACK

  • 1: NACK

SOFT_RESET

7

WO

0x0

对 I2C 核心逻辑的软复位命令

TIME_OUT_ENABLE

8

RW

0x0

  • SCL 线超时使能

  • 1’b0: 禁用 SCL 超时

  • 1’b1: 使能 SCL 超时

I2C_10BIT_ADDR_EN

9

RW

0x0

  • 10 位地址模式使能

  • 1’b0: 禁用 10 位地址模式(7 位模式)

  • 1’b1: 使能 10 位地址模式

I3C_RD_64BIT_EN

10

RW

0x0

  • 此位仅用于 I3C 模式

  • 1’b0: 禁用 I3C 主设备从从设备读取 8 字节

  • 1’b1: 使能 I3C 主设备从从设备读取 8 字节

ROLE_MODE

11

RW

0x0

  • I2C 控制器工作在主模式或从模式

  • 1’b0: 主模式

  • 1’b1: 从模式

I3C_MODE_EN

12

RW

0x0

  • 使能 IP 工作在 MIPI_I3C 模式或仅 I2C 模式

  • 1’b0: 禁用 MIPI_I3C 控制器

  • 1’b1: 使能 MIPI_I3C 控制器

PUSH_PULL_MODE

13

RW

0x0

  • SDA 线推挽使能

  • 1’b0: SDA 线工作在开漏模式

  • 1’b1: SDA 线工作在推挽模式

SCL_PULLUP_EN

14

RW

0x1

  • SCL 线上拉使能

  • 1’b0: 禁用 SCL 总线上拉电阻

  • 1’b1: 使能 SCL 总线上拉电阻

SDA_PULLUP_EN

15

RW

0x1

  • SDA 线上拉使能

  • 1’b0: 禁用 SDA 总线上拉电阻

  • 1’b1: 使能 SDA 总线上拉电阻

I3C_PARITY_MODE_EN

16

RW

0x0

  • SDA 线上的奇偶校验位

  • 1’b0: 在字节的最后一位之后不发送/接收奇偶校验位

  • 1’b1: 在字节的最后一位之后发送/接收奇偶校验位

CFG_DNF_NUM

21:18

RW

0x0

用于配置 SDA 和 SCL 输入上的数字噪声滤波器

CFG_AUTO_END

22

RW

0x0

  • 自动结束模式(主模式)

  • 0: 软件结束模式

  • 1: 自动结束模式

TXDATA 寄存器

偏移地址: 0x30

TXDATA 寄存器

字段

位

访问

复位值

描述

TXDATA

7:0

RW

0x0

发送数据

RXDATA 寄存器

偏移地址: 0x34

RXDATA 寄存器

字段

位

访问

复位值

描述

RXDATA

31:0

RO

0x0

接收数据寄存器

INT_IE 寄存器

偏移地址: 0x38

INT_IE 寄存器

字段

位

访问

复位值

描述

EOT_INT_IE

0

RW

0x0

最后传输中断使能

ARBITRATION_LOST_INT_IE

1

RW

0x0

仲裁丢失中断使能

TXFIFO_WM_INT_IE

2

RW

0x0

I2C TX-FIFO 水位中断使能

RXFIFO_WM_INT_IE

3

RW

0x0

I2C RX-FIFO 水位中断使能

TIME_OUT_ENABLE

4

RW

0x0

SCL 线超时中断使能

ADDRESS_MATCHED_INT_IE

5

RW

0x0

地址匹配中断使能

NACK_RECEPTION_INT_IE

6

RW

0x0

NACK 接收中断使能

I3C_INT_ENABLE

7

RW

0x0

I3C 中断使能

ERR_INE_IE

8

RW

0x0

错误中断使能

SBC_TCR_INE_IE

9

RW

0x0

从设备字节控制传输完成中断使能

PEC_BYTE_TC_INE_IE

10

RW

0x0

PEC 字节传输完成中断使能

DMA_CMD_LOAD_STATUS_INT_IE

11

RW

0x0

DMA 命令通道加载状态中断使能

DMA_RX_LOAD_STATUS_INT_IE

12

RW

0x0

DMA RX 通道加载状态中断使能

DMA_TX_LOAD_STATUS_INT_IE

13

RW

0x0

DMA TX 通道加载状态中断使能

I2C_SLAVE_ADDRESS1 寄存器

偏移地址: 0x3C

I2C_SLAVE_ADDRESS1 寄存器

字段

位

访问

复位值

描述

SLAVE_ADDRESS1

9:0

RW

0x0

从设备地址1

SLAVE_ADDRESS1_MASK

19:10

RW

0x3FF

从设备地址1 掩码寄存器

SLAVE_ADDRESS1_EN

31

RW

0x1

从设备地址1 使能

I2C_SLAVE_ADDRESS2 寄存器

偏移地址: 0x44

I2C_SLAVE_ADDRESS2 寄存器

字段

位

访问

复位值

描述

SLAVE_ADDRESS2

9:0

RW

0x0

从设备地址2

SLAVE_ADDRESS2_MASK

19:10

RW

0x3FF

从设备地址2 掩码寄存器

SLAVE_ADDRESS2_EN

31

RW

0x0

从设备地址2 使能

I2C_TIME_OUT 寄存器

偏移地址: 0x48

I2C_TIME_OUT 寄存器

字段

位

访问

复位值

描述

NUM

15:0

RW

0xffff

超时计数

I3C_PID_LOW 寄存器

偏移地址: 0x4C

I3C_PID_LOW 寄存器

字段

位

访问

复位值

描述

VALUE

31:0

RO

0x0

  • 主设备发送 ENTDAA 命令时从设备在 DAA 过程中的响应

  • 从设备临时 ID[31:0]

I3C_PID_HIGH 寄存器

偏移地址: 0x50

I3C_PID_HIGH 寄存器

字段

位

访问

复位值

描述

VALUE

31:0

RO

0x0

  • 主设备发送 ENTDAA 命令时从设备在 DAA 过程中的响应

  • [15:0]: 从设备临时 ID[47:32]

I3C_MASTER_BCR 寄存器

偏移地址: 0x54

I3C_MASTER_BCR 寄存器

字段

位

访问

复位值

描述

VALUE

7:0

RW

0x40

总线特性寄存器

I3C_MASTER_DCR 寄存器

偏移地址: 0x58

I3C_MASTER_DCR 寄存器

字段

位

访问

复位值

描述

VALUE

7:0

RW

0x0

设备特性寄存器

I3C_TSCO 寄存器

偏移地址: 0x5C

I3C_TSCO 寄存器

字段

位

访问

复位值

描述

TSCO

31:0

RW

0x1

  • SCL 上升后主设备驱动 SDA 线的时间

  • (时间单位: I3C 核心时钟周期)

DMA_RX_DATASIZE 寄存器

偏移地址: 0x64

DMA_RX_DATASIZE 寄存器

字段

位

访问

复位值

描述

DATASIZE

1:0

RW

0

  • DMA RX 通道的数据大小

  • 2’b00: 字节

  • 2’b10: 字

DMA_TX_DATASIZE 寄存器

偏移地址: 0x68

DMA_TX_DATASIZE 寄存器

字段

位

访问

复位值

描述

DATASIZE

1:0

RW

0

  • DMA TX 通道的数据大小

  • 2’b00: 字节

  • 2’b10: 字

TXFIFO_WM_CNT 寄存器

偏移地址: 0x7C

TXFIFO_WM_CNT 寄存器

字段

位

访问

复位值

描述

WM_CNT

3:0

RW

0

TXFIFO 水位线级别

RXFIFO_WM_CNT 寄存器

偏移地址: 0x80

RXFIFO_WM_CNT 寄存器

字段

位

访问

复位值

描述

WM_CNT

3:0

RW

0

RXFIFO 水位线级别

DEBUG 寄存器

偏移地址: 0x98

DEBUG 寄存器

字段

位

访问

复位值

描述

STATUS

14:0

RO

3

用于系统调试的 I2C 内部信号

IP_VERSION 寄存器

偏移地址: 0x9C

IP_VERSION 寄存器

字段

位

访问

复位值

描述

VERSION_NUM

31:0

RO

0x0003_0002

I2C 控制器的 IP 版本

CFG_START_SETUP_TIME 寄存器

偏移地址: 0xA0

CFG_START_SETUP_TIME 寄存器

字段

位

访问

复位值

描述

START_SETUP_TIME

31:0

RW

0x32

用于在主模式下生成 SCL 高电平和 SDA 下降沿之间的延迟

CFG_START_HOLD_TIME 寄存器

偏移地址: 0xA4

CFG_START_HOLD_TIME 寄存器

字段

位

访问

复位值

描述

START_HOLD_TIME

31:0

RW

0x32

用于在主模式下生成 SDA 下降沿和 SCL 下降沿之间的延迟

CFG_SDA_SETUP_TIME 寄存器

偏移地址: 0xA8

CFG_SDA_SETUP_TIME 寄存器

字段

位

访问

复位值

描述

SDA_SETUP_TIME

31:0

RW

0x5

用于在传输模式下生成 SDA 边沿和 SCL 上升沿之间的延迟

CFG_SDA_HOLD_TIME 寄存器

偏移地址: 0xAC

CFG_SDA_HOLD_TIME 寄存器

字段

位

访问

复位值

描述

SDA_HOLD_TIME

31:0

RW

0x4

用于在传输模式下生成 SDA 边沿和 SCL 下降沿之间的延迟

CFG_SCL_HIGH_PERIOD 寄存器

偏移地址: 0xB0

CFG_SCL_HIGH_PERIOD 寄存器

字段

位

访问

复位值

描述

SCL_HIGH_PERIOD

31:0

RW

0x32

用于在主模式下生成 SCL 高电平周期

CFG_SCL_LOW_PERIOD 寄存器

偏移地址: 0xB4

CFG_SCL_LOW_PERIOD 寄存器

字段

位

访问

复位值

描述

SCL_LOW_PERIOD

31:0

RW

0x32

用于在主模式下生成 SCL 低电平周期

CFG_STOP_SETUP_TIME 寄存器

偏移地址: 0xB8

CFG_STOP_SETUP_TIME 寄存器

字段

位

访问

复位值

描述

STOP_SETUP_TIME

31:0

RW

0x32

用于在主模式下生成 STOP 建立时间

CFG_BUS_FREE_TIME 寄存器

偏移地址: 0xBC

CFG_BUS_FREE_TIME 寄存器

字段

位

访问

复位值

描述

BUS_FREE_TIME

31:0

RW

0x32

用于在主模式下生成 STOP 和 START 条件之间的总线空闲时间

I2C_RX_SADDR 寄存器

偏移地址: 0xC0

I2C_RX_SADDR 寄存器

字段

位

访问

复位值

描述

RX_SADDR

31:0

RW

0x0

RX 缓冲区基地址

I2C_RX_SIZE 寄存器

偏移地址: 0xC8

I2C_RX_SIZE 寄存器

字段

位

访问

复位值

描述

RX_SIZE

19:0

RW

0x0

RX 缓冲区大小(字节)

I2C_RX_CFG 寄存器

偏移地址: 0xCC

I2C_RX_CFG 寄存器

字段

位

访问

复位值

描述

CONTINUOUS

0

RW

0x0

RX 通道连续模式

EN

1

RW

0x0

RX 通道使能和开始传输

PENDING

2

RO

0x0

RX 传输在队列中挂起状态标志

CLR

3

WO

0x0

RX 通道清除和停止传输

I2C_TX_SADDR 寄存器

偏移地址: 0xD0

I2C_TX_SADDR 寄存器

字段

位

访问

复位值

描述

TX_SADDR

31:0

RW

0x0

TX 缓冲区基地址

I2C_TX_SIZE 寄存器

偏移地址: 0xD8

I2C_TX_SIZE 寄存器

字段

位

访问

复位值

描述

TX_SIZE

19:0

RW

0x0

TX 缓冲区大小(字节)

I2C_TX_CFG 寄存器

偏移地址: 0xDC

I2C_TX_CFG 寄存器

字段

位

访问

复位值

描述

CONTINUOUS

0

RW

0x0

TX 通道连续模式

EN

1

RW

0x0

TX 通道使能和开始传输

PENDING

2

RO

0x0

TX 传输在队列中挂起状态标志

CLR

3

WO

0x0

TX 通道清除和停止传输

I2C_CMD_SADDR 寄存器

偏移地址: 0xE0

I2C_CMD_SADDR 寄存器

字段

位

访问

复位值

描述

CMD_SADDR

31:0

RW

0x0

CMD 缓冲区基地址

I2C_CMD_SIZE 寄存器

偏移地址: 0xE8

I2C_CMD_SIZE 寄存器

字段

位

访问

复位值

描述

CMD_SIZE

19:0

RW

0x0

CMD 缓冲区大小(字节)

I2C_CMD_CFG 寄存器

偏移地址: 0xEC

I2C_CMD_CFG 寄存器

字段

位

访问

复位值

描述

CONTINUOUS

0

RW

0x0

CMD 通道连续模式

EN

1

RW

0x0

CMD 通道使能和开始传输

PENDING

2

RO

0x0

CMD 传输在队列中挂起状态标志

CLR

3

WO

0x0

CMD 通道清除和停止传输

I2C_ADVANCED_SETUP 寄存器

偏移地址: 0x100

I2C_ADVANCED_SETUP 寄存器

字段

位

访问

复位值

描述

SBCEN

1

RW

0x0

从设备字节控制模式使能

PECEN

2

RW

0x0

数据包错误检查使能

PECIRQ

3

W1S

0x0

数据包错误检查字节请求标志

SMDEN

4

RW

0x0

SMBus 默认地址使能

SMHEN

5

RW

0x0

SMBus 主机地址使能

TIDLEN

6

RW

0x1

SMBus 空闲超时或 SCL 低电平超时使能

TEXTEN

7

RW

0x0

SMBus 拉伸 SCL 低电平超时使能

TEXT_NUM

19:8

RW

0x0

拉伸 SCL 低电平超时计数

ALERTEN

20

RW

0x0

SMBus 警报传输使能

I2C_ADVANCED_STATUS 寄存器

偏移地址: 0x104

I2C_ADVANCED_STATUS 寄存器

字段

位

访问

复位值

描述

PECERR

0

W1C

0x0

数据包错误检查状态

PECBYTE

8:1

RO

0x0

数据包错误检查字节请求标志

ALERT_STUS

9

W1C

0x0

SMBus 警报状态

SBC_TCR

10

W1C

0x0

从设备字节控制传输完成标志

PEC_BYTE_TC

11

W1C

0x0

PEC 字节控制传输完成标志