什么是通用调用地址以及它在 I2C 中的用途是什么?

Gün*_*ğlu 4 i2c

我想知道 I2C 中的通用调用地址 (0x00) 是什么。如果我们有一个master和一些slave,我们可以通过我们的master用这个地址与这些slave进行通信吗?

Vov*_*ium 5

I2C 规范 v.6 ( https://www.i2c-bus.org/specification/ ) 的第 3.2.10 节清楚地描述了通用调用的目的。

3.2.10广播地址

通用调用地址用于同时寻址连接到 I2C 总线的每个设备。但是,如果设备不需要通用调用结构中提供的任何数据,则它可以忽略该地址。如果设备确实需要来自通用调用地址的数据,则它充当从接收器。主设备实际上并不知道有多少设备响应广播呼叫。第二个和后续字节由每个能够处理该数据的从接收器接收。无法处理这些字节之一的从机必须忽略它。广播调用地址的含义始终在第二个字节中指定(参见图 30)。

您可以使用它与您的奴隶进行通信,但存在三个限制。

  1. 一般调用只能向从机写入数据,不能读取数据。
  2. 每个从站都应该接收广播呼叫,您不能用它来寻址特定设备,或者您必须在广播呼叫消息正文中对设备地址进行编码,然后在从站中对其进行解码。
  3. 有标准的通用呼叫消息格式。您不应该将标准代码用于您自己的函数。