da
rusty » 5 feb 2012, 15:46
Le transizioni spurie che si creano pigiando e rilasciando un tasto, per via della meccanica che non chiude istantaneamente e definitivamente, possono essere viste da un punto di vista di "spettro" delle frequenze molto elevate, che essendo indesiderate, si filtrano con un passa basso RC, ecco che il classico debounce usa proprio un circuito RC per far scomparire queste righe di disturbo.
Quello che si fa elettricamente è proprio questo, da un punto di vista temporale puoi pensare al fatto che le transizioni indesiderate sono talmente veloci che non riescono a caricare il condensatore del gruppo RC, quindi vengono rese invisibili e innocue all'uscita del sistema. Il tutto va chiaramente dimensionato stabilendo un tempo (o un polo in frequenza, è la stessa cosa) minimo per il quale una transizione venga accettata come tale.
Il segnale filtrato dal gruppo RC potrebbe essere ancora troppo variabile per un ingresso logico, quindi si ricorre al comportamento isteretico, ad esempio un trigger di Schmitt, che ha una soglia per la transizione da livello logico basso a alto e un'altra per la transizione opposta. Una volta passata questa soglia, il trigger si setta finché non vede una transizione nel verso opposto che passi per l'altra soglia di tensione.
Non so se mi son spiegato, ti faccio un piccolo esempio:
Volendo fare i raffinati, come voleva il mio Prof. di Sistemi Digitali, si puo' collegare direttamente il pulsante nudo e crudo all'ingresso di una logica (ad esempio un microcontrollore, o una CPLD, quello che vuoi) e risolvere il problema completamente via software, ad esempio con una simpatica macchina a stati, ma questo è un altro discorso
