Rozšíření počtu výstupů portu

Erik Yokotashi Hamera 30. 7. 2009

Na rozdíl od rozšiřování počtu vstupů je nutné použít nějakou paměť, která si zapamatuje stavy výstupu i v době, kdy jsou na výstupu paralelního portu jiné hodnoty (dochází k nastavování jiných výstupů). K tomu se používají klopné obvody D. Těchto obvodů je (stejně jako u hradel) většinou více v jednom pouzdře.

Klopný obvod RS

Nejjednodušší typ klopného obvodu je obvod R-S. Tento obvod má dva vstupy a dva výstupy. Výstupy jsou navzájem negované – na jednom je za normálních okolností vždy opačná hodnota, než na druhém. Jsou-li na obou vstupech (R – reset, S – set) logické 0, obvod si pamatuje předchozí stav. Logická 1 na jednom vstupu mění stav, na obou vstupech zároveň nesmí nastat (na obou výstupech je pak logická 1). Pozor, je vhodné si povšimnout, že obvod složený ze dvou hradel NAND (na schématu) má negované vstupy /R a /S, pamatovací stav je tedy /R=1, /S=1, zapisuje se pomocí log 0 a není povoleno přivést log 0 na oba vstupy najednou.

Tento obvod nám moc nepomůže k rozšíření počtu výstupů, zato ho lze s úspěchem využít k zachytávání krátkých událostí. Za předpokladu, že nepotřebujeme vědět, kdy přesně událost nastala, ani kolikrát (zajímá nás pouze, jestli nastala alespoň jednou nebo ne), lze tento signál přivést na vstup S, vstup R připojit na jeden z výstupů portu a výstup Q na jeden ze vstupů portu. Objevíme-li na vstupu portu logickou 1, víme, že došlo k příchodu signálu (možná stále ještě dochází). Pak můžeme obvod opět resetovat a čekat dál. Například by tím šlo měřit počet průjezdů autíčka na autodráze, za předpokladu, že autodráha sama je tak dlouhá, že autíčko nestihne projet tak rychle, aby mezi tím počítač nestihl vynulovat klopný obvod. Pokud bychom chtěli měřit přesný čas průjezdu, bylo by nutné použít čítač a nevyplatí se to neudělat s jednochipovým mikroprocesorem.

Klopný obvod RST

Z klopného obvodu RS vznikne obvod RST, použijeme-li třívstupová hradla NAND místo dvouvstupových a přidané vstupy spojíme do vstupu T. Tento obvod se chová stejně, jako obvod RS, ale reaguje na vstupy R a S pouze v případě, že na vstupu T je logická 1. Vstup T jsou hodiny (a obvod reaguje na jejich úroveň – obvykle se používají o něco složitější obvody reagující na hranu hodin).

Klopný obvod D

Protože nepotřebujeme přivádět na oba vstupy R a S zároveň stejnou hodnotu (log 1 je zakázaný stav a log 0 je zapamatování, ke kterému dochází také během T=0), můžeme na jeden z nich zapojit negaci druhého. Tím získáme ze dvou hradel NAND a jednoho NOT klopný obvod D. Ten kopíruje hodnotu vstupu D na výstup Q, má-li log 1 na vstupu T.

Porty

Tento obvod si můžete zapojit na nepájivém kontaktním poli (7410 obsahuje 3× 3 vstupový NAND, z jednoho lze udělat invertor spojením jeho vstupů). Dá se postavit i z pěti dvouvstupových hradel NAND.

Porty

Konkrétní IO

Prakticky nemá smysl tento obvod stavět, protože v každé 7474 jsou dva a bez práce. Pokud jich je potřeba více, obvod 74173 obsahuje 4 společně řízené klopné obvody D s možnosti odpojit vstupy i výstupy, 74174, 74175 a 74273 obsahují 6, respektive 4 a 8, společně řízených obvodů D s možností nulování a společnými hodinami. Jeden 74273, nebo dva 74175 si tedy zapamatují celý byte (dva 74174 na zapamatování všech 12ti výstupních bitů paralelního portu prakticky použít nejde – nebylo by je čím řídit).

Pro rozšíření výstupu paralelního portu na 2–4 byte tedy lze použít 2–4 obvody 74273 (po dvojicích) se spojenými vstupy a hodinami ovládanými výstupy control registru. Do 16ti byte lze použít identické zapojení s dekodérem 1z16ti připojeným na control registr. Jeho výstupy se použijí jako hodiny. Jsou aktivní v nule, 74175 reaguje na vzestupnou hranu hodin, k přepisu tedy dochází během změny na jiný byte, nikoliv během jeho nastavení.

