Kodér klávesnice Tesla MH1KK1



Dalším z obvodů technologie I2L, se kterým jsem si pohrál, je celkem známý kodér klávesnice Tesla MH1KK1. Na rozdíl od dříve testované HW násobičky MH102, je tento kodér o něco známější a byl také používanější v praxi. Pojďme se na něj tedy blíže podívat.



Tesla MH1KK1



Kodér MH1KK1 je v podstatě převodník kódu 1z16 na 4-bitový binární kód. Je-li stisknuta jedna z 16 kláves připojených na vstupy kodéru, objeví se na výstupech její binární hodnota. Kodér provádí jakýsi "debouncing", tedy eliminuje zákmity tlačítka a proto se hodnota na výstupech objeví až s malým zpožděním. Aby nadřazený řídící obvod (např. procesor) dostal informaci, že došlo ke stisku nové klávesy a její ustálený kód je k dispozici, je obvod MH1KK1 vybaven ješte dvojicí výstupů W1 a W2, které stavem L signalizují uvolněnou klávesnici a stavem H stisknuté tlačítko. Algoritmus obsluhy klávesnice je tedy jednoduchý. Nejprve čekáme na uvolnění klávesnice (W1=W2=L) a následně čekáme na stisk (W1=W2=H). Jakmile k němu dojde, stáhneme si binární kód klávesy z výstupů Q1-Q4. A to je celé. Takto pracuje i následující program pro 8051, se kterým jsem kodér testoval. Kód stisknuté klávesy je zobrazen na LEDkách. Světýlka já rád:-) Způsob připojení MH1KK1 k 8051 je naznačen dále.


    Software pro 8051 a MH1KK1



Na rozdíl od ostatních I2L obvodů MHxx je ve starém tesláckém katalogu uvedeno i základní zapojení a hlavně hodnota napájecího odporu (270R). Nebyl důvod ji nedodržet. Po prvotních zkušenostech s MH102 jsem o I2L obvodech přeci jen už něco věděl:-) Akorát pullupy na výstupech jsem dal větší: 10K.

Trochu oříškem se ukázaly být vstupy. MH1KK1 předpokládá aktivní vstup (sepnuté tlačítko) na úrovni H a naopak rozepnuté tlačítko na L. Není na tom ale nic divného. MH1KK1 se navrhoval pro spolupráci s bezkontaktními magnetickými spínači (hallovými sondami) Tesla MH1SS1, nebo podobnými. Hlavni doménou MH1KK1 tak měly být hlavně bezkontaktní klávesnice. Nicméně to neznamená, že nelze připojit tlačítka přímo. Sice tím přijdeme o hysterezi dále minimalizující zákmity, kterou MH1SS1 má, ale to bych zase neviděl nijak tragicky. To se vyřeší softwarově:-) Ovšem problém jsou ty opačné úrovně. Nelze tedy použít klasického zapojení tlačítka spínajícího k zemi a s pullupem. Buď by se musely použít invertory na vstupech, nebo by to tlačítko muselo být rozpínací a nebo se použije zapojení s pulldown odpory. Právě poslední možnost jsem si vybral, pro její jednoduchost. Ve schématu je naznačeno připojení jednoho tlačítka. Ve skutečnosti jich bude 16. Použité hodnoty nejsou směrodatné. Prostě jsem měl 22K "žebříček" a chtěl jsem mít poměr děliče alespoň 1:10...

Na následujících obrázcích je fotografie z průběhu testu a náčrt připojení MH1KK1 k 8051, resp k mému DUINO52:


Test MH1KK1
Test MH1KK1 s 8051
Test MH1KK1
Připojení MH1KK1 k 8051


Bohužel jsem před rozebráním zapojení nevyzkoušel současný stisk dvou a více kláves (např paralelně spojených), takže jsem nezjistil, jak se v takovém případě obvod chová. Jsem prostě ze staré poctivé školy a řídím se pouze pravdivostní tabulkou. Na nějaké ochcávání asi nemám buňky... Ale snad si s MH1KK1 ještě někdy pohraju. Před časem jsem si navrhl celkem precizní TTL kodér 64-tlačítkové (ale lze i více/méně) klávesnice složený výhradně z obvodů 74xx. Pokusím se do zapojení propašovat namísto multiplexeru 74151 obvod MH1KK1. Myslím, že by se tím zapojení trochu zjednodušilo a měl bych pro MH1KK1 i nějaké využití:-)



Literatura:

[1] Katalogový list Tesla MH1KK1


















RET



Odladěno na MS IE 8.0 a Firefoxu při rozlišení min. 1024 x 768 pixelů
www.NOSTALCOMP.cz    2010  -  2017