Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Accendere un LED con il Flip-Flop

Elettronica lineare e digitale: didattica ed applicazioni

Moderatori: Foto Utentecarloc, Foto Utenteg.schgor, Foto UtenteBrunoValente, Foto UtenteIsidoroKZ

1
voti

[21] Re: Accendere un led con il Flip-Flop

Messaggioda Foto Utenterusty » 30 nov 2013, 16:11

La porta clock del 'HC175 NON e' triggerata, ovvero il circuito disegnato da Foto Utentesimo85 devi realizzarlo cosi' come e' schematizzato, o usando un inverter triggerato o una nand triggerata tipo 'HC132, in altre parole e' un altro integrato che devi aggiungere, scegliendo ad esempio tra questi:

Inverter triggerato: 74HC14
Nand triggerata: 74HC132

Impari piu' leggendo i datasheet che ti linkiamo piuttosto che dalle riviste con schemi improbabili.
Avatar utente
Foto Utenterusty
4.075 2 9 11
Utente disattivato per decisione dell'amministrazione proprietaria del sito
 
Messaggi: 1578
Iscritto il: 25 gen 2009, 13:10

0
voti

[22] Re: Accendere un led con il Flip-Flop

Messaggioda Foto Utentericello9 » 30 nov 2013, 16:22

La porta clock del 'HC175 NON e' triggerata, ovvero il circuito disegnato da simo85 devi realizzarlo cosi' come e' schematizzato, o usando un inverter triggerato o una nand triggerata tipo 'HC132.


Ok, adesso mi procuro un Inverter triggerato come mi hai suggerito e dopo aggiorno il circuito.

Grazie per l'aiuto.
Avatar utente
Foto Utentericello9
195 1 3 7
Stabilizzato
Stabilizzato
 
Messaggi: 360
Iscritto il: 16 mar 2009, 0:13

0
voti

[23] Re: Accendere un led con il Flip-Flop

Messaggioda Foto Utentesimo85 » 30 nov 2013, 18:35

ricello9 ha scritto:Grazie per l'aiuto Simo85, volevo chiederti se quella porta logica che hai disegnato corrisponde ad un integrato esterno o rappresenta l'ingresso di clock del mio 74hc175?

La NAND ad isteresi rappresenta una porta logica esterna al integrato da te usato.

Il circuito interno di clock non è ad isteresi. Vedi schema interno del 74HC145 (datasheet linkato in 1):

cd.png
cd.png (43.02 KiB) Osservato 6993 volte


e confrontalo con il circuito del 74HC74 (datasheet linkato in 6):

cd2.png
cd2.png (25.37 KiB) Osservato 6993 volte


Quest'ultimo è un ingresso ad isteresi.
Ciao.
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

1
voti

[24] Re: Accendere un led con il Flip-Flop

Messaggioda Foto Utenterusty » 1 dic 2013, 0:41

In attesa del trigger, prova a fare questa prova veloce.
Stai attento alle connessioni, ti ho numerato i piedini del '175 cosi' non puoi sbagliare.

Avatar utente
Foto Utenterusty
4.075 2 9 11
Utente disattivato per decisione dell'amministrazione proprietaria del sito
 
Messaggi: 1578
Iscritto il: 25 gen 2009, 13:10

9
voti

[25] Re: Accendere un led con il Flip-Flop

Messaggioda Foto UtentePietroBaima » 1 dic 2013, 4:05

Che ne dite di progettare la stessa macchina in sincrono? :D

Scelgo di progettare una macchina di Moore.
Diagramma a stati:



