Hardwarove odstraneni zakmitu spinaciho tlacitka

Problémy s návrhem, konstrukcí, zapojením, realizací elektronických zařízení

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
tominekk
Příspěvky: 295
Registrován: 16 črc 2004, 02:00
Bydliště: 49°11'30.229"N, 16°35'29.415"E
Kontaktovat uživatele:

Hardwarove odstraneni zakmitu spinaciho tlacitka

#1 Příspěvek od tominekk »

Zdarec vsem.
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
Chytrej člověk se učí chybama, ale jenom blbec těma svejma!

Uživatelský avatar
Hill
Administrátor
Administrátor
Příspěvky: 18898
Registrován: 10 zář 2004, 02:00
Bydliště: Jičín, Český ráj

#2 Příspěvek od Hill »

Proč by měl vadit zkrat nabíjecím proudem kondenzátoru, když předtím ho tam způsobilo tlačítko?
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 105 x

Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 02:00

Re: Hardwarove odstraneni zakmitu spinaciho tlacitka

#3 Příspěvek od Andrea »

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.

Uživatelský avatar
Crifodo
Příspěvky: 14471
Registrován: 11 říj 2005, 02:00

#4 Příspěvek od Crifodo »

Ty magnetické klávesy jsou velmi noblesní, z časů kdy se výpočetní technika navrhovala i realizovala jako šperky, ale v době membránových klávesnic z recyklovaného plastu a čínských mikrospínačů 5x5mm už to je silně z módy :(
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ě.

Uživatelský avatar
piitr
Příspěvky: 1003
Registrován: 19 říj 2007, 02:00
Kontaktovat uživatele:

#5 Příspěvek od piitr »

Já bych to udělal softwarově - ke každé klávese jeden jednočip.

Uživatelský avatar
Burajko
Příspěvky: 1803
Registrován: 21 srp 2009, 02:00

#6 Příspěvek od Burajko »

Uz ked trvas na tom hardware,tak tam daj RC clen + schmit.tvarovac.
Ale je to len plitvanie materialom.Ked uz mas takeho slabeho programatora pochybujem ,ze ten projekt dobre dopadne.
Už druhý krát strihám a furt je to krátke

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

Re: Hardwarove odstraneni zakmitu spinaciho tlacitka

#7 Příspěvek od ZdenekHQ »

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ě...
Pro moje oslovení klidně použijte jméno Zdeněk
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[?
]

Uživatelský avatar
tominekk
Příspěvky: 295
Registrován: 16 črc 2004, 02:00
Bydliště: 49°11'30.229"N, 16°35'29.415"E
Kontaktovat uživatele:

#8 Příspěvek od tominekk »

Na blbe poznamky vazne nemam naladu. Tohle je "odborne" forum a ne tlacharna na trhu ;)

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 ;) uz bylo trosku pozde a pri formulaci dotazu jsem tuto skutecnost nevzal v uvahu.

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.
Chytrej člověk se učí chybama, ale jenom blbec těma svejma!

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#9 Příspěvek od ZdenekHQ »

Doufám, že potom i ten procesor postavíš z pasivních součástek, aby sis to pořádně užil. Na co se spoléhat na výrobce čipů.
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í.
Pro moje oslovení klidně použijte jméno Zdeněk
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[?
]

Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 02:00

#10 Příspěvek od Andrea »

tominekk píše:Take jsem napsal, ze SW to neni nejmensi problem.
Asi je, když píšeš, že je to plýtvání časem.

Uživatelský avatar
tominekk
Příspěvky: 295
Registrován: 16 črc 2004, 02:00
Bydliště: 49°11'30.229"N, 16°35'29.415"E
Kontaktovat uživatele:

#11 Příspěvek od tominekk »

No jo Vy vite vsechno nejlip.
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?
Chytrej člověk se učí chybama, ale jenom blbec těma svejma!

Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 02:00

#12 Příspěvek od Andrea »

tominekk píše:Plytvani casem to je z pohledu MCU. Za tu dobu, kdy se bude cekat je mozne provest polovinu vypoctu. Jinak bych se neptal.
Jo ty nevíš co to je časovač a k čemu jsou přerušení, tak to potom jo. :roll:

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#13 Příspěvek od ZdenekHQ »

tominekk píše:Takze jeste jednou - kondenzator paralelne k tlacitku zajisti spolehlive osetreni zakmitu?
Ne.
Pro moje oslovení klidně použijte jméno Zdeněk
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[?
]

Uživatelský avatar
Crifodo
Příspěvky: 14471
Registrován: 11 říj 2005, 02:00

#14 Příspěvek od Crifodo »

dá se za hw řešení považovat to, že podřízený µP slouží jako řadič klávesnice a po stisku kláves(y) přeruší hlavní µP a předá mu kód klávesy?
zákmity tlačítka by řešil podřízený µP softwarově, ale žádné výpočty by nebrzdil.

Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 02:00

#15 Příspěvek od Andrea »

Když se stav kláves čte jednou za 20-50ms v přerušení od časovače, tak to taky nic nebrzdí a zákmity to spolehlivě odstraní. Troufám si tvrdit, že to procesor zatíží míň, než komunikace s druhým procesorem. Ale proč dělat věci jednoduše, když jdou udělat složitě, že.

Odpovědět

Zpět na „Řešení problémů s různými konstrukcemi“