Toto zapojení jsem realizoval, když jsem potřeboval čtyřbytový výstup a jednobytový vstup (na ovládání stačily tři vodiče control registru, čtvrtý ovládal vstupní multiplexer, zápis jsem prováděl zapsáním adresy neexistujícího byte), byla to dost velká deska (13 pouzder IO, 8 z nich byly 74175).

Dnes bych pravděpodobně použil několik obvodů 74259, které přímo v sobě mají dekodér 1z8 a jejich výstupy jde programovat postupně jedním vstupem D.

Porty

Způsob ovládání je ze schématu myslím vidět. Označme adresu S0, S1 a S2, registry a, b, c a d, jejich výstupní bity a0 až a7, b0 až b7 … d0 až d7 a vstupní bity Da, Db, Dc a Dd. Pak zapíšeme adresu a data do výstupu portu: „d0 c0 b0 a0 1 0 0 0“ a povolíme G zápisem „d0 c0 b0 a0 0 0 0 0“. Tím jsme zapsali do nejnižších 4 bitů. Pokračujeme „d1 c1 b1 a1 1 0 0 1“, „d1 c1 b1 a1 0 0 0 1“; „d2 c2 b2 a2 1 0 1 0“, „d2 c2 b2 a2 0 0 1 0“; … „d7 c7 b7 a7 1 1 1 1“, „d7 c7 b7 a7 0 1 1 1“. Tím jsme zapsali celé 4 byte.

Je dobré všimnout si, že hodnoty jsou použity (přepsány do registru) až v okamžiku druhého zápisu (s log 0 na /G), takže se zdá, že první zápis je zbytečný. Nicméně první zápis slouží k tomu, aby hodnoty byly na vstupech registru zaručeně dříve, než je povolen jejich přepis do klopných obvodů. Pokud by to tak nebylo, záleží na zpožděních v obvodu, portu, délkách a kapacitách vodičů, zda se přepíší staré hodnoty, nové hodnoty, nebo jejich mix. Spodní tři bity na portu jsou adresou zapisovaných bitů v registrech.

Našli jste v článku chybu?
Měšec.cz: Do ostravské MHD bez jízdenky. Stačí karta

Do ostravské MHD bez jízdenky. Stačí karta

Vitalia.cz: Očkování je nutné, říká homeopatka

Očkování je nutné, říká homeopatka

Lupa.cz: Olympiáda zakázala GIFy. Moc to nepomáhá

Olympiáda zakázala GIFy. Moc to nepomáhá

120na80.cz: Víte, co je svobodná menstruace?

Víte, co je svobodná menstruace?

Vitalia.cz: „Sjíždět“ porno není bez rizika

„Sjíždět“ porno není bez rizika

Podnikatel.cz: Kauza z Vinohrad pokračuje. Policie se omlouvá

Kauza z Vinohrad pokračuje. Policie se omlouvá

Vitalia.cz: Ženy, které milují příliš, jsou neštěstí

Ženy, které milují příliš, jsou neštěstí

Lupa.cz: Elektronika tajemství zbavená. Jak s ní začít?

Elektronika tajemství zbavená. Jak s ní začít?

Vitalia.cz: Za její cukrovkou stojí rodiče

Za její cukrovkou stojí rodiče

Lupa.cz: Kdo vykrádá LinkedIn? Zjistit to má soud

Kdo vykrádá LinkedIn? Zjistit to má soud

Měšec.cz: Se stavebkem k soudu už (většinou) nemusíte

Se stavebkem k soudu už (většinou) nemusíte

Měšec.cz: Udali ho na nelegální software a přišla Policie

Udali ho na nelegální software a přišla Policie

DigiZone.cz: Jetelín končí. Prima ho vyřadila

Jetelín končí. Prima ho vyřadila

Lupa.cz: Hackujete? Můžete mít problém sehnat práci

Hackujete? Můžete mít problém sehnat práci

Měšec.cz: Co s reklamací, když e-shop krachuje?

Co s reklamací, když e-shop krachuje?

Měšec.cz: Ceny PHM v Evropě. Finty na úspory

Ceny PHM v Evropě. Finty na úspory

DigiZone.cz: Hodlá Markíza skončit v DVB-T?

Hodlá Markíza skončit v DVB-T?

Měšec.cz: Co když na dovolené přijdete o kartu?

Co když na dovolené přijdete o kartu?

Měšec.cz: Kurzy platebních karet: vyplatí se platit? (TEST)

Kurzy platebních karet: vyplatí se platit? (TEST)

DigiZone.cz: AXN u FreeSatu měsíc zdarma

AXN u FreeSatu měsíc zdarma