In questo diagramma ho riportato in rosso lo stato e, subito dopo la barra, la relativa uscita, che andrà collegata al LED.
Lo stato del pulsante è stato indicato con P. P=0 significa "pulsante premuto".
Sono presenti due stati trappola, indicati con la scritta "TRAP STATE". Servono per fare in modo che, quando viene premuto il pulsante P, la macchina non si porti in uno stato stabile finché il tasto non viene rilasciato. Questo serve per fare in modo che, premendo il tasto, la macchina non commuti di continuo tra lo stato LED ACCESO/LED SPENTO ma si fermi finché il tasto non viene rilasciato.
Il "fulmine" con la scritta RESET indica lo stato nel quale viene forzata la macchina all'accensione.
Noterete che ho forzato la macchina a portarsi, all'accensione, in un TRAP STATE. Quando ci sono dei pulsanti conviene sempre forzare la macchina in un TRAP STATE, perché il condensatore che viene utilizzato per fare l'antirimbalzo dei pulsanti, all'accensione, risulta scarico, quindi la macchina è portata a credere che il pulsante sia premuto e, quindi, commuta l'uscita. Inoltre non è possibile fare previsioni sulla durata di questo evento perché non si otterrebbe un risultato affidabile. Meglio portare la macchina in un TRAP STATE che la condurrà, quando P verrà rilasciato, allo stato "LED SPENTO". Fino a che il condensatore è carico rimarrà nel TRAP STATE, dopodichè si porterà nello stato "LED SPENTO".
Il condensatore in questione fa parte del circuito antirimbalzo del pulsante, comunque necessario, perché, altrimenti, la macchina sarebbe portata a credere che l'utente stia premendo ripetutamente il pulsante e, quindi, farebbe più accensioni/spegnimenti con un singolo azionamento.
Per fare un circuito antirimbalzo completamente digitale sarebbe necessario inserire un contatore che conteggi un tempo di "blanking". Questa è la soluzione che viene solitamente impiegata quando si implementa la FSM su logica programmabile.
La numerazione scelta, per gli stati, è quella che minimizza la logica circuitale.
Facciamo quindi la mappa degli stati, ricavandola dal diagramma a stati:

Le funzioni logiche per D_0 e D_1 sono quindi:

D_0=Q_0P+Q_1 \overline{P}

D_1=\overline{Q_0}P+Q_1 \overline{P}
Per l'uscita Y (il LED) è possibile notare che
Y=Q_0

Scelgo di implementare la rete utilizzando solo porte NAND (e sceglierò un 74HCT132, in modo da poterle utilizzare anche per fare l'oscillatore e l'antirimbalzo per il tasto).

Riscrivo quindi le funzioni logiche in modo da usare solo NAND:

D_0=\overline{\overline{Q_0P}\cdot \overline{Q_1 \overline{P}}}

D_1=\overline{\overline{\overline{Q_0}P}\cdot \overline{Q_1 \overline{P}}}

Per quanto riguarda il tasto P, dato che è disponibile un FF in più, dopo averlo ripulito dai rimbalzi, scelgo di renderlo sincrono, in modo da non avere un bit asincrono nella rete, che potrebbe creare problemi di vario tipo. In questo modo risparmio anche una NAND perché all'uscita del FF avrò sia P che P negato.

Per quanto riguarda l'oscillatore, direi che anche una frequenza ridicola, pari per esempio a 10kHz, sia più che sufficiente.
Facendo i calcoli per delle porte di tipo HCT, la frequenza ottenuta da un oscillatore a singola porta NAND è
f=\frac{1}{0.6RC}.
Scegliendo un condensatore di capacità pari a 10nF (la capacità di ingresso della porta è dell'ordine delle decine di pF, quindi 10nF va bene) devo impiegare quindi un resistore di resistenza pari a 18k\Omega circa. Con questi valori ottengo f=9259Hz circa. Direi che va benissimo.
La stessa formula mi permette anche di progettare il circuito antirimbalzo, scrivendola come:
T=0.6RC.
Ipotizzando un tempo di rimbalzo per il tasto di 30ms ottengo R=10k\Omega e C=4.7\mu F. In serie al pulsante metterò una resistenza pari a 1k\Omega, in modo da contenere la corrente di chiusura del tasto e garantire che il condensatore non si scarichi di colpo, cosa che potrebbe dare qualche commutazione non desiderata.

Non resta che mettere tutte le cose insieme e disegnare quindi lo schema elettrico:



Ecco come viene progettata una macchina a stati (FSM) a livello professionale.
Chiaramente la complicazione della logica, rispetto a una macchina asincrona, ne risente.
Per la verità, in questo caso, nemmeno più di tanto, avendo impiegato solo tre integrati. ;-)
Macchine sincrone più complesse vengono oggi implementate su FPGA o microcontrollori, dove i problemi relativi al contenimento del numero di FF o di porte logiche sono infinitamente meno sentiti.

Con questo è tutto.
O_/
Pietro.

PS: YAHHHWM... maledetta insonnia...è colpa sua se mi metto a scrivere 'ste robe :(
Generatore codice per articoli:
nomi
Sul forum:
[pigreco]=π
[ohm]=Ω
[quadrato]=²
[cubo]=³
Avatar utente
Foto UtentePietroBaima
90,7k 7 12 13
G.Master EY
G.Master EY
 
Messaggi: 12206
Iscritto il: 12 ago 2012, 1:20
Località: Londra

2
voti

[26] Re: Accendere un led con il Flip-Flop

Messaggioda Foto Utenterusty » 1 dic 2013, 4:09

