Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Conversione binario BCD tramite contatori

Elettronica lineare e digitale: didattica ed applicazioni

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

0
voti

[1] Conversione binario BCD tramite contatori

Messaggioda Foto UtenteGabrieleBe » 18 giu 2013, 14:46

Buongiorno a tutti, sono nuovo del forum. Sono uno studente di un istituto tecnico di elettronica e mi servirebbe il vostro aiuto per un mio piccolo progetto. Devo convertire un codice binario (per il momento sto provando con 4 bit, poi lo farò con 8) in bcd usando i contatori: il concetto è semplice, un contatore de-conta in binario il numero da convertire e il secondo contatore conta in bcd. Ho pensato di usare il contatore 4029, ma non riesco a implementare il circuito. Spero che qualcuno possa aiutarmi :-)
Avatar utente
Foto UtenteGabrieleBe
55 1 4
 
Messaggi: 37
Iscritto il: 12 giu 2013, 16:06
Località: Brescia, Italia

0
voti

[2] Re: Conversione binario BCD tramite contatori

Messaggioda Foto Utenterusty » 18 giu 2013, 14:55

Non ho capito, praticamente non puoi usare un 4511?
Spiega bene, magari con uno schemino, cosa dovresti fare.
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

[3] Re: Conversione binario BCD tramite contatori

Messaggioda Foto UtenteGabrieleBe » 18 giu 2013, 15:02

rusty ha scritto:Non ho capito, praticamente non puoi usare un 4511?
Spiega bene, magari con uno schemino, cosa dovresti fare.


Ho 4 bit binari che devo visualizzare: il 4511 accetta come ingressi dei numeri in bcd, quindi quando deve visualizzare, ad esempio, il numero decimale 15, ovvero 1111 in binario, mi servono due display, quindi due 4511: dei 4 bit in binario originali quindi devo mandare 0101 (5 decimale)al primo 4511, che visualizza le unità e 0001 (1 decimale) al secondo 4511, che visualizza le decine.
Spero di essere stato chiaro e grazie per la risposta :-)
Avatar utente
Foto UtenteGabrieleBe
55 1 4
 
Messaggi: 37
Iscritto il: 12 giu 2013, 16:06
Località: Brescia, Italia

0
voti

[4] Re: Conversione binario BCD tramite contatori

Messaggioda Foto Utenterusty » 18 giu 2013, 15:25

1111 sarebbe sempre una cifra, in esadecimale "F", tu quindi vuoi un convertitore binario->decimale da visualizzare in 7-seg.
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

[5] Re: Conversione binario BCD tramite contatori

Messaggioda Foto UtenteGabrieleBe » 18 giu 2013, 15:30

rusty ha scritto:1111 sarebbe sempre una cifra, in esadecimale "F", tu quindi vuoi un convertitore binario->decimale da visualizzare in 7-seg.


Esattamente, voglio visualizzare le cifre da 1010 a 1111 in decimale, quindi servono due display 7 segmenti.
Avatar utente
Foto UtenteGabrieleBe
55 1 4
 
Messaggi: 37
Iscritto il: 12 giu 2013, 16:06
Località: Brescia, Italia

3
voti

[6] Re: Conversione binario BCD tramite contatori

Messaggioda Foto Utentecarloc » 19 giu 2013, 10:27

Beh direi che è un esercizio interessante :D...
esercizio perché un po' più praticamente direi che non è il modo di fare quella conversione che invece è il classico lavoro per la logica combinatoria :cool:

ma comunque "sopportando" un tempo di conversione "lungo" e variabile direi che si può fare.

Io inizierei fissando un po' di punti:
i) presento il dato binario al circuito.

ii) attivo un ingresso "start conversion" che potrebbe essere circa coincidente con il preset del contatore binario.

iii) arrivato a zero il contatore binario si ferma, segnalando tra l'altro "end of conversion".

iv) nello stesso tempo si è attivato il contatore BCD che ha contato lo stesso numero di impulsi di quello binario.

Grosso modo un qualcosa tipo questo diagramma a blocchi, dove ancora si devono affinare alcune cosette...

comunque comincia col postare un inizio di schema che andiamo avanti :ok:
Se ti serve il valore di beta: hai sbagliato il progetto!
Avatar utente
Foto Utentecarloc
33,8k 6 11 13
G.Master EY
G.Master EY
 
Messaggi: 2153
Iscritto il: 7 set 2010, 19:23

0
voti

[7] Re: Conversione binario BCD tramite contatori

Messaggioda Foto UtenteGabrieleBe » 19 giu 2013, 21:39

carloc ha scritto:Beh direi che è un esercizio interessante :D... :ok:


Grazie mille per la risposta, naturalmente la mia realizzazione è intesa come esercizio, anche perché si può realizzare con altre tecniche, molto più convenienti :-)

Nel frattempo stamattina sono giunto a realizzare un circuito funzionante, leggermente diverso da quello che hai postato: praticamente entrambi i contatori contano in up e il conteggio si ferma quando le uscite del contatore binario sono uguali al dato binario inserito (per verificare questo ho usato 4 xor che vanno in or). Il problema di questo circuito sta nel fatto che dopo aver eseguito il primo conteggio, non so come presettare i contatori a zero. Secondo te questa soluzione è valida o è meglio quella che hai proposto?
Avatar utente
Foto UtenteGabrieleBe
55 1 4
 
