Резисторы подтяжки тянут к плюсу, а не к земле. Важнее здесь SDA - это двунаправленная линия. Обычный мультиметр M890G является RC- метром. L-метр более экзотическая штука.
если хочется "правильное хорошее решение", то непонятно. нафига вы обсуждаете какой-то убогий колхоз на коленке... Ставьте мультиплексоры I2C с удлиннителями и не парьте никому мозг. Если "цена не имеет значения" - к чему вообще это обсуждение? Добавка - а если на каждой плате по своей атмеге328 - то вообще все просто. соединяете узлы по RS485 и будет работать хоть на расстоянии в сотню метров
А что заставляет пользоваться интерфейсом I2C? Я понял, что ТЗ составляете вы себе сами. Возьмите те же копеечные STM8, ATTiny, PICушки, 8ножечные, и повесьте на UART. Уж точно на 10 метров дотянете, даже просто с 3В уровнем.
Ничто не заставляет. По UART можно соединять сразу несколько устройств, а не 2 шт? где про это можно почитать?
если только передавать и не читать ответов - да хоть сто. Но это такой же колхоз, как ваша задумка с I2C правильнее использовать RS485 - это развитие того же UART, только специально модифицированный для работы на большие расстояния и подключения многих устройств
Самый колхоз на мой взгляд - это громоздкие решения с множеством ненужных элементов и т д. Если дисплеи, нанизанные на I2C один за другим, работать будут - это лучшее решение. Если нет, тогда уже искать другое. конечно. Но платы, где будут дисплеи, ещё и несколько датчиков каждая содержит, поэтому нужна возможность ДВУХСТОРОННЕЙ связи. Либо от всех датчиков тянуть лапшу - десятки проводов, до основной платы мастера.
и опять же - надо будет RS485 кабель тянуть к каждой плате отдельный? или от одной к другой можно на одну линию нанизывать? у меня же платы расположены в одну линию одна за другой
тогда вообще не понятно, зачем вы хотите ДОПОЛНИТЕЛЬНО к этой связи еще и I2C протянуть. Оставьте только RS485 Нанизывать Причем всего два провода, даже питание и GND от платы к плате тянуть не надо
Это же, как я понял, коммерческий проект? - тогда подобный подход, не побоюсь такого слова - это глупость. Допустим, 7 дисплеев на одной линии I2C у вас запустятся. Но так как стандарт этого не гарантирует - совсем не факт, что они будут работать у клиентов, в другой конфигурации. с другими внешними помехами... и тд На практике вы будете завалены жалобами. что устройство работает неустойчиво или не работает совсем и в результате, уверен, все равно откажетесь от этой затеи
Изначальная задумка была - на каждой плате свой процессор от ардуины, к нему подключаются датчики. Процессор и экран подключаются в общую шину I2C как слейвы. А мастер устройство - основная плата, будет считывать с этих плат по I2C данные с датчиков и передавать нужную информацию на экраны. Когда была такая идея - не знал про жёсткие ограничения на длину I2C. Почитаю про RS485, спасибо!
Пока не коммерческий - пока хобби. Если бы был коммерческий - разрабатывали бы какие-нибудь нанятые электронщики Пока сам придумываю - мне это всё очень интересно, но знаний мало. А если уж всё получится и будет работать, возможно даже некоторое количество устройств будет продано - не сильно большое
Чтоб не иметь проблем (и не заморачиваться, какие там выхода - полумосты или открытые коллекторы ?) лучше ставьте подтяжки на обеих линиях. ОДНУ ПАРУ резисторов по 1Ком на всю шину. В каком месте (...географически...) их ставить - разницы нет. Но чтоб не зависеть от падения напряжения в линии питания - лучше ставить прямо возле Ардуины. .
цеплял 10 устройств на одну шину - меньше 300 пф - без потерь - емкость влияет на фронта импульсов - чем выше емкость тем затянутее