P82B715, czyli i2c na długim przewodzie

Magistrala i2c została zaprojektowana do łączenia urządzeń przewodami o długości do kilkudziesięciu centymetrów. Jej pełna nazwa to Inter-Integrated Circuit, czyli „między układami scalonymi”. Z założenia ma ona więc łączyć podzespoły w obrębie jednego urządzenia – czujniki, extendery wejść/wyjść, zegary RTC. Jest jednak sprytny sposób by ominąć to ograniczenie.

Dotychczas w większości projektów stosowałem magistralę 1wire. Według różnych źródeł pracuje ona prawidłowo na przewodach o długości przekraczającej 100 metrów. Kiedy jednak chciałem rozbudować moje stacje meteo o kolejne czujniki, a także korzystać dodatkowych funkcji obecnie używanych musiałem pomyśleć o przejściu na i2c.

Ale przecież maksymalna długość przewodów i2c nie powinna przekraczać około 1 metra. Limit długości waha się, według różnych źródeł, od 40cm do 2 metrów i jest uzależniony od prędkości transmisji. Niekiedy jednak duża prędkość i2c (100kHz) jest potrzebna, lub nie ma możliwości jej zmiany. Tutaj z pomocą przychodzi bufor P82B715 produkcji Texas Instruments lub NXP.

I2c jest bardzo narażone na wzrost pojemności elektrycznej przewodów oraz podłączonych urządzeń. W dokumentacji jest ona opisywana jako maksymalnie 470pF. Dalszy wzrost pojemności przewodów powoduje wolniejsze narastanie sygnału od „zera” do „jedynki”, lub opadanie „do zera”. Po przekroczeniu pewnego progu, sygnał nie nadąża narosnąć do poziomu, odczytywanego jako stan wysoki. Wtedy mogą pojawiać się błędy w transmisji, lub całkowite jej przerwanie. P82B715 pozwala około 10x zwiększyć maksymalną pojemność elektryczną całej magistrali, poprzez dziesięciokrotne wzmocnienie prądu płynącego przez przewody po stronie buforowanej.

Ten układ, dostępny w obudowach DIP8 i SO8 stosuje się po obu stronach przewodu i2c – blisko urządzeń master i slave. Pomiędzy nimi urządzenia są połączone „buforowanym i2c”, który może być dowolnej topologii, z dowolną ilością slave’ów (oczywiście przy zachowaniu limitu pojemności.

p82b715

  • P82B715 jest kompatybilny z i2c oraz wszystkimi jego pochodnymi: SMBus, PMBus, DDC.
  • Nie ma ograniczenia częstotliwości pracy (standardowe 100kHZ, przyspieszone 400kHZ)
  • Oferuje dwukierunkowe działanie
  • Może być zasilane napięciem od 3V do 12V
  • Nie pozwala na translację poziomu napięć (można zastosować do tego celu proste układu na tranzystorach mos lub wyspecjalizowane izolatory-translatory, np ADUM1250)
  • Można go nabyć w cenie około 4.5za 10 sztuk na portalu aliexpress.com. W Polsce, w detalu jest dostępny za około 12zł za sztukę.
  • Biblioteki opisywanego bufora, oraz izolatora ADUM1250 są dostępne w moich częściach

Używając kostek p82b715 udało mi się z powodzeniem uruchomić sieć I2C w domu rodzinnym, na  przewodach długości ponad 20 metrów + 5 metrów w topologii gwiazdy. Opiszę całość w kolejnym wpisie.

Udostępnij:Share on FacebookEmail this to someoneWykop!Share on Google+Print this pageShare on TumblrTweet about this on Twitter

Jedna odpowiedź do “P82B715, czyli i2c na długim przewodzie”

Dodaj komentarz

Twój adres email nie zostanie opublikowany.