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 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.5€ za 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.
Witam.
W jakich sklepach można zakupić w Polsce P82B715?