8212_00.JPG
Porty od starych procków: i8212Tak przy okazji wiosennych porządków w pracowni, natrafiłem na układy 8212 (Intel – 8212, CEMI – UCY74S412, zza wschodniej granicy K589IR12). To całkiem sensny układ portów do procków starej daty. Zanim przyzwyczaiłem się do używania 8255, to te były dobrą alternatywą. I tak sobie wymyśliłem, że może warto je spożytkować w jakiej konstrukcji, ale wcześniej konieczne jest przypomnienie jak się ich używa, bo pamięć jest dobra ale ulotna. W sumie to układ może robić za port wejściowy jak i wyjściowy (w zależności od stanu wejścia określającego tryb pracy MD – pin 2). Jego pinologia to (jest jaka jest, choć obecnie fajniejsze są układy, które mają wejścia po jednej stronie układu a wyjścia po drugiej – tu są naprzemienne):
8212_01.png
Układ ma tą fajną cechę, że wpis do rejestru generuje sygnał opisany jako INT, choć nie koniecznie należy go kojarzyć z sygnałem przerwania. W sytuacji, gdy robi za port wejściowy, to rzeczywiście można go podłączyć pod kontroler przerwań a fajność polega na tym, że odczyt gasi ten sygnał (odczyt portu jest tożsamy z potwierdzeniem obsługi przerwania dla portu – nie jest potrzebna dodatkowa logika; niektóre wejścia przerwań w prockach reagują na poziom i przed zakończeniem obsługi przerwania trzeba „gasić” jego przyczynę).
Zrobiłem sobie taki układ badawczy:
8212_02.png
8212_03.jpg
Jako port wejściowy (z punktu widzenia procka) jest dla MD=0: „coś” ustawia DI1..DI8 i generuje impuls na STB (z wpisem na zbocze opadające – choć dokładnie to 8212 jest zatrzaskiem). Wyjścia DO1..DO8 są w trzecim stanie. Odczyt zachodzi w sytuacji DS1=0 i DS2=1 (zakończenie odczytu gasi INT).
8212_04.png
Początek wpisu: STB=1
8212_05.jpg
Koniec wpisu: STB=0 → pojawia się INT.
8212_06.jpg
Początek odczytu: są dane.
8212_07.JPG
Koniec odczytu: wyjście w trzecim stanie, gaśnie flaga przerwania.
8212_08.JPG
Jako port wyjściowy (MD=1) dane są ciągle dostępne a wpis następuje kombinacją DS1=0 i DS2=1.
8212_09.png
Stan pasywny rejestru jako wyjściowego (MD=1).
8212_10.jpg
Wpis do rejestru następuje kombinacją DS1 i DS2 (przykładowo DS1=0, DS2=1).
8212_11.jpg
W czasie, gdy aktywny jest wpis, każda zmiana odbija się na wyjściu (8212 jest zatrzaskiem).
8212_12.JPG
Po „zamknięciu” wpisu, układ 8212 jest nieczuły na zmiany zachodzące na jego wejściu.
8212_13.JPG
Przypomniałem sobie stare rozwiązanie jako dwukierunkowa magistrala między prockami zrealizowana na dwóch rejestrach 74xx574 i dodatkowych przerzutnikach 74xx74. Teraz wystarczą dwa układy 8212.
8212_14.png
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.