Foto UtentePietroBaima te non stai bene eh!
Ti metti a fare gli esercizi del primo anno di Calcolatori Elettronici alle 2 del mattino... forse domani riesco a farlo ancora piu' complicato, aspetta eh, ti piazzo sto bell'automa in una CPLD XC9536 descritta in Verilog :mrgreen:
Avatar utente
Foto Utenterusty
4.075 2 9 11
Utente disattivato per decisione dell'amministrazione proprietaria del sito
 
Messaggi: 1578
Iscritto il: 25 gen 2009, 13:10

1
voti

[27] Re: Accendere un led con il Flip-Flop

Messaggioda Foto Utenteclaudiocedrone » 1 dic 2013, 5:05

:-) Fate benissimo a fare queste cose a qualsiasi ora le postiate poiché io non ci capisco una mazza ma per gli studenti del campo esempi simili, a mio parere, sono davvero molto utili. O_/
"Non farei mai parte di un club che accettasse la mia iscrizione" (G. Marx)
Avatar utente
Foto Utenteclaudiocedrone
21,3k 4 7 9
Master EY
Master EY
 
Messaggi: 15300
Iscritto il: 18 gen 2012, 13:36

0
voti

[28] Re: Accendere un led con il Flip-Flop

Messaggioda Foto Utentericello9 » 1 dic 2013, 17:40

In attesa del trigger, prova a fare questa prova veloce.
Stai attento alle connessioni, ti ho numerato i piedini del '175 cosi' non puoi sbagliare.




Ciao Rusty, ho provato il tuo circuito e FUNZIONA!
Correggimi se sbaglio:
all'accensione il led è spento perché anche se ho il livello logico alto sull'ingresso D l'integrato non sente nessun fronte di salita sul pin di clock e di conseguenza non mi abilita l'uscita; la resistenza da 10k ha la funzione di tenere a livello logico basso il pin ck e di scaricare il condensatore una volta rilasciato il pulsante.
Una volta premuto il pulsante tramite la resistenza da 330 e il condensatore da 10u ho una fronte di salita sul pin di clok e in contemporanea ho un filtro per i rimbalzi causati dalla pressione del pulsante.
Sentito il segnale di clock l'uscita q va a livello alto accendendo il led metre la q negata va a livello basso come di conseguenza anche l'ingresso D; così alla prossima pressione del tasto il led si spegne.
Sono molto distante dal capire il funzionamento?

Grazie per l'aiuto.
Avatar utente
Foto Utentericello9
195 1 3 7
Stabilizzato
Stabilizzato
 
Messaggi: 360
Iscritto il: 16 mar 2009, 0:13

0
voti

[29] Re: Accendere un led con il Flip-Flop

Messaggioda Foto Utenterusty » 1 dic 2013, 18:00

Esatto, funziona bene o male cosi'.
Per l'antirimbalzo anche, ma dipende molto dai valori che usi per C e le R associate ai fronti, li ho scelti "larghi" di modo da non avere problemi.

Certo che funziona, non è il modo piu' ortodosso di farlo, ma funziona ;-)
Ora pero' monta quello di Foto UtentePietroBaima, altrimenti si offende eh! :mrgreen: :mrgreen: :mrgreen:


E' stato un piacere, ciao :ok:
Ultima modifica di Foto Utenterusty il 1 dic 2013, 18:05, modificato 1 volta in totale.
Avatar utente
Foto Utenterusty
4.075 2 9 11
Utente disattivato per decisione dell'amministrazione proprietaria del sito
 
Messaggi: 1578
Iscritto il: 25 gen 2009, 13:10

1
voti

[30] Re: Accendere un led con il Flip-Flop

Messaggioda Foto Utenteobiuan » 1 dic 2013, 18:05

PietroBaima ha scritto:Che ne dite di progettare la stessa macchina in sincrono? :D

[...]

Con questo è tutto.
O_/
Pietro.

PS: YAHHHWM... maledetta insonnia...è colpa sua se mi metto a scrivere 'ste robe :(


Bellissimo Pietro, complimenti! (e spiacente per l'insonnia :P)
_______________________________________________________
Gli oscillatori non oscillano mai, gli amplificatori invece sempre

Io HO i poteri della supermucca, e ne vado fiero!
Avatar utente
Foto Utenteobiuan
5.894 3 10 13
Master
Master
 
Messaggi: 980
Iscritto il: 23 set 2013, 23:45

PrecedenteProssimo

Torna a Elettronica generale

Chi c’è in linea

Visitano il forum: Nessuno e 89 ospiti