Quali problemi potrebbero verificarsi quando si concatenano 40 registri a turni?


16

Sto pianificando di concatenare registri turni 40 x 74HC595 . L'intera catena di 74HC595s sarà controllato da un microcontrollore 5 V, che genererà i SDI, CLOCKe LATCHsegnali.

Ogni registro a scorrimento e il microcontrollore avranno il proprio PCB, come illustrato nello schema seguente:

diagramma

A causa di vincoli meccanici, la distanza tra ciascun registro a scorrimento sarà di circa 30 cm (12 pollici), quindi i segnali di controllo viaggeranno lungo una distanza di circa. 12 m (40 piedi). Oltre a ciò, l'intero sistema verrà montato in un ambiente molto rumoroso (vicino a luci fluorescenti, cavi di rete ecc.)

La mia preoccupazione è che i segnali di controllo saranno molto rumorosi e che i registri dei turni potrebbero produrre cose sbagliate. Stavo pensando a:

  • Utilizzando un buffer IC su ciascuna scheda, per bufferizzare i segnali di controllo. Quale consiglieresti?
  • Utilizzando cavi schermati tra le schede per i segnali
  • Abbassare la CLOCKfrequenza il più possibile. Devo solo aggiornare il contenuto dei registri poche volte al giorno.

Le soluzioni di cui sopra sono una buona cosa da fare? Cos'altro posso fare per ridurre al minimo il (potenziale) rumore nei fili del segnale?


3
Sembra un candidato fantastico per un CPLD al posto dei 40 registri di turno.
Gioele B,

2
@JoelB Potrebbe sembrare una buona scelta per un CPLD, ma ciò significherebbe avere 320 (= 40 * 8) segnali che vanno dalla scheda principale (CPLD) in tutto il luogo. Sarebbe molto difficile da installare, nel mio caso, in quell'ambiente; e sarà molto difficile da mantenere. Inoltre, i segnali, sebbene più brevi, saranno comunque soggetti al rumore.
m.,

1
@Joel - Digikey elenca solo alcuni CPLD con 320 I / O e sono tutti BGA. Sono anche più costosi dei 40'595 e, come m.Alin, afferma che non hai il vantaggio dei segnali distribuiti. Da un punto di vista logico questo è un lavoro perfetto per un CPLD, da un punto di vista pratico meno.
Stevenvh,

2
@ m.Alin - Hai perfettamente ragione. Ho appena letto 40 registri a scorrimento e digitato CPLD. Dopo aver letto a fondo la domanda, ha senso come la stai facendo.
Gioele B,

Risposte:


14

Utilizzare i buffer di trigger Schmitt agli ingressi di ciascuna scheda. Puliranno i segnali in modo che qualsiasi rumore non dia falsi impulsi sull'orologio, per esempio. Il 74LVC3G17 è un buffer triplo non invertente.

Inoltre, passa i segnali bufferizzati alla scheda successiva. Altrimenti tutti gli ingressi sarebbero paralleli e potresti superare il fan-out del microcontrollore di guida (sto pensando in particolare al carico capacitivo totale). La catena a margherita dei segnali di clock e latch genererà un ritardo a catena in tutta la catena, ma anche i dati lo faranno e si prevede di andare comunque a bassa velocità.


1
@ m.Alin - Sì, un palco push-pull andrebbe bene. Consiglio vivamente i buffer, non solo per la capacità di guida, ma soprattutto per l' isteresi del trigger Schmitt , che eviterà falsi impulsi di clock causati dal rumore attorno alla soglia.
Stevenvh,

2
@Saad - Vuoi dire che il buffer invia il segnale al cavo? La cosa buona è quindi che fornirà una bassa impedenza che riduce il rumore. Ma se non ci sarebbe il rumore sul lato ricevitore non si può fare nulla al riguardo sul lato di invio. Quindi è il ricevitore che ha bisogno di una buona immunità al rumore, che fornisce il trigger Schmitt.
Stevenvh,

1
@Saad - Sì, ma in questo caso sembra eccessivo: i fili sono lunghi solo 30 cm e hai già un ripetitore / buffer su ogni scheda.
Stevenvh,

1
@stevenvh Sì, stavo parlando in generale. I tuoi post contengono moltissime informazioni e quasi sempre imparo qualcosa di nuovo! In questo caso, ho dei buffer su una scheda controller che si collegano a un cavo che si collega a una "scheda figlia". Non mi aspetto molto rumore, quindi potrei rimanere con il mio accordo. Ho solo buffer lì in modo che la mia sorgente non finisca per pilotare 8 dispositivi (con capacità di ingresso 8pF + traccia e capacità del cavo).
Saad,

1
@Saad - Grazie per i fiori! :-) Tieni d'occhio la capacità del cavo, soprattutto se è più di un metro o così lungo. Regola empirica: 100 pF / m, molto più della capacità di ingresso.
Stevenvh,

9

Il problema che può verificarsi è che alcuni clock SR prima dei clock SR successivi, in modo che SR successivo esegua il clock con dati errati. Una soluzione (standard?) Per questo è di collegare l'orologio a partire dall'ultimo SR.

Vorrei prendere in considerazione l'aggiunta di un buffer (schmit-trigger?) Su ciascuna scheda per tutte e 3 le linee di segnale.

(modifica) Abbassare la frequenza di clock non aiuta (a meno che non fosse troppo alto per cominciare). I problemi che puoi avere ai bordi dell'orologio, che avrai comunque, non importa quanto tu scelga la frequenza di clock.


8

Il problema maggiore quando si concatenano i registri a turni è garantire che la relazione temporale tra l'orologio utilizzato da ciascuna scheda utilizzi per la ricezione dei dati e la modifica dei dati dalla scheda precedente sia prevedibile. Il fatto che l'uscita del 74HC595 cambi sullo stesso fronte dell'orologio è un po 'fastidioso in questo senso. Vorrei suggerire che il segnale di clock dovrebbe essere bufferizzato mentre attraversa ciascuna scheda e che il segnale di dati proveniente dal 74HC595 di una scheda dovrebbe essere inserito in un buffer che lo ritarderà di un tempo leggermente più lungo del buffer di clock.

In alternativa, è possibile utilizzare un registro a scorrimento come il 74HC4094 che presenta la modifica dell'output dei dati sul fronte di clock in discesa, oppure è possibile aggiungere un flip flop tra l'output dell'ultimo 74HC595 sulla scheda e la scheda successiva e disporre di tale infradito bloccare la sua uscita sul fronte di discesa dell'orologio che guida i 74HC595 (forse passare l'orologio attraverso due inverter per bufferizzarlo e alimentare il segnale di orologio invertito al flip flop).

Se il numero di uscite 74HC595 che utilizzerai è uno (o più) inferiore al numero fornito dai tuoi chip (ad es. Su una scheda con due 74HC595 hai effettivamente bisogno solo di 15 uscite) potresti alimentare l'ultima 74HC595 su una scheda con un orologio invertito dagli altri, ma ciò costerebbe l'uso di un'uscita 74HC595 per ogni volta che il segnale passa tra un orologio non invertito 74HC595 e un orologio invertito 74HC595.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.