I2C2iCB
简介
Nuclei I2C2ICB 使用I2C协议向ICB总线发送读写命令,并从ICB总线接收响应。它支持I2C协议的标准模式。
主要特性
I2C2ICB的主要特性如下:
向ICB总线发送写入和读取命令,包括地址和数据。
支持发送64位ICB总线地址。
接收来自ICB总线的响应,包括数据和错误。
默认支持I2C协议的标准模式。
I2C2ICB的CLK和SCL频率应满足:f_clk > 160 * f_scl
支持SCL和SDA数字噪声滤波器。
功能描述
用户应先启用I2C2ICB接口(清除i2c2icb_dis),然后该接口将等待启动信号(当SCL为高电平且SDA出现下降沿时 START和STOP,第8页)。在接收到启动信号后,用户应发送8位命令(命令,第10页)。整个传输完成后,需发送停止信号(SCL为高电平且SDA出现上升沿 START和STOP)。
I2C2ICB开始和停止timing
ICB总线的读取流程如下:
注意:如果您无需访问64位icb地址,可直接跳至第5步。
发送ICB高地址[63:32]:
开始。
发送读取地址命令(0x72)。
发送32位地址数据,第1字节为地址[31:24],第2字节为地址[23:16],第3字节为地址[15:8],最后一字节为地址[7:0]。
停下。
发送ICB低地址[31:0]:
开始。
发送读取地址命令(0x78)。
发送32位地址数据,第1字节为地址[31:24],第2字节为地址[23:16],第3字节为地址[15:8],最后一字节为地址[7:0]。
停下。
获取ICB响应:
查询状态(步骤如下所述),您应持续查询,直至收到成功状态。
开始。
发送接收数据命令(0x75)。
接收4字节数据,第1字节为data[31:24],第2字节为data[23:16],第3字节为data[15:8],最后1字节为data[7:0]。
停止。
查询状态的流程如下:
开始。
发送查询命令(0x71)。
接收4字节状态,仅使用最后两位比特来指示状态,如下表所示 状态(第9页)。
bit |
Description |
|---|---|
1 |
总线错误: 1: 存在总线错误。 0: 无总线错误。 |
0 |
是否收到响应: 1: 已收到响应。 0: 未收到响应。 |
从ICB总线写入
向ICB总线写入的流程描述如下:
发送ICB W数据:
开始。
发送写数据命令(0x74)。
发送32位数据,第1字节为data[31:24],第2字节为data[23:16],第3字节为data[15:8],最后一字节为data[7:0]。
停止。
注意:如果您无需访问64位icb地址,可直接跳至第9步。
发送ICB高地址[63:32]:
开始。
发送写地址命令(0x72)。
发送32位地址数据,第1字节为地址[31:24],第2字节为地址[23:16],第3字节为地址[15:8],最后一字节为地址[7:0]。
停下。
发送ICB低地址[31:0]:
开始。
发送写地址命令(0x70)。
发送32位地址数据,第1字节为地址[31:24],第2字节为地址[23:16],第3字节为地址[15:8],最后一字节为地址[7:0]。
停下。
获取ICB响应
查询状态(步骤如上所述查询流程),应持续查询,直至收到成功状态。
所有命令的说明如下:
Code |
Command |
|---|---|
0x70 |
准备发送写低地址命令。 |
0x71 |
查询状态。 |
0x72 |
准备发送写/读高地址命令。 |
0x74 |
准备发送写数据命令。 |
0x75 |
准备从ICB总线接收数据命令。 |
0x78 |
准备发送读低地址命令。 |
注意: 此接口无法控制SCL;当i2c2icb_dis为高电平(禁用)时,SCL将保持高电平。