Что такое общий адрес вызова и какова его цель в I2C? - PullRequest
0 голосов
/ 07 февраля 2019

Интересно, что такое общий адрес вызова в I2C (0x00).Если у нас есть мастер и несколько рабов, можем ли мы общаться с этими рабами через нашего мастера по этому адресу?

1 Ответ

0 голосов
/ 09 февраля 2019

Раздел 3.2.10 спецификации I2C v.6 (https://www.i2c -bus.org / спецификация / ) четко описывает цель общего вызова.

3.2.10 Общий адрес вызова

Общий адрес вызова предназначен для одновременной адресации каждого устройства, подключенного к шине I2C.Однако, если устройству не нужны какие-либо данные, предоставленные в общей структуре вызовов, оно может игнорировать этот адрес.Если устройству требуются данные от общего адреса вызова, оно ведет себя как подчиненный приемник.Мастер на самом деле не знает, сколько устройств реагирует на общий вызов.Второй и последующие байты принимаются каждым ведомым приемником, способным обрабатывать эти данные.Раб, который не может обработать один из этих байтов, должен игнорировать его.Значение общего адреса вызова всегда указывается во втором байте (см. Рисунок 30).

Вы можете использовать его для связи со своими подчиненными, но применяются три ограничения.

  1. Общий вызов может только записывать данные в ведомое устройство, но не читать.
  2. Каждый ведомый должен получать общий вызов, вы не можете адресовать конкретное устройство с ним, или вам необходимо кодировать адрес устройства в общем теле сообщения о вызове, ирасшифруйте его в подчиненном.
  3. Существует стандартный формат сообщений общего вызова.Вы не должны использовать стандартные коды для своих собственных функций.
...