Zákmity při sepnutí nebo rozepnutí relé nevadí většině aplikací. Pokud spínání relé zpracovává dostatečně rychlý digitální obvod, který je schopen detekovat i zákmity, může docházet k selhání celé aplikace. Úkolem vývojáře je zmírnit účinky těchto zákmitů. Tento článek popisuje softwarové a hardwarové přístupy k eliminaci zákmitů. V některých situacích má hardwarové řešení lepší vlastnosti, a proto si ukážeme jeho správnou implementaci. Představíme si příklady hardwarového řešení od společnosti NKK Switches , ON Semiconductor , Texas Instruments , Maxim Integrated a LogiSwitch.
Co je to zakmitávání relé?
Přepnutí přepínače nebo relé do požadované pozice člověk vnímá jako jednu změnu stavu. Ve skutečnosti dochází k několika desítkám sepnutí a rozepnutí, které trvají několik tisícin sekundy, než se ustálí v požadované pozici.
Představme si jednopólový, normálně otevřený (NO) přepínač s jedním výstupem (SPST) jako M2011SS1W01 od NKK. Jedna strana tohoto přepínače (vstup) je připojen k zemi (0 voltů), zatímco druhá strana (výstup) je připojen k 5 V napájecímu zdroji (zobrazeno jako +ve) pomocí pull-up rezistoru (R1) (obrázek 1).
Obrázek 1: V přepínači SPST-NO může docházet k odskakování neboli zákmitům, jak při aktivaci, tak deaktivaci spínače. (Zdroj obrázku: Max Maxfield)
K zákmitu spínače může dojít při aktivaci (sepnutí) i při deaktivaci (rozepnutí). Někdy mohou zákmity dosahovat plné úrovně napájecího napětí a zemi čili logických stavů 0 a 1. Jedná se o tzv. „clean“ zákmity (čisté). Pokud signál dosáhne pouze středního napětí, označují se tyto zákmity jako „dirty“(špinavé).
V případě jednopólového přepínacího spínače s dvojitým výstupem (SPDT), jako je NKK M2012SS1W01-BC, může dojít k zákmitům jak na normálně otevřených (NO), tak na normálně zavřených (NC) svorkách (obrázek 2). V tomto případě jsou pro jednoduchost ukázány pouze „čisté“ zákmity.
Obrázek 2: V případě přepínače SPDT může dojít k zákmitům na svorkách NO i NC, když je spínač aktivován (sepnut) a deaktivován (rozepnut). (Zdroj obrázku: Max Maxfield)
V mnoha případech je doba trvání zákmitu signálu taková, že nemá žádný vliv. Problémy nastanou, když je spínač připojen k rychlému digitálnímu obvodu, který je schopen tyto zákmity detekovat. Proto je nutné najít způsob, jak tyto zákmity eliminovat nebo filtrovat.
Softwarové vs hardwarové potlačení zákmitů
V šedesátých a sedmdesátých letech se potlačení zákmitů přepínačů (Debouncing) provádělo pomocí různých hardwarových technik. Mezi ně patřili jednoduché zpožďovací obvody rezistor-kondenzátor (RC) používaných u přepínačů SPST až po sofistikovanější funkce „latch“ set / reset (SR) jako to známe u klopných obvodů.
V poslední době převažuje použití software, jelikož i ty jednoduché elektronické systémy obsahují mikrokontroler. Softwarové řešení však není vždy tou nejlepší volbou. Některé použité mikrokontrolery jsou málo výkonné, mají malou paměť pro přídavný kód debouncingu a nejsou dostatečně rychlé pro implementaci debounce rutin. V těchto případech je lepší použít hardwarové řešení.
Mnoho softwarových vývojářů nemá dostatečné vědomosti o fyzikálních vlastnostech přepínačů, zejména o tom, že zákmity jsou ovlivněny podmínkami prostředí, jako je teplota a vlhkost. Problém může být také nedostatečné dostupné informace o tomto jevu. Běžně se dočteme, že přepínač po aktivaci nebo deaktivaci se ustálí do 1 ms.
Expert na vestavěné systémy Jack Ganssle provedl empirické testy na různých typech přepínačů. Každý typ přepínače aktivoval 300krát a zaznamenal minimální a maximální čas, po kterou zákmity trvají. Zjistil, že průměrná doba zákmitů je 1,6 ms a maximální doba dosahovala 6,2 ms. Některé průmyslové osvědčené postupy doporučují počkat až 20 ms po počáteční aktivaci.
Kromě toho existuje mnoho jednoduchých systémů, které nejsou založeny na mikrokontrolerech a vyžadují eliminaci zákmitů přepínačů. Příkladem je binární čítač pro sedmi segmentový displej počítající impulsy z relé. Relé je připojeno přímo na vstup časovače 555, který ovládá motor dveří nebo brány. Dalším příkladem mohou být některé elektronické potenciometry, jejichž hodnoty odporu se nastavují pomocí spínačů tak, že se připíná příslušný počet rezistorů. Zde by zákmit přepínače mohl mít neblahý vliv na celou funkci aplikace. Takových aplikacích je mnoho, a proto je dobré vědět, jak eliminaci zákmitů provést pomocí hardwarového řešení.
Eliminace zákmitů přepínače SPST pomocí RC členu
Jedno z nejjednodušších řešení zákmitů přepínačů je použití rezistor-kondenzátor (RC) členu. Existuje mnoho variant takového obvodu. Jedna z nejuniverzálnějších implementací obsahuje kromě kondenzátoru dva odpory a diodu (obrázek 3).
Obrázek 3: Použití RC členu pro eliminaci zákmitů přepínače SPST (nahoře). Při rozepnutém kontaktu se přes přidanou diodu D1 a R1 rezistor nabíjí kondenzátor C1. Při sepnutí kontaktu se kondenzátor C1 vybije přes rezistor R2. (Zdroj obrázku: Max Maxfield)
Pokud je spínač aktivován (sepnut), kondenzátor C1 je vybit přes odpor R2. Pokud by tam nebyla dioda D1, pak by při deaktivaci (rozepnutí) spínače byl kondenzátor C1 nabíjen přes odpory (R1 + R2). Přítomnost D1 způsobí, že kondenzátor C1 se bude nabíjet pouze přes R1. Pouze v některých případech, kdy je aplikace zaměřena pouze na aktivaci přepínače (Sepnutí), je možné diodu D1 vynechat.
Je nutné připomenout, že nabíjení a vybíjení kondenzátoru má exponenciální tvar. Proto tento výstupní signál není vhodné připojit přímo na vstup navazující digitální logické funkce, jelikož se signál (kvůli exponenciálnímu tvaru) nachází v nedefinované oblasti logické úrovně 0 a logické úrovně 1. Řešením je použití vyrovnávací paměti se Schmittovým vstupem. Obvykle se používá invertující vyrovnávací paměť jako je jeden kanál CD74HC14M96 od společnosti Texas Instruments. Je obecně známo, že invertující funkce se přepínají rychleji než neinvertující.
Eliminace zákmitů přepínače SPDT pomocí Latch SR funkce
V případě přepínače SPDT je běžným hardwarovým řešením použití funkce Latch SR. Od té doby, kdy společnost IBM používala tuto techniku pro přepínací panely v sálových počítačích kolem šedesátých let, byl tento přístup považován za nejlepší řešení. Takovou funkci Latch SR lze vytvořit pomocí dvou protilehlých dvouvstupových bran logického obvodu NAND. Jedním takovým obvodem je čtyřpásmový NAND IC SN74HC00DR od společnosti Texas Instruments (obrázek 4).
Obrázek 4: Použití funkce Latch SR založené na NAND logických obvodech je velmi efektivní hardwarové řešení zákmitů přepínače SPDT. (Zdroj obrázku: Max Maxfield)
Když je NC svorka spínače připojena k zemi, jak je znázorněno v horní polovině obrázku 4, výstup brány g2 se nastaví na logikou úroveň 1. Dvě logické úrovně 1 na vstupech brány g1 vygeneruje na jeho výstupu logickou úroveň 0.
Když je NO svorka spínače připojena k zemi, jak je znázorněno ve spodní polovině obrázku 4, výstup brány g1 se nastaví na logickou úroveň 1. Dvě logické úrovně 1 na vstupech brány g2 vygeneruje na jeho výstupu logikou úroveň 0.
Důvod, proč tento obvod funguje tak dobře, je ten, že když jsou oba jeho vstupy ve svých neaktivních stavech – logická úroveň 1, funkce Latch SR si pamatuje svou předchozí hodnotu. Je nutné si připomenout, že když je přepínač SPDT přepnut, svorka připojená k zemi zakmitne jako první (obrázek 2).
Eliminace zákmitů přepínače SPST pomocí speciálního obvodu
Jeden problém s předchozím řešením je, že existuje mnoho aplikací s přepínači typu SPST, protože jsou levnější než typy SPDT. Na trhu existuje řada speciálních obvodů pro eliminaci zákmitů těchto přepínačů. Například MC14490DWG od společnosti ON Semiconductor nebo MAX6818EAP + T od společnosti Maxim Integrated.
Závěr
Existuje mnoho různých typů spínačů, ale jejich společnou vlastností jsou zákmity. Mikroprocesory a další elektronické obvody místo jedné změny stavu jsou schopny detekovat několik stavů přepínače, a tím může dojít až k selhání systému. Tyto zákmity jsou často filtrovány pomocí software v mikrokontroleru. Bohužel ne všechny elektronické obvody obsahují mikrokontroler s dostatečným výpočetním výkonem a dostatečnou pamětí pro softwarovou realizaci filtrování zákmitů. Proto tu existuje možnost filtrovat zákmity pomocí hardware, a to využitím RC členu, funkce Latch RS nebo využít speciálních integrovaných obvodů.
Článek vyšel v originále na webu DigiKey.com, autorem je Clive "Max" Maxfield.