Flip Flop ST M74HC74B1

Salve.

Tra la vecchia componentistica che mi è arrivata in mano per smanettare, ho trovato una serie di M74HC74B1

Googlando ho visto che sono dei flip-flop (a me sconosciuti giusto 1 minuto prima! :astonished: :blush:)

Mi sembra di aver capito che potrebbero essere utili anche come debouncing, alternativa al debouncing hardware e a quello software nello sketch Arduino.

Ho dei dubbi, perchè in tutti i post letti, anche inerenti al debouncing, non mi sembra di aver mai letto suggerimenti con flip flop...

Non ricordo il link, ma ho letto che appunto con un flip flop è possibile leggere la prima variazione H/L e ignorare le seguenti (per un certo tempo?....).

Qui una piccola esercitazione http://lnx.deltabeta.it/joomla/index.php?option=com_content&view=article&id=270:flip-flop-j-k-con-arduino&catid=61:arduino&Itemid=75 (dove non capisco da dove si arrivi a dire che il flip flop è temporizzato a 0,5 s - si veda il pdf)

per il debouncing non si usano D-FF ma reti RC o monostabili o direttamente in firmware tramite polling ciclici

Ciao, nel mio articolo sul Capacimetro digitale "Vintage" su Elettronica In, ho fatto una bella trattazione teorica sul mondo delle logiche TTL/CMOS, ed anche sul debounce, facendo ricorso ad alcuni tipi di integrati. Tra i vari modelli ch ho usato c'era anche il 74LS74, che è equivalente al 74HC74, anche se cambiano alcuni parametri, ma non è qui la sedeper approfondire. Voglio invece riportarti quando scrissi a proposito di questo integrato, facendo riferimento alla sua tavola della verità (truth table, puoi riferirti a quella che hai linkato per seguire il discorso):

è un Flip-Flop con due elementi di tipo D, con Preset e Clear. Trattare la teoria dei Latch asincroni e sincroni e dei Flip-Flop sarebbe estremamente interessante, ma richiederebbe troppo spazio e ci porterebbe fuori tema, per così dire, quindi qui ci limiteremo a spiegarvi i due usi dei due elementi di questo integrato, ai fini del nostro progetto. Ogni elemento presenta quattro ingressi (PR, CLR, CLK, D) e due uscite (Q, Q’) e, preso singolarmente, può lavorare come “Latch sincrono D” oppure come “Latch asincrono Set-Reset”. Per comprendere bene queste due modalità bisogna osservare attentamente la Tavola della verità di questo integrato.

  • Modalità “Latch sincrono D”: per impostarla bisogna settare i pin d’ingresso PR (Preset) e CLR (Clear) sullo stato H, quindi la parte della Tavola che ci interessa in questo caso è costituita dalle ultime tre righe; i segnali variabili sono allora gli altri due pin d’ingresso CLK (Clock) e D. Nella quarta riga appare il simbolo “?” che rappresenta un “fronte di salita”, cioè il momento in cui sul pin CLK avviene il passaggio tra lo stato LOW e lo stato HIGH. In questo istante, se sul pin D c’è uno stato H, tale stato sarà riportato sull’uscita Q, contestualmente l’uscita Q’ presenterà lo stato logico opposto, cioè L. Se invece (riga 5), nell’istante “?”, sul pin D c’è uno stato logico L, tale stato sarà riportato anche sull’uscita Q, mentre la Q’ avrà lo stato H. Nel momento in cui lo stato logico del pin CLK torna su L (riga 6), gli stati di Q e Q’ non cambiano e restano fissi rispetto all’istante precedente. Quindi, riepilogando, nel momento in cui sull’ingresso CLK avviene una transizione dallo stato L allo stato H, lo stato logico che si trova sull’ingresso D viene istantaneamente riportato identico sull’uscita Q e invertito sull’uscita Q’.
  • Modalità “Latch asincrono Set-Reset”: in questo caso lo stato dei due ingressi CLK e D è ininfluente (X = Don’t care), e le righe che ci interessano sono le prime tre. Nella prima riga si vede che se l’ingresso PR è sullo stato L e l’ingresso CLR sullo stato H, in uscita avremo Q = H e Q’ = L. Viceversa, se l’ingresso PR è sullo stato H e l’ingresso CLR sullo stato L, in uscita avremo Q = L e Q’ = H. Ma cosa succede se PR e CLR si vengono a trovare sullo stesso stato logico? Il caso in cui entrambi si trovano su H l’abbiamo già visto, l’elemento va in modalità “Latch sincrono D”, quindi il comportamento del Latch dipende dai due ingressi CLK e D; invece se entrambi si vengono a trovare su L, il data-sheet parla di configurazione instabile, quindi da evitare.

Come vedi l'IC può lavorare in modalità S-R che, come tale, si presta ad essere usata come debounce, ma il suo comporamento è affidabile solo se ricorri ad un deviatore a molla invece che ad un pulsante. Il deviatore a molla ha una posizione di riposo fissa ed un'altra posizione gestita da una molla interna di ritorno, quando sposti la levetta cambia posizione, ma appena la lasci torna alla posizione di riposo.
In due parole metti sia su PR che su CLR una R di pull-up da 1k, poi colleghi il deviatore con il centrale a GND ed i due laterali: uno su PR e l'altro su CLR. Mettiamo che in posizione di riposo sia il pin PR su LOW: la pull-up mantiene CLR su H, in queste condizioni l'uscita Q è su H (se ti fa comodo invece di Q puoi usare Q' che è sempre in condizione opposta a Q). Appena premi la levetta del deviatore la condizione degli ingressi si inverte, quindi si inverte anche lo stato di Q che ora va su L, e ci resta finché tieni premuta la levetta. Appena rilasci la levetta essa torna in posizione di riposo e cambia nuovamente lo stato delle uscite. Quindi, come vedi, l'integrato potrebbe essere usanto come debounce; di fatto la necessità di un circuito di ritardo RC in ingresso c'è sempre, perché i deviatori hanno comunque i loro bei rimbalzi che devono essere assorbiti da una capacità, per non disturbare il comportamento logico dell'integrato. Con queste note puoi almeno smanettare un poco sull'integrato per capire cone funziona.

icio:
per il debouncing non si usano D-FF ma reti RC o monostabili o direttamente in firmware tramite polling ciclici

grazie

infatti conoscevo quelli

grazie Michele!

ammetto che sto ancora studiando tutto sto popò di roba!!! :slight_smile:

di nulla, quello delle logiche è un mondo che mi affascina e, per quel che ne so, ne parlo volentieri.