Hardwarove odstraneni zakmitu spinaciho tlacitka
Moderátor: Moderátoři
- tominekk
- Příspěvky: 295
- Registrován: 16 črc 2004, 00:00
- Bydliště: 49°11'30.229"N, 16°35'29.415"E
- Kontaktovat uživatele:
Hardwarove odstraneni zakmitu spinaciho tlacitka
Resim mozna trivialni vec, ale neda me to se zeptat. Mam zapojenych 16 tlacitek (spinacu nikoli prepinacu) v matici 4x4, pripojenych k MCU.
Softwarove osetrit zakmity neni problem, ale je skoda plytvat casem, kdyz by se mohlo delat neco zajimavejsiho.
Proto bych chtel zakmity odstranit uz na urovni HW => vetsi jistota nez spolehat na programatora.
Kazde tlacitko lze pripojit na MKO s urcitou casovou konstantou. Zde me nyni nenapada jak bych zapojil do matice ty vystupy z MKO aby sla v takovem pripade pouzit metoda Row-scaning (vzorkovani radku je myslim cesky preklad - na sloupec vystavim log nula a snimam na jakem radku se nula objevi).
Jednodussi variantu jsem nekde cetl, ze staci paralelne ke spinaci umistit kondenzator. Nevim vsak, co by mi na to MCU rekl pri nabijeni vybiteho kondiku je kratky zkrat. Nejsem si take moc jisty do jake miry to odstrani zakmity.
Chci se tedy zeptat na zkusenost s timto problemem pripadne nejakou radu nebo zcela jine reseni (chtel bych se ale drzet maticoveho zapojeni).
Dekuji
Vždyť ty kapacity tam nemusíš dávat kdovíjak velké - takových 100n je někdy až zbytečně moc (záleží na pull-někam odporech, čím větší jsou, tím menší kapacita se bude hodit). Pokud bys měl vítr z vybíjecího proudu při stisknutí tlačítka, dej do série s každým kondíkem odpor asi tak 1/50 pull odporu.
Jinak do matice jsme zapojovali emitorové výstupy z Hallových sond MH1SD1 klávesnice Consul 3111 (dokonale bezzákmitová tlačítka, jen poněkud vysoká), když jsme do ní vestavovali počítač ZX Spectrum: tam byly datové vstupy sloupců tahané na plus pomocí pull-up odporů, adresová sběrnice, která budila řádky, spínala buď na Ucc nebo na zem.
Dalo se 40 tranzistorů (5x8, vlastně co tranzistor, to jedna klávesa gumáka), každá klávesa měla dva výstupy, takže z těch 78 se u většiny spojily paralelně, jiné měly vytažený každý výstup jinam (třeba znaky +, -, *,/,;$ atd., numerické klávesy se naopak zdvojily, když už tam ta pravá část byla).
Zkrátka jde o to, že na bázi tranzistoru máš při stisku tlačítka log 1, ale neděje se nic, dokud adresové výstupy jsou také v log 1. Když se příslušný řádek spojí se zemí, tranzistor otevře a přivede na datový vstup log 0.
Fungovalo to naprosto spolehlivě i s programy, které i s originál kontaktní klávesnicí měly problémy (Tasword, EdAssm a podobné).
- Přílohy
-
klavesnice.png- Detail čtyřicetitranzistorového transkodéru klávesnice pro ZX Spectrum.
KDYŽ BASTL, TAK BASTL! - (2.56 KiB) Staženo 196 x
Re: Hardwarove odstraneni zakmitu spinaciho tlacitka
tominekk píše:Softwarove osetrit zakmity neni problem, ale je skoda plytvat casem, kdyz by se mohlo delat neco zajimavejsiho.
A proč bys měl plýtvat časem? Obsluhuj klávesnici v přerušení od časovače jednou za 20-50ms a nemusíš ošetřovat nic.
Ošetřit matici hardwarově při požadavku vyhodnocení více současně stlačených kláves bude zajímavé obvodově i cenově.
- ZdenekHQ
- Významný člen
- Příspěvky: 25519
- Registrován: 21 črc 2006, 00:00
- Bydliště: skoro Brno
- Kontaktovat uživatele:
Re: Hardwarove odstraneni zakmitu spinaciho tlacitka
Andrea píše:tominekk píše:Softwarove osetrit zakmity neni problem, ale je skoda plytvat casem, kdyz by se mohlo delat neco zajimavejsiho.
A proč bys měl plýtvat časem? Obsluhuj klávesnici v přerušení od časovače jednou za 20-50ms a nemusíš ošetřovat nic.
Nebo třeba 1x za 10ms a reaguj až po dvoj či trojnásobné shodě...
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
- tominekk
- Příspěvky: 295
- Registrován: 16 črc 2004, 00:00
- Bydliště: 49°11'30.229"N, 16°35'29.415"E
- Kontaktovat uživatele:
Kdyz myslim, ze to chci osetrit HW, tak opravdu myslim HW a ne SW
Take jsem napsal, ze SW to neni nejmensi problem. Prijde mi vzdy spolehlivejsi se spolehnout na HW pokud tohle reseni nebude podstatne slozitejsi nez SW.
Jinymi slovy chci zjistit slozitost HW osetreni a rozhodnout se, ktere nakonec pouziji. Dik za pochopeni
K veci:
,Proč by měl vadit zkrat nabíjecím proudem kondenzátoru, když předtím ho tam způsobilo tlačítko?
Pravda
Jaky bude vyznam toho kondiku? Nejsem nyni uplne presvedceny, ze zcela spolehlive odstrani zakmit.
Na druhou stranu bastl taky nechci stavet, takze s tema MKO to byla jen takova myslenka, ktera me napadla.
- ZdenekHQ
- Významný člen
- Příspěvky: 25519
- Registrován: 21 črc 2006, 00:00
- Bydliště: skoro Brno
- Kontaktovat uživatele:
Prijde mi vzdy spolehlivejsi se spolehnout na HW pokud tohle reseni nebude podstatne slozitejsi nez SW.
Vždycky bude, a až ten orloj dodrátuješ, nebude tam ten procesor ani vidět. Jediné opravdu spolehlivé HW ošetření zákmitů je použití přepínacího tlačítka a KO, což v případě matice 4x4 bude docela zajímavý zapojení.
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
- tominekk
- Příspěvky: 295
- Registrován: 16 črc 2004, 00:00
- Bydliště: 49°11'30.229"N, 16°35'29.415"E
- Kontaktovat uživatele:
Dnes se clovek zepta na cestu do hospody a dostane odpoved, ze je lepsi jit do kina.
Plytvani casem to je z pohledu MCU. Za tu dobu, kdy se bude cekat je mozne provest polovinu vypoctu. Jinak bych se neptal.
Takze jeste jednou - kondenzator paralelne k tlacitku zajisti spolehlive osetreni zakmitu?
- ZdenekHQ
- Významný člen
- Příspěvky: 25519
- Registrován: 21 črc 2006, 00:00
- Bydliště: skoro Brno
- Kontaktovat uživatele:
tominekk píše:Takze jeste jednou - kondenzator paralelne k tlacitku zajisti spolehlive osetreni zakmitu?
Ne.
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]