Interfejs cyfrowy I/O kompatybilny z różnymi poziomami logicznymi

11558_got

Do przetestowania produktów w laboratorium badawczo-rozwojowym, w którym pracuję, budowałem wiele uniwersalnych systemów próbkowania i gromadzenia danych podłączonych do komputera PC lub innych sterowników za pośrednictwem interfejsu RS-232 lub sieci lokalnych LAN. Te małe systemy zwykle zawierały wiele przetworników ADC, DAC i cyfrowych kanałów I/O do sterowania różnymi funkcjami sprzętowymi podczas projektowania i rozbudowy produktu. Z biegiem lat opracowałem uproszczony standard interfejsu analogowego, który obejmował zakres od 0 do 5V.
Jednak po stronie cyfrowej pojawiło się wiele nowszych rodzin układów logicznych, które nie tolerują już wejść 5-woltowych, co spowodowało, że moje opracowania dotyczące portów I/O stały się przestarzałe i niepotrzebne. Aby rozwiązać ten problem, zaprojektowałem elastyczny obwód interfejsu cyfrowego bazujący na ekspanderze wejść/wyjść MAX7301 opracowanym przez firmę Maxim Integrated Products oraz na programowalnym zasilaczu liniowym składającym się z liniowego regulowanego stabilizatora napięcia MAX1658, będącego pod kontrolą układu MAX5400 – cyfrowo programowalnego potencjometru o 256 położeniach suwaka.
Rezultatem jest obwód dostarczający programowalny interfejs odpowiadający poziomom logicznym układów scalonych, które wymagają napięcia zasilania 2.5, 3.0, 3.3 i 5V.
Dwa interfejsy SPI (Serial-Peripheral Interfaces – szeregowe interfejsy urządzeń peryferyjnych) sterują wszystkimi 20 pinami wejściowymi i wyjściowymi i napięciami progowymi układu scalonego MAX7301AAI (rysunek 1).
W przeciwieństwie do niektórych ekspanderów portów SPI z niskoprądowymi stopniami wyjściowymi, które zawierają „słabe”, tylko rezystory podciągające (pull-up), układ scalony MAX7301 – IC1, posiada rzeczywiste, aktywne wyjścia typu „totem-pole”, które mogą pobierać wyższe prądy.
Po doprowadzeniu zasilania przez programowalny regulator liniowy SPI, wyjścia układu scalonego MAX7301 mogą dostarczać napięcia o poziomach logicznych od 2.5 do 5V.
Interfejsy programujące dla obu układów zawierają dwa trójprzewodowe (plus masa) połączenia SPI, które wykorzystują w sumie tylko sześć linii sygnałowych sterownika.
Sześć tranzystorów MOSFET Q1 do Q6 – Si1012R z kanałem N firmy Vishay o niskim napięciu progowym bramki, izoluje wyjścia kontrolera o stałych poziomach napięcia od napięć wejściowych układu IC1 o zmiennych poziomach napięcia progowego.
Chociaż wiele standardowych układów transponujących poziomy napięć wykonałoby to zadanie równie dobrze, bufory MOSFET są tańsze i zajmują mniej miejsca na płycie drukowanej interfejsu. Aby obsługiwać interfejs szeregowy przy częstotliwościach zbliżonych do wartości maksymalnych dla układu scalonego IC1 wynoszących 26MHz, należy zoptymalizować wartości rezystorów od R1 do R6, czasy narastania odpowiadały wybranej częstotliwości taktowania. Wartości te są wystarczające do pracy z zegarem SPI 1MHz, które wytwarza mikrokontroler małej mocy. Aby zmienić poziom napięcia wyjściowego w obwodzie, IC2, 256-pozycyjny potencjometr cyfrowy Maxim MAX5400, steruje regulatorem liniowym Maxim MAX1658 regulowanym napięciem układem IC3.
Wpisanie tylko zer do układu IC2 ustawia napięcie wyjściowe układu IC3 na poziomie nieco ponad 5V, a wpisanie tylko „jedynek” (255 w zapisie dziesiętnym) do układu IC2 zmniejsza napięcie wyjściowe IC3 do wartości nieco mniejszej niż 2.5V.
Ten margines jest wystarczający, aby zrekompensować możliwe tolerancje elementów; obwód zapewnia pełny zakres regulacji od 2,5V do 5V. Zapisanie 128 (w zapisie dziesiętnym) do układu IC2 powinno dać nominalne napięcie wyjściowe 3.25V. Zmierz istniejące napięcie wyjściowe IC3 i odejmij od napięcia znamionowego, aby uzyskać wartość dla korekcji kalibracji.
Podczas pracy, kontroler hosta ustawia regulowane napięcie wyjściowe układu IC3 za pośrednictwem cyfrowego potencjometru IC2 i określa maksymalne napięcia wejść i wyjść logicznych układu IC1.
Następnie kontroler konfiguruje wejścia i wyjścia IC1, zgodnie z wymaganiami interfejsu bieżącego zadania.
Standardowe wartości progowe układu logiki CMOS MAX7301 wynoszą odpowiednio 0.3 do 0.7 wartości napięcia zasilania dla wejść odpowiednio: o poziomie niskim (logiczne 0) i poziomie wysokim (logiczna 1) innych elementów CMOS. Autor: Steve Hageman

pełny materiał w pliku pdf

Komentarze z Facebooka

Komentarze obecnie - OFF.