Niesamowite długości brzmienia, takie jak 10,25 i 100 m są całkowicie możliwe, i często używam tej metody (z UART nie I2C, ale metoda stoi), gdy muszę szybko poskładać rzeczy. Jednak nie jest to najlepszy sposób.
Kluczem jest poznanie progu napięcia wejściowego. Upewnij się, że spadek napięcia w przewodzie uziemienia jest znacznie poniżej tego, w przeciwnym razie nadajnik o wysokim potencjale uziemienia nie będzie w stanie wystarczająco obniżyć napięcia. Brak tolerancji dla przesunięć uziemienia IMHO jest największym powodem korzystania z RS485 lub nadajników-odbiorników (I2C przez CAN jest wspomniany w kilku uwagach dotyczących zastosowania).
W idealnym przypadku wszystkie urządzenia będą miały własną brodawkę na ścianie i baterię, a między przewodami uziemienia nie będzie przesyłana żadna moc.
Ale weźmy na przykład CAT5. CAT5 nie może być wyższy niż 52pf / m lub nie jest to CAT5.
100 m kabla 52pf ma pojemność 5200pf lub 5,2nf.
5,2n razy 20 kiloomów (pullup) daje stałą czasową około 104 mikrosekund. To ogranicza prędkość do około 10 kHz.
Używając podciągnięć 2,2kohm, prawdopodobnie możesz dostać się do 100 kHz.
Słyszałem, że urządzenia powinny mieć rezystor na SDL i SCK, ze względu na duże obciążenie pojemnościowe, które napędzają, około 180 lub 200 omów.
Ale szczerze mówiąc, I2C wcale nie nadaje się na długie dystanse. Transceiver CAN lub RS485 używane z normalnym UART to solidne rozwiązanie z bardzo dobrą ochroną przed awarią, odpornością na wyładowania elektrostatyczne, prędkością, odległością itp., Za cenę dolara za chip lub mniej więcej, przesunięcia uziemienia nie mają prawie tak dużego znaczenia, że jesteś swobodnie przenosić energię wraz z danymi.
Jedynym minusem jest to, że nadajnik-odbiornik może osiągnąć transmisję 70 mA, a 1 lub 2ma tylko nasłuchuje, więc I2C lub bezpośredni TTART UART mogą być przydatne w sytuacjach ekstremalnie niskiego poboru mocy, ale zastanów się, ile czasu faktycznie spędzasz na wysyłaniu.