Potřeboval jsem převodník úrovně mezi dvěma zařízeními pro sběrnici I2C. Hledal
jsem na netu a našel jsem tento převodník úrovně mezi dvěma I2C součástkami na
webu NXP, dříve Philips. Jedná se aplikační poznámku
AN10441.
Já jej potřeboval pro převod mezi úrovněmi 3,3V a 5V, ale lze jej obecně použít
mezi naprosto různými úrovněmi. Např. mezi 1,8V mikrokontrolérem a 5V obvody I2C,
které mám v šuplíku, případně mezi 5V mikrokontrolérem a 24V zařízením, která se
většinou používají v průmyslu.
Popis funkce
Uvedu stručný překlad popisující příklad zapojení převodníku úrovně (Shift Level)
pro napájecí napětí 3,3V a 5V. Zapojení je na Obr.1.
Obr.1:
![](I2C_PrevodUrovne/Zapojeni.jpg)
Na každé straně napájecích úrovní 3,3V i 5V jsou zapojeny zdvihací rezistory
(pull-up). Jednotlivá zařízení používají jako výstup, otevřený kolektor a vstupní
logika je přizpůsobena jejich napájecím napětím. Z toho plyne, že úroven log. 1
je vytvořena zvihacím rezistorem a úroveň log. 0 je vytvořena otevřením výstupního
tranzistoru, který stáhne úroveň ke GND.
Základem tohoto zapojení je MOSFET tranzistor s N-kanálem. Může být např. levný
BS170. Pouze pozor na jeho max. UDG, které je 60V. Ovládací hradlo G je připojeno
na stranu nižšího napájecího napětí, v tomto případě 3,3V. Na tuto stranu nižšího
napětí, sběrnicový vývod SCL nebo SDA je připojen na vývod S(ource). Poslední
vývod, a to je D(rain) je připojen na sběrnicový vývod SCL nebo SDA ze strany
vyššího napájecího napětí.
Nyní si popíšeme jak tento převodník úrovní pracuje:
Nejdříve, zařízení je v klidu. Žádné zařízení, ani z jedné strany negeneruje
úroveň log. 0. Zdvihací rezistory zabezpečují úrovně log. 1 na obou, dvou stranách
převodníku. Vývody MOSFET tranzistoru G a S, připojené na stranu s nižším
napájecím napětím jsou na stejné urovni. Tzn., že nepracují, nejsou sepnuté. Tím
jsou obě strany od sebe oddělené, ale mají každá, svojí úroveň.
Když zařízení na straně nižšího napětí (3,3V) stáhne sběrnicový vývod ke GND,
dojde k otevření tranzistoru, protože se mezi G a S objevilo napětí. Tímto dojde
k připojení zdvihacího odporu na straně vyššího napájecího napětí ke GND. Přes
sepnutý vnitřní tranzistor na sraně 3,3V zařízení. Toto má za následek změnu
úrovně na straně 5V zařízení taktéž na log. 0.
Když zařízení na straně vyššího napětí (5V) stáhne sběrnicový vývod ke GND, dojde
k využití interní diody v MOSFET tranzistoru. Tím připne zdvihací odpor na straně
3,3V napětí ke GND. Toto má za následek změnu úrovně na straně 3,3V zařízení
taktéž na log. 0.
Toto zapojení je podle NXP schopno pracovat až do rychlosti 400kbit/s.
Toto zapojení chrání stranu s nižším napětím před napěťovými špičkami ze strany
zařízení s vyšším napájecím napětím.
Firma NXP pomocí tohoto zapojení dokáže prodloužit vzdálenost sběrnic.
Praktická realizace
Realizoval jsem převodník úrovní na jednoduché, jednostranné destičce – Obr.2,
určené pro připojení jak na kabel tak do nepájivého kontaktního pole. Jsou využity
3 signálové vodiče. Jednak sběrnicový vodič hodin – SCL, datový vodič – SDA a
nakonec přerušení – INT*. Společný je vodič GND. Zdvihací rezistory mají všechny
hodnotu 1MOhm a MOSFET tranzistory jsou použity BS170 v pouzdře TO92. Celkový
pohled je na Obr.3.
Obr.2:
Obr.3:
Na závěr to nejpodstatnější a tím je motiv plošného spoje.