Rozumiem, że w liniach I2C, SCL i SDA używamy rezystorów podciągających, a sterowniki pinów to urządzenia NPN z otwartym kolektorem, które mogą doprowadzić piny do uziemienia. Daje to I2C korzyść polegającą na tym, że ta sama magistrala może być teraz współdzielona z wieloma urządzeniami podrzędnymi, a nawet jeśli dwóch lub więcej urządzeń podrzędnych przypadkowo spróbuje prowadzić magistralę w tym samym czasie, nie spowoduje to uszkodzenia systemu.
Ale można to również zrobić za pomocą sterowników PNP i rezystorów obniżających napięcie na liniach SDA i SCL. Dzięki temu można osiągnąć takie rzeczy jak rozciąganie zegara i arbitraż wielozadaniowy.
Czy obecna implementacja protokołu I2C daje jakieś korzyści w stosunku do wyżej sugerowanej alternatywy?
Odpowiedzi:
Elektrycznie ma to sens, ponieważ uziemienie jest jednym wspólnym połączeniem ze wszystkimi urządzeniami na magistrali IIC. To o wiele mniej ograniczeń niż wymuszanie zasilania, które jest wspólnym połączeniem ze wszystkimi urządzeniami IIC, co byłoby wymagane, gdyby linie były napędzane wysoko i unosiły się nisko za pomocą menu rozwijanego.
Należy pamiętać, że urządzenia IIC nie muszą być zasilane z tej samej sieci lub z tego samego napięcia. Nie byłoby to prawdą, gdyby obie linie magistrali musiały być doprowadzone do jednego wspólnego napięcia zasilania.
źródło
W dawnych dobrych czasach kierowcy TTL byli znacznie lepsi w odciąganiu sygnału niż w górę. Dlatego protokoły, takie jak I2C, ale także linie przerwania, reset i inne, zostały zaimplementowane przy użyciu pull-up z rozproszonym pull-down.
źródło
Łatwiej jest używać uziemienia jako wspólnego odniesienia dla podsystemów, które mogą mieć różne napięcia zasilania. Jeśli użyjesz tranzystorów PNP do podniesienia napięcia zasilania, wszystkie podsystemy musiałyby być podłączone do tego samego źródła zasilania.
źródło
Mnóstwo dobrych odpowiedzi tutaj, ale jest też inny powód.
Jeśli stan spoczynku autobusu jest na ziemi, nie ma sposobu, aby stwierdzić, czy autobus jest podłączony, czy po prostu wisi w przestrzeni.
To normalne, że podciąganie znajduje się w urządzeniu głównym. Niewolnicy zwykle nie mają podciągania. Wynika to z faktu, że prąd obniżający, który byłby wymagany do zapewnienia niskiego poziomu, zwiększałby się wraz z liczbą urządzeń podłączonych do magistrali.
Niewolnik po podłączeniu do magistrali może wykryć, że linia jest podniesiona do góry (zakładając, że nie jest używana) i wiedzieć, że magistrala jest rzeczywiście tam i cicho. Nie byłoby tak w przypadku autobusu z tendencją do ziemi.
źródło
Jeśli dobrze rozumiem pytanie, jednym z aspektów jest:
Przede wszystkim należy zauważyć, że nie używasz tranzystorów bipolarnych (NPN, PNP), ale tranzystory MOSFET (które występują w czterech różnych wariantach).
Urządzenia korzystające z wariantu „ pull-up i NPN ” używają MOSFET -u z rozszerzeniem n-kanałowym . Ponieważ źródło tego tranzystora MOSFET jest podłączone do uziemienia, napięcie bramka-źródło (kontrolujące przepływ prądu) jest równe napięciu między bramką a masą. Tak więc MOSFET może być kontrolowany za pomocą napięcia pomiędzy 0 a Vdd.
Istnieją trzy możliwości wdrożenia wariantu „ rozwijanie i PNP ”:
Korzystanie z rozszerzenia M -kanałowego M-F
Na NMOS lub CMOS IC p-kanałowe MOSFETY o porównywalnych charakterystykach (rezystancja itp.) Wymagają więcej miejsca niż MOSFETY n-kanałowe.
W mikroelektronice przestrzeń to pieniądz, więc jeśli to możliwe, unikaj tranzystorów MOSFET.
Korzystanie z rozszerzenia n-kanałowego MOSFET
Wymagałoby to, aby wyjście obwodu logicznego napędzającego tranzystor miało napięcie „LOW” napięcia zasilania (np. + 5 V) i napięcie „HIGH” powyżej napięcia zasilania (np. + 10 V, gdy reszta obwodu jest zasilana z + 5 V).
Powód: napięcie uziemienia źródła będzie wynosić Vdd, gdy MOSFET przewodzi. Napięcie źródła bramki musi być dodatnie, aby napięcie między bramą a masą było jeszcze wyższe.
Potrzebne byłyby dwa źródła napięcia - i obwód zmieniający moc wyjściową obwodu logicznego z 0 ... + 5 V na + 5 V ... + 10 V ...
Używanie MOSFET -u zubożającego n-kanał
Niestety nie mogę wiele powiedzieć o tym rozwiązaniu. Znalazłem jednak pewną stronę za pomocą Google, która mówi, że wyczerpywanie tranzystorów MOSFET jest trudniejsze do wytworzenia niż ulepszanie tranzystorów MOSFET i dlatego też ich unika się.
Wiem z elektroniki energetycznej (nie mikroelektroniki), że opisany powyżej wariant „dwóch zasilaczy” jest nawet lepszy niż tranzystory MOSFET zubożone. (Ale nie potrafię powiedzieć dlaczego).
EDYCJA Używając tranzystorów MOSFET zubożających n-kanał, prawdopodobnie potrzebujesz napięcia ujemnego (np. -5 V), więc potrzebujesz również dwóch napięć zasilania ...
źródło
Jest jeszcze jedna dodatkowa korzyść z posiadania wspólnych linii danych i linii danych (w porównaniu do wspólnego VCC i linii rozwijanych):
Nawet jeśli pierwotnym zamiarem było łączenie urządzeń na tej samej płytce drukowanej w odległości zaledwie kilku cali, to było to wystarczająco udane, więc teraz nierzadko zdarza się, że linie mają kilka stóp i łączą „urządzenia”, które mogą być komputerami lub czymś równym złożoność, ponieważ niektóre urządzenia mają własne źródła zasilania (różnej jakości, powiedzmy, że podłączasz coś zasilanego z gniazdka ściennego z zasilaniem bateryjnym). Lepiej, jeśli połączenie działa „co najmniej dobrze”, nawet w nie idealnych i niespecyficznych warunkach.
I wiele takich podłączonych urządzeń może być w jakiś sposób połączonych także w inny sposób, niż tylko komunikacja I2C. Zwykle łącząc ze sobą urządzenia, łączysz je
common ground
- czasami jako część innych funkcji, czasami tylko dlatego, że jest on zamontowany na metalowej obudowie, a urządzenia są również uziemione z obudową (lub ze zwykłą chłodnicą lub coś takiego) lub może być ekranowanym kablem z uziemionym ekranem wewnątrz - który również łączy uziemienie.Jeśli również bezpośrednio podłączysz linie elektroenergetyczne (VCC) takich urządzeń, będziesz mieć problemy, gdy te linie będą naturalnie pod innym napięciem (jasne, może powiedzieć 5 V tu i tam, ale w zależności od budowy i tolerancji częściowych źródeł zasilania to może również wynosić 4,9 V lub 5,2 V, a nawet zmieniać, jeśli jest zasilany bateryjnie i czasami pracuje z niektórymi silnikami, powodując spadek mocy i wzrost w czasie).
W takim przypadku występuje skutecznie zwarcie między źródłami zasilania części a Volt, a w zależności od źródeł (i rezystancji dróg) mogą przepływać stosunkowo wysokie prądy, powodując nie tylko marnotrawstwo energii i wzrost ciepła, ale może nawet uszkodzenie ( lub skrócenie życia) niektórych z tych źródeł. Co nie jest dobre.
Posiadanie wspólnego uziemienia i podciągania pozwala uniknąć takich problemów - uziemienie jest uziemione, a rezystory podciągające pozwalają na bardzo mały prąd krzyżowy, nawet jeśli VCC różni się znacznie między urządzeniami.
źródło
Nie musisz przesyłać tak dużej mocy przez układ, jeśli jest podciągnięty.
Ponieważ układ nic nie napędza, po prostu tworzy zwarcie, aby sprowadzić autobus do 0, i robi otwarcie, aby doprowadzić go do 1.
Gdyby został rozebrany, musiałbyś wysłać moc przez układ, aby poprowadzić autobus do 1. Jeśli autobus jest przypadkowo zwarty, może to być duża moc, którą przejeżdżasz przez ten układ, aby go popchnąć do 1.
Oświadczenie: Jestem w tej chwili dość kiepskim EE.
źródło