К однопроводной шине I²C (IIC) можно подключить несколько датчиков TMP117, но их количество ограничено уникальностью I²C-адресов.

1. Адресация TMP117

Даташит TMP117 указывает, что у этого датчика 8 возможных I²C-адресов, которые задаются через вывод ADDR (A0):

ADDR (A0) I²C Адрес (7-bit) I²C Адрес (8-bit, запись)
Подключен к GND 0x48 (72) 0x90
Подключен к V+ 0x49 (73) 0x92
Подключен к SDA 0x4A (74) 0x94
Подключен к SCL 0x4B (75) 0x96
Оставлен в воздухе (не подключен) 0x4C (76) 0x98
(Другие комбинации) 0x4D0x4F (77–79) 0x9A0x9E

Таким образом, максимум 8 датчиков TMP117 можно подключить к одной шине I²C, если каждый из них будет иметь уникальный адрес.

2. Практические ограничения

  • Разводка PCB: если датчики расположены близко, можно использовать перемычки или резисторы для настройки ADDR.

  • Паразитная ёмкость: большое количество устройств на одной линии может ухудшить сигнал (рекомендуется использовать буферы, если датчиков много).

  • Драйверы и библиотеки: убедитесь, что ваша программа корректно обрабатывает все адреса.

Вывод

Максимум 8 датчиков TMP117 можно подключить к одной шине I²C, если правильно настроить вывод ADDR для каждого.

Вроде как 7 бит, то это 128 вариантов, но нет, в протоколе I²C используется 7-битная адресация, поэтому максимальное количество уникальных адресов — 128 (от 0x00 до 0x7F). Однако не все из них доступны для датчиков, так как часть зарезервирована под системные команды.

Почему у TMP117 только 8 адресов?

Хотя в I²C теоретически может быть до 127 устройств (7 бит), конкретно TMP117 использует только 8 вариантов адреса, потому что:

  • Адрес датчика фиксируется первыми 4 битами (заводская настройка Texas Instruments).

  • Оставшиеся 3 бита задаются через вывод ADDR (A0).

  • Таким образом, 2^3 = 8 комбинаций.

Разбор адресов TMP117

В даташите указаны 8 возможных адресов (от 0x48 до 0x4F):

Состояние вывода ADDR (A0) 7-битный адрес (hex) 8-битный (для записи)
Подключен к GND 0x48 0x90 (запись)
Подключен к V+ 0x49 0x92
Подключен к SDA 0x4A 0x94
Подключен к SCL 0x4B 0x96
Не подключен (NC) 0x4C 0x98
(Другие комбинации*) 0x4D0x4E0x4F 0x9A0x9C0x9E

*Некоторые комбинации могут быть недоступны в зависимости от подключения.

Можно ли подключить больше 8 TMP117?

Нет, потому что:

  1. Аппаратное ограничение: TMP117 поддерживает только 8 адресов.

  2. Логическое ограничение I²C: даже если бы датчик поддерживал больше адресов, на практике >10 устройств на шине могут вызвать проблемы с нагрузкой (ёмкость, сопротивление).

Как подключить больше датчиков?

Если нужно больше 8 датчиков:

  1. Использовать несколько шин I²C (например, на разных GPIO у микроконтроллера).

  2. Применить мультиплексор I²C (PCA9548, TCA9548A) – позволяет выбрать одну из нескольких шин.

Вывод

  • К одной линии I²C можно подключить до 8 TMP117 (если у каждого уникальный адрес).

  • 8-битный адрес в I²C – это миф: реально используется 7 бит (+1 бит на чтение/запись).

  • Больше 8 – только с мультиплексором или отдельными шинами.

ВАЖНО!!! Даже если подключать датчики через мукльтиплексор, то придется организовывать 8 линий на нем, то есть он будет получать условно один входящий сигнал, а дальше работать с 8 реальными линями от него.