打印
[开发资料]

I2C 状态码

[复制链接]
84|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
forgot|  楼主 | 2024-6-25 17:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
I2C 总线状态通过 I2C 状态寄存器 I2Cx_STAT 来标识,共 26 个正常接收或发送状态,和 2 个特殊状态(0xF8:I2C总线无可用信息;0x00:总线错误)。
I2C无论处于主机发送、主机接收、从机接收、从机发送或广播接收模式,当状态寄存器I2Cx_STAT的内容改变时,都会将 I2Cx_CR.SI 置位,且产生 I2C 中断。
I2C 状态码如下表所示:

主机发送模式:
08H 已发送起始信号
10H 已发送重复起始信号
18H 已发送 SLA+W,已接收 ACK
20H 已发送 SLA+W,已接收 NACK
28H 已发送 I2Cx_DR 中的数据,已接收 ACK
30H 已发送 I2Cx_DR 中的数据,已接收 NACK
38H 主机在发送 SLA+W 阶段或者发送数据阶段丢失仲裁


使用特权

评论回复
沙发
forgot|  楼主 | 2024-6-25 17:07 | 只看该作者
主机接收模式
08H 已发送起始信号
10H 已发送重复起始信号
38H 主机在发送 SLA+R 阶段或者回应 NACK 阶段丢失仲裁
40H 已发送 SLA+R,已接收 ACK
48H 已发送 SLA+R,已接收 NACK
50H 已接收数据字节,ACK 已返回
58H 已接收数据字节,NACK 已返回

使用特权

评论回复
板凳
forgot|  楼主 | 2024-6-25 17:07 | 只看该作者
从机接收模式
60H 已接收自身的 SLA+W,已返回 ACK
68H 当主机时在 SLA+ 读写阶段丢失仲裁,已接收自身的 SLA+W,已返回 ACK
80H 前一次寻址使用自身从地址,已接收数据字节,已返回 ACK
88H 前一次寻址使用自身从地址,已接收数据字节,已返回 NACK
A0H 已寻址从机等待接收数据时,接收到停止条件或重复起始条件

使用特权

评论回复
地板
forgot|  楼主 | 2024-6-25 17:07 | 只看该作者
从机发送模式
A8H 已接收自身的 SLA+R,已返回 ACK
B0H 当主机时在 SLA+ 读写阶段丢失仲裁,已接收自身 SLA+R,已返回 ACK
B8H 已发送数据字节,已接收 ACK
C0H 已发送数据字节,已接收 NACK
C8H 从机最后一个数据字节已被发送,并已接收 ACK

使用特权

评论回复
5
forgot|  楼主 | 2024-6-25 17:07 | 只看该作者
广播接收模式
70H 已接收广播地址(0x00),已返回 ACK
78H 当主机时在 SLA+ 读写阶段丢失仲裁,已接收广播地址,已返回 ACK
90H 前一次寻址使用广播地址,已接收数据字节,已返回 ACK
98H 前一次寻址使用广播地址,已接收数据字节,已返回 NACK
A0H 已寻址从机等待接收数据时,接收到停止条件或重复起始条件

使用特权

评论回复
6
forgot|  楼主 | 2024-6-25 17:08 | 只看该作者
其它模式
F8H 无可用的相关状态信息,I2Cx_CR.SI=0
00H 传输过程出现总线错误,或外部干扰使 I2C 进入未定义的状态

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1447

主题

11649

帖子

51

粉丝