W artykule biorę na celownik proste magistrale cyfrowe, które tworzą asymetryczne połączenia w obwodach drukowanych i są obsługiwane przez nadajniki typu push-pull. Mowa o prostych interfejsach typu SPI, UART oraz innych, niemających charakterystycznej nazwy, jak interfejs komunikacyjny popularnego sterownika wyświetlacza LCD typu HD44780. Ten ostatni jest najczęściej sterowany przez wyprowadzenia mikrokontrolera, który w swojej strukturze zawiera właśnie wyjścia push-pull.
Praktyczny przykład
Dla lepszego nakreślenia istoty problemu odniosę się do przykładowej aplikacji, z którą spotkał się niejeden projektant elektroniki. Mikrokontroler typu STM32, zasilany napięciem 3,3 V, ma sterować wyświetlaczem LCD ze wspomnianym wcześniej sterownikiem (a raczej jego odpowiednikiem). Szybki rzut oka do noty katalogowej i już widać pierwszy problem: wyświetlacz może być zasilany napięciem 5 V z niewielką tolerancją, a stan wysoki na wejściach rozpoznaje poprawnie dopiero od... 3,5 V. Nawet podnosząc napięcie zasilające mikrokontroler do 3,6 V, co oznaczałoby osiągnięcie granicznych dopuszczalnych parametrów, nie mamy gwarancji poprawnego działania. Jedynym pewnym rozwiązaniem jest zastosowanie konwertera poziomów logicznych. Komunikacja jest jednostronna, więc zadanie nie wydaje się trudne.
Koszt produkcji urządzenia zawsze jest istotnym parametrem, dlatego trzeba szukać rozwiązań prostych, dostępnych i budżetowych. Specjalizowane układy scalone pełniące funkcję konwerterów zapewniają wprawdzie bardzo dobre parametry czasowe, ale ich cena potrafi nieprzyjemnie zaskoczyć. W produkcji większych serii każda zaoszczędzona kwota daje wymierne korzyści. Dlatego warto mieć na taką okoliczność jakiegoś asa w rękawie.
Proste rozwiązanie – zalety i wady
Bardzo popularnym rodzajem konwertera jest układ z tranzystorem MOSFET z kanałem N oraz dwoma rezystorami. Schemat tego rozwiązania został pokazany na rysunku 1. Jego cena z pewnością jest akceptowalna, lecz ma ono pewną wadę: czasy narastania i opadania napięcia nie są jednakowe. Dzieje się tak, ponieważ stan wysoki jest wymuszany przez rezystory, a niski przez układ nadajnika i sam tranzystor. Przy wyższych szybkościach transmisji danych to zjawisko daje znać o sobie, prowadząc do zniekształcenia czasu trwania impulsów. Poza tym kilka takich konwerterów może zająć sporo miejsca na powierzchni płytki drukowanej, zwłaszcza wtedy, kiedy elementy bierne muszą być w obudowach SMD1206.
Lepsze rozwiązanie
Czy istnieje rozwiązanie, które łączy zalety specjalizowanych konwerterów i prostego układu z rysunku 1? Okazuje się, że tak. Wystarczy przychylnym okiem spojrzeć na zwykłe układy logiczne z serii AHCT, a dokładniej mam na myśli 74AHCT125. Zawiera cztery niezależne bufory z wejściami aktywującymi. Dokładną konfigurację pokazuje rysunek 2. Ze względu na specyfikę tej rodziny może być zasilany napięciem od 4,5 V do 5,5 V.
Lektura noty katalogowej tego układu daje obiecujące wnioski. Logiczna 1 jest interpretowana już od wartości zaledwie... 2 V (rysunek 3). Zatem mikrokontrolery zasilane napięciem 3,3 V bez problemu mogą wysterować wejścia tych buforów. Podobnie jak w nowoczesnych układach CMOS, tak i tutaj mamy do dyspozycji bardzo mały czas propagacji – typowo 3 ns przy pojemności obciążenia 15 pF i w temperaturze 25°C. Wejścia aktywujące (ENA) można na stałe zewrzeć z masą albo użyć do sterowania przepływem danych, na przykład odłączając magistralę SPI od jednego z układów nadrzędnych.
Jedynie układ wyprowadzeń nie jest zbyt wygodny (rysunek 4), ponieważ wejścia i wyjścia buforów nie zostały ułożone naprzeciw siebie. Za to cena układu jest do zaakceptowania – poniżej 30 gr netto za sztukę w hurcie (wrzesień 2021) za układ 74AHCT125S14-13.
Konwersja w drugą stronę
A co z konwersją, kiedy odbiornik informacji jest zasilany napięciem niższym niż nadajnik? W przypadku sygnałów o małej szybkości sprawę może załatwić dzielnik rezystancyjny lub zwykły rezystor ograniczający prąd diod zabezpieczających wbudowanych w wejście odbiornika. Ale nie zawsze takie rozwiązanie będzie odpowiednio szybkie. Można wtedy wspomóc się układem z serii AHC, a dokładniej 74AHC125, który zawiera dokładnie to samo, co omówiony wcześniej 74AHCT125. Możemy do mikrokontrolera zasilanego napięciem 3,3 V podłączyć czujnik pracujący z napięciem 5 V i cieszyć się szybkim transferem danych. 74AHC125 może być zasilany napięciem o wartości od 2 V do 5,5 V, ale wejścia akceptują napięcie 5,5 V nawet wtedy, kiedy jego napięcie zasilania jest znacznie niższe. Szczegóły zostały pokazane na rysunku 5. Można więc z niego zrobić szybki konwerter napięcia „w dół”, ponieważ typowe opóźnienie między wejściem a wyjściem wynosi 4,4 ns, przy napięciu zasilania od 3 V do 3,6 V, pojemności obciążenia 15 pF i temperaturze 25°C.
Podobnie jak w przypadku poprzednika, tak i ten układ ma przystępną cenę. Koszt jednej sztuki (netto) wynosi poniżej 30 gr za układ 74AHC125S14-13 (wrzesień 2021). Oprócz kondensatora odsprzęgającego zasilanie nie wymaga żadnych dodatkowych elementów.
Michał Kurzela, EP
Bibliografia: