sobota, 10 sierpnia 2013

Logic level converter - konwerter poziomów logicznych

 

Często podczas projektowania układów elektronicznych, w których pracują zarówno układy zasilane napięciem 5V jak i 3,3V, zastanawiamy się nad dostosowaniem poziomów napięć sygnałów logicznych.

Przeważnie transmisja w kierunku 3,3V -> 5V powinna działać w miarę poprawnie (w zależności od zastosowanych układów), natomiast próba bezpośredniego podłączenia układów pracujących przy 5V do układów zasilanych napięciem 3,3V może spowodować uszkodzenie tych drugich (tolerują przeważnie na wejściu napięcia nie wyższe niż 3,6V).

Poniżej umieściłem listę kilku układów scalonych wraz z wyszczególnionymi obszarami ich zastosowań:

1. Transmisja jednokierunkowa (kierunek 5V -> 3,3 V)
74LVC125
74LVC244

2. Transmisja jednokierunkowa (tylko dla kierunku 3.3V -> 5V)
74HCT125
74HCT244 lub szybsze - wersje AHC
74HC4050

3. Transmisja dwukierunkowa sterowana stanem logicznym na konkretnym pinie (zarówno 5V –> 3,3V jak i 3,3V –> 5V)
74LVC245
lub lepsze rozwiązanie
74LVC4245*
 
* Różnica między 74LVC245 a 74LVC4245 polega na tym, że w 74LVC4245 podaje się na odrębne wejścia napięcie zasilania 5V i 3,3V.
Przy kierunku 5V -> 3.3V stan wysoki na wyjściu wynosi 3,3V natomiast w drugim kierunku (3.3V -> 5V) na wyjściu stan wysoki przyjmuje 5V, co w przypadku 74LVC245 w obu kierunkach stan wysoki wynosi 3,3V - poziom akceptowany, przeważnie uznawany za stan wysoki (w przypadku dużej części układów pracujących przy napięciu 5V)  jednak przy dłuższych połączeniach sygnał taki może być podatny na zakłócenia.
W przypadku ATmega644P (zasilanej napięciem Vcc = 5V) za stan wysoki uznawane jest napięcie od 3V w górę. Gdy sygnał logiczny 3,3V spadnie poniżej tej granicy, może zostać on uznany za stan niski.

W poniższej tabeli zawarłem wszystkie wcześniej wymienione układy z wyszczególnionymi najważniejszymi cechami.

LevelConvertTable

Inne sposoby konwersji poziomów logicznych możemy znaleźć w broszurze MicroChip'u
3V Tips ‘n Tricks

Jeżeli transmisja nie będzie szybka (trzeba przetestować, w większości przypadków będzie pracował poprawnie) można zastosować np: Dwukierunkowy konwerter poziomów logicznych