.. vim: noexpandtab fileencoding=utf-8 nomodified wrap textwidth=270 foldmethod=marker foldmarker={{{,}}} foldcolumn=4 ruler showcmd lcs=tab\:|- list tabstop=8 noexpandtab nosmarttab softtabstop=0 shiftwidth=0 :date: 2024.01.17 11:01:50 :modified: 2024.01.29 08:20:43 :tags: Drobnicky,HW,HowTo :authors: Gilhad :summary: Edge Triggered Hradlo RS :title: Edge Triggered Hradlo RS :nice_title: |logo| %title% |logo| %HEADER% Edge Triggered Hradlo RS -------------------------------------------------------------------------------- Pro `Expanduino `__ potřebuju řídit přístup ke sdílenému zdroji tak, aby, když s ním jedna strana skončí, bylo jasné, že s ním může druhá strana volně pracovat a naopak. Pro to by se hodilo hradlo `RS`. Běžné hradlo `RS` má výstup `Q` (a často taky jeho negaci :overlinecite:`Q`), a dva vstupy `Reset` a `Set`. Je-li aktivní pouze `Reset`, nastaví výstup na nulu, je-li aktivní pouze `Set`, nastaví výstup na jedničku, není-li aktivní nic, tak se stav nemění a uchovává se poslední hodnota výstupu (kvůli tomu se hradlo RS používá) a jsou-li aktivní oba vstupy, jde o zakázaný stav a výstup není definován. Tady ale každá strana používá pro manipulaci se zdrojem svůj signál :overlinecite:`Enable`, který je aktivní v nule a když s ním skončí, tak se to pozná tak, že ten signál přejde do jedničky (a už tam zůstane). Takže potřebuju podobné hradlo, které ale nebude reagovat na úrovně, ale na vzestupné hrany vstupních signálů. Čili `Edge Triggered Hradlo RS`. (Víc to rozebírám `tady `__.) Narazil jsem na podobnou otázku na `StackExchange `__ a jejich plně digitálné řešení se mi líbilo víc než moje poloanalogové. A protože najít něco takového je dost problém (protože jakmile člověk zmíní hranu, tak mu tam google nacpe hodiny, ale tady žádné hodiny nejsou), tak o tom píšu i sem. Jejich schéma je jednoduché |EdgeRS-schema1.png| a když jsem si to zkoušel nasimulovat, tak mi to chodilo |EdgeRS-schema2.png| Tak jsem si to ještě zkusil zapojit na breadboardu |EdgeRS_test.jpg| a tam to chodilo taky. Klíčový je uzel jsou dvě hradla D v jednom pouzdře, čili obvod `74HC74` (který jsem si musel vsadit do redukce, abych to mohl na breadboardu zkoušet) |EdgeRS_test-D-flop.jpg| Na něj navazují dvě hradla NOR (půlka obvodu `74HC02`) a dvě LED pro indikaci výsledku |EdgeRS_test-NOR.jpg| Protože jsem potřeboval testovat, jak se to chová při přechodech vstupů z nuly do jedničky (a zpět a tak) a pouhé zastrkávání či vytahování drátku z/do breadboardu vždycky udělá celou sérii zákmitů, tak jsem si vstupy ošetřil pomocí dvou klasických RS obvodů (půlka `74HC279`) |EdgeRS_test-input.jpg| A protože jsem u těch vstupů chtěl vidět, co se děje a zárověň u nich mít pullup, tak jsem nepoužil `citlivou indikaci `__, ale pouze diodu s odporem (teda dva malé `indikátory napětí `__, též na `Robodoupěti `__), krátký a dlouhý, jako klasické 2v1 :) .. |EdgeRS-schema1.png| image:: EdgeRS-schema1.png :width: 250 :align: top :target: EdgeRS-schema1.png .. |EdgeRS-schema2.png| image:: EdgeRS-schema2.png :width: 250 :align: top :target: EdgeRS-schema2.png .. |EdgeRS_test-D-flop.jpg| image:: EdgeRS_test-D-flop.jpg :width: 250 :align: top :target: EdgeRS_test-D-flop.jpg .. |EdgeRS_test-NOR.jpg| image:: EdgeRS_test-NOR.jpg :width: 250 :align: top :target: EdgeRS_test-NOR.jpg .. |EdgeRS_test-input.jpg| image:: EdgeRS_test-input.jpg :width: 250 :align: top :target: EdgeRS_test-input.jpg .. |EdgeRS_test.jpg| image:: EdgeRS_test.jpg :width: 250 :align: top :target: EdgeRS_test.jpg ---- Také na `Drobničky 010 - Edge Triggered hradlo RS `__