Messaggi: 37
Iscritto il: 12 giu 2013, 16:06
Località: Brescia, Italia

2
voti

[8] Re: Conversione binario BCD tramite contatori

Messaggioda Foto Utentecarloc » 19 giu 2013, 22:04

Beh nella tua realizzazione ci vanno in più le porte per fare il confronto (BTW se cerchi ci sono comparatori tipo 4585 o 7485 per 4 bit o 74688 per 8 bit, magari ti semplifichi un po' la vita ;-) ) ma se è ok per te :ok:

D'altra parte ad esempio i 4029 non hanno l'uscita "zero" che serve nel mio schema :? ma invece hanno il carry out che va alto per conteggio=15 invece. Ci sarebbe da mettere un po' a posto i dettagli e/o cercare qualche altro contatore.

Oppure potresti vedere di ridurre un po' la logica di comparazione considerando che se conti solo "up" non ti serve di controllare tutti i bit (cioè che quelli che devono essere alti siano alti e che quelli che devono essere bassi siano bassi) come fai con gli XOR.
Invece è sufficiente controllare solo che quelli che devono essere alti siano alti :D

Piuttosto considera il fatto di sincronizzare il comando di start con il clock dei contatori, se sono due cose non correlate rischi di attivare il circuito troppo vicino ad un fronte di clock con risultati imprevedibili.

Infine per riavviare non mi pare ci debbano essere grandi problemi... non hai dei reset in giro ?
Se ti serve il valore di beta: hai sbagliato il progetto!
Avatar utente
Foto Utentecarloc
33,8k 6 11 13
G.Master EY
G.Master EY
 
Messaggi: 2153
Iscritto il: 7 set 2010, 19:23

0
voti

[9] Re: Conversione binario BCD tramite contatori

Messaggioda Foto UtenteGabrieleBe » 19 giu 2013, 22:14

carloc ha scritto:se cerchi ci sono comparatori tipo 4585 o 7485 per 4 bit o 74688 per 8 bit, magari ti semplifichi un po' la vita ;-)

Infatti avevo pensato di usare un comparatore, ma non l'avevo a disposizione...

carloc ha scritto:Oppure potresti vedere di ridurre un po' la logica di comparazione considerando che se conti solo "up" non ti serve di controllare tutti i bit (cioè che quelli che devono essere alti siano alti e che quelli che devono essere bassi siano bassi) come fai con gli XOR.
Invece è sufficiente controllare solo che quelli che devono essere alti siano alti

Grazie per il consiglio, non ci avevo pensato :-)

Per il reset avevo pensato di collegare tutti i preset dei contatori a massa e di mandare alto il pin del preset enable per fornire una sorta di reset. Potrei usare il segnale in uscita dalla or che ha come ingresso le xor della comparazione. Praticamente dovrei fornire un impulso quando questo segnale passa da 0 a 1, ma non saprei come... :?
Avatar utente
Foto UtenteGabrieleBe
55 1 4
 
Messaggi: 37
Iscritto il: 12 giu 2013, 16:06
Località: Brescia, Italia

2
voti

[10] Re: Conversione binario BCD tramite contatori

Messaggioda Foto Utentecarloc » 19 giu 2013, 23:16

Sì ok ottimo :ok: ... preset in a zero e preset enable diventa un reset :ok:

Però invece ti sconsiglio di collegare questo preset enable all'uscita comparazione ok :(

prima di tutto cosa che fai azzeri anche il contatore BCD? direi di no altrimenti dove leggi il risultato? Ma anche e soprattutto non mai una bella cosa fare questi "reset acrobatici" che funzionano in base al tempo di propagazione delle porte impiegate.

Mi spiego:
comparatore vero => reset asserito => dato a zero => comparatore falso

questo "giro" viene fatto in un tempo "piccolo" e poco prevedibile... dipende dai tempi di propagazione delle porte "implicate". Ora non è detto che non funzioni, anzi è pieno il mondo di schemi fatti così, ma è rischioso, può essere che funzioni o meno in base a tolleranze di costruzione degli IC, tensione di alimentazione, carico sulle porte, temperatura (oroscopo :mrgreen: ) in somma secondo me è il sistema di fare un circuito che funziona in modo marginale, come dire "per fortuna".

Se ti avvicini al mondo della logica sequenziale ti consiglio caldamente di fare macchine sincrone, ogni cosa deve essere rigidamente provocata da una transizione del clock. In questo modo hai tempi certi e ripetibili che tra l'altro ti permettono di "sfruttare" la velocità della particolare famiglia logica che stai usando in "sicurezza".

In questo caso potresti semplicemente mettere un flip-flop D...



ed otterresti un impulso di reset lungo proprio un periodo :ok: :ok:

ora magari non ho capito come gestisci lo start della conversione invece :( :( se fai uno schema -con FidoCadJ mi raccomando :D - vediamo anche i dettagli
Se ti serve il valore di beta: hai sbagliato il progetto!
Avatar utente
Foto Utentecarloc
33,8k 6 11 13
G.Master EY
G.Master EY
 
Messaggi: 2153
Iscritto il: 7 set 2010, 19:23

Prossimo

Torna a Elettronica generale

Chi c’è in linea

Visitano il forum: Nessuno e 68 ospiti