Wykorzystanie układu ekspandera 8243

Układ ekspandera wejścia-wyjścia 8243 jest specjalnie zaprojektowany do współpracy z mikrokomputerami rodziny MCS-48. Na liście ich rozkazów znajdują się rozkazy umożliwiające przesyłanie danych między akumulatorem a portami ekspandera. Rozkład sygnałów na końcówkach obudowy układu 8243 pokazano na rys.
Znaczenie sygnałów jest następujące:
P40 - P44
P50 - P54
P60 - P64
P70 - P74 - cztery 4-bitowe porty wejścia-wyjścia
P20 - P24 - 4-bitowy port do komunikacji z mikrokomputerem
PROG - sygnał sterujący przesyłaniem sterowania i danych przez port P2
/CS - wejście wybierające (aktywny stan niski)
Ucc - zasilanie (5 V + - 10%)
GND - masa (0 V)

Porty ekspandera są pseudodwukierunkowe, podobnie jak porty P1 i P2 mikrokomputera 8048. Linie portów od P4 do P6, pracujące jako wyjściowe, mogą być obciążone prądem do 4,5 mA (przy Uol = 0,45 V), a linie portu P7 - prądem do 20 mA (przy Uol = 1,0 V). Prąd obciążenia linii wyjściowych może być zwiększony nawet do 11mA, ale przy organiczeniu łącznego obciążenia wszystkich linii wyjściowych, zgodnie z wykresem z rys.

Sposób dołączenia układu 8243 do mikrokomputera pokazano na rys.
Przesyłanie danych między procesorem a ekspanderem dokonuje się poprzez port P23-0 i jest sterowane za pomocą sygnału PROG.

Przebiegi czasowe sygnałów w cyklu maszynowym komunikacji z ekspanderem pokazano na rys.

Cykl ten jest wykonywany jako drugi w cyklu rozkazowym przy realizacji rozkazów MOVD, ORLD i AND. Do portu P23-0 najpierw jest wysyłane słowo sterujące, określające operację ekspandera. Jest to sygnalizowane opadającym zboczem sygnału PROG. Następnie, jeśli jest realizowane przesłanie do ekspandera, to do portu P2 3-0 zostają wpisane dane, strobowane narastającym zboczem sygnału PROG. Jeżeli zaś jest wykonane przesłanie do akumulatora, to przy PROG = 0 ekspander musi wysłać dane, które będą wczytane w chwili narastania zbocza sygnału PROG.

Wykonanie cyklu komunikacji z ekspanderem niszczy poprzednią zawartość bitów od 0 do 3 portu P2. Nie przeszkadza to w komunikacji mikrokomputera z zewnętrzną pamięcią programu (przesłania są wykonywane w innych cyklach), ale utrudnia wykorzystanie tych bitów do innych celów. Na przykład, w układzie z rys.

z dodatkowo dołączonym ekspanderem, odwołanie do ekspandera niszczy ostatnio wysyłany numer bloku pamięci RAM. Należy zatem wysłać go ponownie i to przed kolejnym odwołaniem do pamięci.

Można dołączyć większą liczbę ekspanderów 8243, stosując technikę przełączania bloków. Odwołanie do portu odpowiedniego ekspandera musi być poprzedzone uaktywnieniem układu, czyli wysłaniem do portu wybierającego (tu P27-4) zera na odpowiednim bicie (rysunek poniżej)

lub numeru układu (w układzie z rys poniżej)
przykład:
OUTL P2,#1101xxxx	; uaktywnienie układu 1 z rys. 3.14a
			; x - wartość obojętna
MOV  A,#xxxx1001
MOVD P5,A		; zapisanie liczby 9H do portu P5 z układu 1
Oczywiście jako port wybierający może być także użyty port P1.