РЕДАКТИРОВАТЬ: Это повторялось несколько раз, так что вкратце: да, хорошо известно, что не существует «стандарта» для соединителей между устройствами I2C, но, безусловно, это сообщество может сформулировать список «руководящих» пунктов для принятия такие межсоединения, основанные на поведении сигнала, минимизации шума и уменьшении риска из-за неправильных соединений.
NXP определили я понимаю, стандарт I2C без указания разводки для разъемов I2C. Единственное руководство от NXP, по-видимому, заключается в упоминании размещения заземления и / или Vss между SDA и SCL, если Vss / Gnd переносятся через межсоединение.
Приобретая различные модули I2C, я получил множество выводов I2C, и мне нужно было следить за различными маленькими прокладками для переключения ленточных кабелей, которые я должен был для них сделать.
например
- Моно OLED модуль: SCL, SDA, GND, 5V (очевидно, не идеальный, так как часы и данные находятся рядом друг с другом.
- Щит датчика для Arduino: SDA, SCL, GND, 5 В (опять же не идеально, плюс переключаемый SCL / SDA)
- Цветной ЖК-модуль: SCL, GND, 5V, SDA (ууу!)
- Безымянный I2C-повторитель: SCL, 5V, GND, SDA (ой, они поменяли выводы питания! Почти выпустили волшебную дымку.)
Итак, мой вопрос заключается в следующем :
есть ли окончательное / авторитетное руководство для последовательности выводов 4-контактного разъема I2C, которую следует использовать, когда Vss и GND должны передаваться от хоста к устройству?
Если это не так, существует ли какой-либо каталог, хотя и неполный, модулей / устройств I2C, в котором содержится распиновка каждого из них?
Пояснение: ищем руководящие принципы, такие как «поставить VSS ближе к SCL, потому что ...», а не определенный стандарт, который явно не существует.
источник
Ответы:
Я недавно свернул свой собственный, насколько разъемы I2C идут. Сам разъем не очень важен, сейчас я просто использую 100-миллиметровый заголовок (как правило, женский на плате, поэтому он не такой уж и трогательный, когда не подключен), но подойдет любой 4-контактный разъем. Кроме того, я использую P82B715от TI в качестве удлинителя шины I2C. Это устраняет проблемы с емкостью, связанные с запуском платы I2C, которая, как говорили люди, изначально не предназначалась для I2C. Я пробовал много разных комбинаций, как в приведенных вами примерах, и не заметил абсолютно никакой разницы в производительности. Я полагаю, что это потому, что I2C относительно медленный, помехи между SDA и SCL не являются большой проблемой. В основном время нарастания напряжений (когда возникнут помехи) на шине намного меньше, чем длина бита. Так что, возможно, это не то, что вы хотите услышать, но это предоставляет больше возможностей. Лично я пошел с [VCC, SDA, GND, SCL], чтобы его можно было легко маршрутизировать в / из этого чипа, а также быть невосприимчивым к смешиванию VCC / GND при подключении в обратном направлении.
источник
Когда она была впервые установлена, шина I2C (Inter-Integrated Circuit) предназначалась только для подключения микросхем на одной сборке печатной платы. Он никогда не предназначался для использования на кабелях для соединения нескольких плат вместе, и поэтому никакие разъемы для этой цели не были определены.
Мне известны только «стандартные» внешние интерфейсы на основе I2C - это недолговечный ACCESS.bus для подключения устройств пользовательского интерфейса к компьютерам и канал данных VESA Display, используемый для получения информации о мониторе через разъемы VGA, DVI и HDMI.
источник
Нет стандартного вывода, нет стандартного разъема. Стандарт I2C не поддается подобным вещам. Это указывается на уровне шины, а не на уровне устройства. Например, когда вы хотите подключить устройство I2C, вы знаете по стандарту, есть ли подтягивания на хосте или на устройстве? Нет. Множество других вещей, которые вы не знаете, например, где ваши кабельные емкости, каким должен быть Vcc ....
Фактически, есть даже устройства I2C, которые нуждаются в дополнительных линиях для прерываний и других простых старых цифровых входов / выходов. Как добавить их в стандарт, если вы не можете договориться о том, сколько пинов вам нужно?
В итоге, если вы ищете мобильность и стабильность в своих межсоединениях, I2C и SPI - это не то, что вам нужно.
источник
Многие люди используют какой-то разъем для передачи сигналов I²C и питания между двумя печатными платами. Например,
Некоторые общие советы по переносу сигналов I²C на большие расстояния:
PS: я вижу, что Википедия: I²C Цепь взаимосвязи связана с этим вопросом.
источник
Несмотря на то, что нет распиновки I²C или стандарта разъема, есть довольно много мест, которые используются I²C, которые стандартизированы. На ум приходят модули памяти (DIMM, SO-DIMM), видеоразъемы ( DDC в DVI , VGA ) и SM-Bus (да, их веб-страница выглядит как нечто, созданное ребенком в середине 90-х). В частности, разъем SM-Bus имеет ключ и содержит только I²C и питание, но SM-Bus накладывает дополнительные ограничения, поэтому технически не каждое устройство I²C должно быть подключено к реальной SM-Bus. Также есть еще несколько фирменных разъемов, таких как датчики Lego NXT.
источник
Там нет стандарта.
Там нет общей практики.
Что касается вопросов для самостоятельного решения, что делать:
источник
Как обычно для любого поста, спрашивающего о том, почему что-то стандартизировано [nt]:
из XKCD
источник