Mi pare tu sia caduto nella trappola del Rat-Race.
Il contatore ha il preset asincrono e l'uscita TC è quella di una rete combinatoria, anche questa asincrona. Se chiudi l'anello hai la condizione di Rat-Race. Quando l'uscita TC diventa attiva hai il comando di preset, ma appena uno dei livelli interni si sposta per realizzare la funzione voluta, anche TC cambia, tornando inattivo. L'impulso è troppo breve e la funzione fallisce.
E' un problema subdolo, anche se molto più frequente di quanto si possa credere.
Devi utilizzare un ulteriore elemento di memoria sensibile al fronte (un DFF p.e.). Il FF va triggerato con il fronte opposto del clock del contatore (operazione sincrona). Lo stesso FF deve essere resettato (in modo asincrono) utilizzando il segnale TC. L'uscita del FF è il comando di preset.
Ciò che avviene è questo: nella fase di conteggio il FF è in condizione SET e il comando di preset del contatore è inattivo. Al raggiungimento del limite, TC si attiva in corrispondenza del fronte di conteggio del clock. Immediatamente dopo, FF si resetta in modo asincrono (comandato da TC) e attiva il comando di preset che resta stabile fino al fronte successivo (opposto) del segnale di clock. Arrivato questo fronte, il FF passa in SET, il comando di preset viene rimosso e il contatore è pronto a contare dal prossimo fronte attivo del segnale di clock.
cd4516 presettable counter come divisore di frequenza
Moderatori:
carloc,
g.schgor,
BrunoValente,
IsidoroKZ
0
voti
Sulla base della tua descrizione ho provato fare lo schema allegato , potresti verificarlo se ok e correggerlo.
Grazie in anticipo.
Grazie in anticipo.
Ultima modifica di
admin il 5 mag 2015, 18:43, modificato 1 volta in totale.
Motivazione: eliminata citazione integrale inutile del messaggio che precede.
Motivazione: eliminata citazione integrale inutile del messaggio che precede.
0
voti
Devi mettere il D del FF a 1 fisso.
Devi usare il \Q del FF e non il Q.
Devi mettere il Set del FF a 0 fisso.
Devi invertire anche TC prima di inviarlo al FF.
Le due porte e il FF non utilizzati devono avere gli ingressi fissati a un livello logico stabile.
Devi usare il \Q del FF e non il Q.
Devi mettere il Set del FF a 0 fisso.
Devi invertire anche TC prima di inviarlo al FF.
Le due porte e il FF non utilizzati devono avere gli ingressi fissati a un livello logico stabile.
1
voti
ok grazie , vedi se cosi è ok.
PS. Il CO , tuo TC , è sempre a H , va a L , in count Down , a 0,0,0,0.
PS. Il CO , tuo TC , è sempre a H , va a L , in count Down , a 0,0,0,0.
Ultima modifica di
admin il 5 mag 2015, 18:44, modificato 2 volte in totale.
Motivazione: eliminata citazione integrale inutile del messaggio che precede.
Motivazione: eliminata citazione integrale inutile del messaggio che precede.
0
voti
Pare di sì.
Togli anche quei 10 uF su ogni IC. Fanno più danno che servizio. Se proprio ne vuoi mettere uno, mettilo nel punto dove l'alimentazione arriva alla scheda.
Cosa fai? Lo simuli, lo assembli, breadboard?
Togli anche quei 10 uF su ogni IC. Fanno più danno che servizio. Se proprio ne vuoi mettere uno, mettilo nel punto dove l'alimentazione arriva alla scheda.
Cosa fai? Lo simuli, lo assembli, breadboard?
0
voti
Simularlo non serve , poiché con la sola nand il simulatore funziona.
Ordino alla TME il D FF cd4013 e lo provo su mille fori.
Penso per inizio prox settimana , ciao.
Avevo anche realizzato questo dove il D FF è fatto con porte nand , ma non funziona , vedi se è ok almeno lo schema , poi lo ricontrollo sulla mille fori gia fatta.
Ordino alla TME il D FF cd4013 e lo provo su mille fori.
Penso per inizio prox settimana , ciao.
Avevo anche realizzato questo dove il D FF è fatto con porte nand , ma non funziona , vedi se è ok almeno lo schema , poi lo ricontrollo sulla mille fori gia fatta.
Ultima modifica di
admin il 5 mag 2015, 18:44, modificato 1 volta in totale.
Motivazione: eliminata citazione integrale inutile del messaggio che precede.
Motivazione: eliminata citazione integrale inutile del messaggio che precede.
0
voti
Anch'io sto seguendo gli sviluppi di questo post , perché in effetti è interessante capire come mai non funziona.
Personalmente ho povato con un MM74C193 che tra l' altro è più semplice sincronizzare il clock con il CO,
( che nel conteggio alla rovescia si chiama Borrow . ) ma non c'è verso, fa lo stesso effetto del CD 4516 di
adert
Questa è la prima cosa che ho pensato anch'io dai primi post, angelo, però apparentemente sembra che non sia così, nel senso che qualunque Flip-flop all' interno dell' integrato andasse attivo e e facesse così commutare subito nuovamente il CO senza caricare gli altri flip flop, almeno uno si dovrebbe caricare stabile anche se affetto da disturbo o da dato non stabile ( visto che un flip-flop, in fondo è una serie di latch )
Invece non se ne carica nemmeno uno . Il conteggio è sempre quello della serie input 0000, però sta di fatto che se si riporta il segnale sul PE ( indipendentemente da quale sia il motivo ), il CO non va mai a zero e l' idea di provare con un ulteriore memoria per mandare basso il PE mi sembra buona.
Domani sera, provo anch' io con l' SN74193 ( il CD 4516 non ce l' ho a portata di mano ) a pilotare il Load ( il PE ) con un flip-flop sincronizzato con il clock
spero proprio che funzioni :)
Personalmente ho povato con un MM74C193 che tra l' altro è più semplice sincronizzare il clock con il CO,
( che nel conteggio alla rovescia si chiama Borrow . ) ma non c'è verso, fa lo stesso effetto del CD 4516 di
angel99 ha scritto:Mi pare tu sia caduto nella trappola del Rat-Race.
Il contatore ha il preset asincrono e l'uscita TC è quella di una rete combinatoria, anche questa asincrona. Se chiudi l'anello hai la condizione di Rat-Race. Quando l'uscita TC diventa attiva hai il comando di preset, ma appena uno dei livelli interni si sposta per realizzare la funzione voluta, anche TC cambia, tornando inattivo. L'impulso è troppo breve e la funzione fallisce.
Questa è la prima cosa che ho pensato anch'io dai primi post, angelo, però apparentemente sembra che non sia così, nel senso che qualunque Flip-flop all' interno dell' integrato andasse attivo e e facesse così commutare subito nuovamente il CO senza caricare gli altri flip flop, almeno uno si dovrebbe caricare stabile anche se affetto da disturbo o da dato non stabile ( visto che un flip-flop, in fondo è una serie di latch )
Invece non se ne carica nemmeno uno . Il conteggio è sempre quello della serie input 0000, però sta di fatto che se si riporta il segnale sul PE ( indipendentemente da quale sia il motivo ), il CO non va mai a zero e l' idea di provare con un ulteriore memoria per mandare basso il PE mi sembra buona.
Domani sera, provo anch' io con l' SN74193 ( il CD 4516 non ce l' ho a portata di mano ) a pilotare il Load ( il PE ) con un flip-flop sincronizzato con il clock
spero proprio che funzioni :)
1
voti
Ho realizzato il circuito qui sotto
In pratica il 74193 è un contatore presettabile tipo il CD4516 con qualche lieve caratteristica diversa ( che ovviamente potete leggere nel data sheet ), ma che si intuisce anche dallo schema
Il vantaggio rispetto al CD4516 è quella di avere il CO, che nel conteggio indietro si chiama Borrow, che è attivo basso e attivo basso è pure il Load, pertanto non c'è da invertire niente se vogliamo collegare il Borrow al Load
Altra caratteristica è quella che il Borrow va basso sul fronte di discesa del clock e non su quello di salita come nel conteggio. Questo fa in modo di finire stabilmente il conteggio( immagino ) prima attivare il Borrow che ha così mezzo periodo del clock per caricare il contatore.
Lì per lì realizzato questo schema pensavo non funzionasse , ma in verità il circuito funziona bene, solo che non funziona come pensavo o pensavamo.
Il Borrow carica le uscite e perciò conta, solo che non possiamo prelevare il segnale dal Borrow in quanto è un impulso di circa 500ns.
In pratica, se non riportiamo il Borrow sul Load, possiamo prelevare il clock diviso per 16, ma se lo riportiamo sul Load per caricare le uscite, queste essendo svincolate dal clock resettano immediatamente il Borrow riportandolo alto immediatamente, circa 500 ns di impulso negativo indipendentemente dalla freqenza del clock, che comunque è più che sufficiente a caricare le uscite.
Questo lo si può vedere ponendo l' oscilloscopio su una delle uscite.
Esempio
Se impostiamo 1100 e lo facciamo contare indietro e preleviamo il segnale sull' uscita Qc ( per esempio ) avremo un segnale che comincia con un periodo di clock alto per poi passare a 4 periodi di clock basso,poi altri 4 periodi di clock alto, altri 4 periodi di clock basso per poi ricominciare. In tutto 13 periodi di clock visto che saranno eliminati i conteggi 1101 - 1110 - 1111
Diversa è la sequenza se usiamo un'altra uscita dove prelevare il segnale, ovviamente
Per fare quello che desidera
adert ,se la cosa funziona come nel 74193, non c'è bisogno di memorizzare il CO ( nel suo caso ) per riportarlo sul PE, ma usare questo impulso come trigger per riformare un onda quadra oppure accontentarsi e prelevare il segnale da una delle uscite del contatore o mettere in cascata un altro contatore come è nella prassi.
ader,controlla se anche il tuo 4516 funziona in questo modo
P.S. sono andato a cercare l' impulso ponendo il clock a frequenza più alte, dai 500 kHz in su, visto che mi ero accorto che in verità le uscite si caricavano
Mi scuso con
angel99, in quanto avevo sbagliato io, perché pensando che che il contatore non funzionasse avevo immaginato che non caricasse le uscite, in verità le carica e in effetti queste sono svincolate dal clock e fanno subito resettare il CO
Spero che tutto questo ti possa aiutare
ader
In pratica il 74193 è un contatore presettabile tipo il CD4516 con qualche lieve caratteristica diversa ( che ovviamente potete leggere nel data sheet ), ma che si intuisce anche dallo schema
Il vantaggio rispetto al CD4516 è quella di avere il CO, che nel conteggio indietro si chiama Borrow, che è attivo basso e attivo basso è pure il Load, pertanto non c'è da invertire niente se vogliamo collegare il Borrow al Load
Altra caratteristica è quella che il Borrow va basso sul fronte di discesa del clock e non su quello di salita come nel conteggio. Questo fa in modo di finire stabilmente il conteggio( immagino ) prima attivare il Borrow che ha così mezzo periodo del clock per caricare il contatore.
Lì per lì realizzato questo schema pensavo non funzionasse , ma in verità il circuito funziona bene, solo che non funziona come pensavo o pensavamo.
Il Borrow carica le uscite e perciò conta, solo che non possiamo prelevare il segnale dal Borrow in quanto è un impulso di circa 500ns.
In pratica, se non riportiamo il Borrow sul Load, possiamo prelevare il clock diviso per 16, ma se lo riportiamo sul Load per caricare le uscite, queste essendo svincolate dal clock resettano immediatamente il Borrow riportandolo alto immediatamente, circa 500 ns di impulso negativo indipendentemente dalla freqenza del clock, che comunque è più che sufficiente a caricare le uscite.
Questo lo si può vedere ponendo l' oscilloscopio su una delle uscite.
Esempio
Se impostiamo 1100 e lo facciamo contare indietro e preleviamo il segnale sull' uscita Qc ( per esempio ) avremo un segnale che comincia con un periodo di clock alto per poi passare a 4 periodi di clock basso,poi altri 4 periodi di clock alto, altri 4 periodi di clock basso per poi ricominciare. In tutto 13 periodi di clock visto che saranno eliminati i conteggi 1101 - 1110 - 1111
Diversa è la sequenza se usiamo un'altra uscita dove prelevare il segnale, ovviamente
Per fare quello che desidera
P.S. sono andato a cercare l' impulso ponendo il clock a frequenza più alte, dai 500 kHz in su, visto che mi ero accorto che in verità le uscite si caricavano
Mi scuso con
Spero che tutto questo ti possa aiutare
1
voti
Il problema, Pixi, è che la condizione di Rat-Race è sempre presente, anche nel circuito che hai realizzato. Sono i ritardi di propagazione che lo rendono funzionante, ma è una condizione instabile che può perdurare per sempre e non creare alcun problema, ma può anche portare ad una condizione di metastabilità con conseguenze imprevedibili.
Chi c’è in linea
Visitano il forum: Nessuno e 53 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)








