Newsgroup: it.hobby.elettronica.digitale
Titolo: distribuzione del clock

Ciao a tutti.
Ho una scheda che, tra le altre cose, genera un clock (circa 1 MHz); 
questo clock deve essere portato a 20 schede analoghe ad una distanza di 
10-15 metri.
Facendo una prova grezza (cavo standard + morsettiera per lo split del 
segnale) ho assodato che così non funziona per niente: solo limitando i 
ricevitori a 2 o 3 riuscivo ad ottenere qualcosa di utilizzabile ma 
neanche lontanamente simile al clock originale.
Come posso migliorare la situazione? Cavi schermati? Buffer in uscita 
dal generatore del clock? Altro?
Vorrei se possibile evitare di inserire qualcosa lungo il cavo (ad 
esempio, nel punto di split).
Grazie

 10-15 metri.
Credo che un trasmettitore RS 422 sia la scelta più economica, oppure cerca
qualche LVDS. In ogni caso userei una linea bilanciata in un cavo cat. 5,
insomma, quello per Ethernet.
Dovresti poterci mettere decine di ricevitori RS422. Ricordati di terminare
la linea con 100 ohm.


L'idea in sé non mi dispiace (specie in LVDS, visto che l'alimentazione 
è 2.5V e non mi pare che i trasmettitori RS422 la supportino), mentre mi 
dispiace decisamente di più dover mettere la terminazione, considerando 
che è un sistema low power (e 2.5V su 100 ohm sono 25 mA, decisamente 
troppi). Esiste un modo per evitare la terminazione o ridurre il 
consumo? Chessò, magari usare terminazioni di tipo diverso (non 
parallelo), oppure adottare qualche accorgimento sul cavo...

 consumo?
Basta non metterla. Scherzi a parte, se il tuo problema è il consumo,
perché non dai un'occhiata alle specifiche dello LVDS?

 perché non dai un'occhiata alle specifiche dello LVDS?
 >
:)
Però! E pensare che l'avevo usato per la tesi di laurea, anche se non in 
maniera intensiva (= senza preoccuparmi troppo del come e perché 
funzionasse).
In tutta onestà, avrei preferito qualcosa che intaccasse unicamente il 
driver, senza aggiungere nulla ai ricevitori (perché è un po' complicato 
logisticamente), ma pensandoci la vedo difficile...
E comunque l'LVDS mi sembra una buona soluzione.
Ciao e grazie

 10-15 metri.
Sei sicuro che devi portarti appresso 1 MHz? Non puoi sincronizzare le 
schede in altra maniera?
Se ci sono a bordo micro controllori puoi sempre farli andare a 10 MHz e 
usare un interrupt per sincronizzarti.
Cosa fanno queste schede?
Marco


Sono abbligato, perché il clock in questione va all'ingresso di un 
accelerometro ad uscita digitale, e devo sincronizzare tra loro tutti 
gli accelerometri, per cui l'unico sistema valido è quello di usare un 
clock comune. L'avvio sincrono lo ottengo già in altro modo, ma non è 
sufficiente per il tipo di lavoro che stiamo facendo.


Puoi mettere come terminazione la resistenza con in serie un 
condensatore. Sulle linee RS485 si fa.
Ovviamente la reattanza del condensatore deve essere trascurabile 
rispetto alla resistenza alla frequenza che ti interessa.
Ad occhio 100nF dovrebbe essere ok.

sufficiente per il tipo di lavoro che stiamo facendo.
Fai comunque attenzione ai ground loop, con frequenze del genere e una spira di
qualche decina di metri è facile emettere e ricevere parecchi disturbi.
--
ciao
  Stefano

 Ad occhio 100nF dovrebbe essere ok.
Interessante il sito:
http://www.bb-elec.com
e l'application note della National a riguardo (pag. 6).
http://www.national.com/an/AN/AN-903.pdf
Piccio.

 sufficiente per il tipo di lavoro che stiamo facendo.
Ma quindi quali sono le specifiche? Che lavoro è?
Marco

 10-15 metri.
A tal proposito forse può servirti il protocollo IEEE1588 che non ho mai 
usato, ma che sembra avere ottime caratteristiche per sincronizzare 
diversi clock su una rete di tipo Ethernet.
Esistono dei controllori MAC Ethernet che sono compatibili con questo 
protocollo standard.
In questo modo ti basta portarti a spasso un paio di doppini (per 
Ethernet) e se hai bisogno anche di comunicazione hai già il canale.

 dal generatore del clock? Altro?
1 MHz è poca roba. Così su due piedi, a naso e quindi in linea teorica e 
soggetta ad errori e conseguenti sberleffi, proverei a produrre un 
impulso bello squadrato con un buffer di quelli con le palle, infilarlo 
in un cavo schermato per RF, che a 1 MHz manco sente il solletico, e 
all'uscita pulirei l'eventuale fetenzia in eccesso con un trigger di 
schmitt.

 schmitt.
Perché invece non trasmettere una portante a 1 MHz e squadrarla 
localmente? E' una cavolata?
Marco


Sě, in effetti l'avevo vista.
Perň resta il problema dell'alimentazione: per quanto abbia cercato in 
giro, non mi pare esistano trasmettitori e ricevitori RS422 o RS485 
alimentati a 2.5V.


Sì, infatti in questo senso non so bene come muovermi: siccome il clock 
dovrebbe in teoria arrivare contemporaneamente a tutti i ricevitori, 
avrei bisogno di una topologia a stella, con un ingresso e n uscite. 
Però questo crea parecchie riflessioni...
Comunque, le distanze in gioco sono dell'ordine dei 10-20 metri, non 
dovrei andare oltre.


Il lavoro è sperimentale, quindi non abbiamo delle specifiche ben 
definite. Semplicemente, analizzando i dati con la semplice 
sincronizzazione dello start, ci siamo resi conto che non era 
sufficiente per ottenere dei risultati affidabili.


Questa in effetti (a meno del trigger di Schmidt in uscita) è stata la 
prima idea che ho avuto, ma ho sempre paura che possa non essere 
sufficiente. Però magari vale la pena fare un tentativo.


Che io sappia, IEEE1588 è un protocollo per la sincronizzazione degli... 
orologi ("clock" in inglese...), dunque serve a sincronizzare gli orari 
tra più nodi, non a distribuire il clock (inteso come segnale).

 sufficiente. Però magari vale la pena fare un tentativo.
Per salvare i consumi ed isolare galvanicamente potresti valutare
quanto segue.
Il F/F ha Set e Reset negati e i fotoaccoppiatori devono essere veloci
(darlington tipo 6N139 od meglio).
[FIDOCAD]
MC 115 105 0 0 340
MC 115 145 0 0 340
MC 135 125 0 0 040
MC 135 165 0 0 040
LI 115 125 115 145
LI 115 165 115 170
LI 115 170 105 170
LI 105 170 105 100
LI 105 100 115 100
LI 115 100 115 105
MC 105 85 1 0 080
LI 105 100 105 95
LI 105 85 105 70
LI 115 135 95 135
LI 95 135 95 55
LI 40 55 220 55
LI 40 70 220 70
SA 95 55
SA 105 70
SA 115 135
SA 105 100
LI 135 105 135 100
LI 135 100 155 100
LI 135 145 135 140
LI 135 140 155 140
RV 155 95 190 145
LI 190 115 195 115
LI 195 115 205 115
TY 155 90 5 3 0 0 0 * F/F Set/Reset
TY 156 97 5 3 0 0 0 * S
TY 156 137 5 3 0 0 0 * R
TY 186 113 5 3 0 0 0 * Q
MC 135 85 1 0 080
LI 135 100 135 95
LI 135 85 135 80
MC 145 85 1 0 080
LI 145 140 145 95
LI 145 85 145 80
LI 135 80 140 80
LI 140 80 145 80
SA 135 100
SA 140 80
SA 145 140
MC 140 80 3 0 010
PL 61 30 61 29 1
PL 61 29 62 15 1
PL 62 15 63 30 1
PL 77 30 77 31 1
PL 77 31 76 45 1
PL 76 45 75 30 1
PL 50 30 61 30 1
PL 75 30 63 30 1
PL 88 30 88 29 1
PL 88 29 89 15 1
PL 89 15 90 30 1
PL 104 30 104 31 1
PL 104 31 103 45 1
PL 103 45 102 30 1
PL 77 30 88 30 1
PL 102 30 90 30 1
TY 34 52 5 3 0 0 0 * a
TY 35 67 5 3 0 0 0 * b
TY 39 27 5 3 0 0 0 * Vab
TY 62 10 5 3 0 0 0 * R
TY 91 12 5 3 0 0 0 * R
TY 76 47 5 3 0 0 0 * S
TY 102 46 5 3 0 0 0 * S
PL 215 115 230 115 1
PL 230 115 230 105 1
PL 230 105 245 105 1
PL 245 105 245 115 1
PL 245 115 260 115 1
PL 260 115 260 105 1
PL 260 105 270 105 1
Piccio

 Perň questo crea parecchie riflessioni...
Nella sezione LVDS della National c'era un trasmettitore a 10 canali o giů
di lě. O fai un bus o usi quello. L e terminazioni servono, ma non ne puoi
mettere troppe per un solo trasmettitore.

 (darlington tipo 6N139 od meglio).
Non ho visto lo schema, ma 100 ohm su 330 mV fanno 3,3 mA, dubito tu riesca
ad accendere un led con 1 mW.

dovrei andare oltre.
E' abbastanza per avere casini se non fai le cose per bene.
--
ciao
  Stefano

Il 02/03/2011 23.48, asdf ha scritto:


Può funzionare, ma in quel caso userei un optoisolatore veloce, tipo questo,
così si riducono i pericoli di emissioni da ground loop.
 
http://is.gd/YiIELP
--
ciao
  Stefano


Me ne sono accorto... con la prova grezza che dicevo all'inizio 
(ingresso con cavo da 10 m verso il centro della stella + 20 cavi da 6 m 
ciascuno verso i ricevitori) il risultato è stato talmente terribile da 
indurmi a rinunciare a fare altri tentativi del genere...


Quindi suggerisci di usare un buffer (ad esempio questo? 
http://focus.ti.com/docs/prod/folders/print/sn74auc1g07.html
) con a 
valle un optoisolatore e mandare cosě il segnale al centro della stella?
E potrei cavarmela anche senza inserire niente ai ricevitori?


Scusa, ma a e b rispetto al segnale di clock cosa sono?
Grazie

E potrei cavarmela anche senza inserire niente ai ricevitori?
Avevo capito che era il centro stella a mandare segnali, comunque il principio č
equivalente
Gli opto che ti ho segnalato sono adatti per essere comandati in sigle ended, a
patto di mettere un condensatore di filtro vicino all'ingresso e all'uscita, e
non hanno bisogno di buffers e di terminatori.
Manda comunque uno schema per vedere se ci siamo o no.
--
ciao
  Stefano

 tra più nodi, non a distribuire il clock (inteso come segnale).
Sicuramente sincronizza gli orologi, ma con una precisione molto elevata 
tanto da poter sincronizzare anche i riferimenti di clock.
Almeno così capisco da questa AN della National Instruments dove si 
paragonano due segnali di clock di due schede diverse connesse via Ethernet.
http://www.national.com/an/AN/AN-1730.pdf

 localmente? E' una cavolata?
No affato, credo che funzionerebbe. Magari aggiungendo a valle del cavo e 
prima della squadratura un circuito accordato per filtrare i disturbi. 
L'unico problema che mi viene in mente è che potrebbero esserci dei 
ritardi di fase e non so quanto l'applicazione dell'OP potrebbe 
risentirne.


Grazie, sicuramente lo farň appena posso (oggi e lunedě sono impegnato 
con altro...)


Beh, il punto è che questo sarebbe ben lontano dalla situazione 
originale. Il clock è a 1.045 MHz e ho già un oscillatore che lo genera, 
già montato su una scheda e che funziona senza problemi. Ho già anche il 
connettore per portarlo all'esterno.
Per fare quello che suggerite dovrei modificare parecchie cose, senza 
contare che la portante potrebbe da un lato essere difficile da generare 
(vista la frequenza non proprio standard), e dall'altro non garantire la 
stessa precisione (il clock è +/- 50 ppm).

Il 03/03/2011 18.12, SB ha scritto:

Rieccomi con lo schema.
L'idea č quella indicata piů avanti (ho tralasciato di indicare i 
condensatori di filtro); tuttavia ho qualche dubbio sull'optoisolatore: 
innanzitutto non mi sembra di trovarne nessuno a 2.5 V (quello che 
suggerisci richiede necessariamente 5 V), e questo significa che dovrei 
inserire uno step up (... che introduce rumore...) e, ciň che č peggio, 
uno step down ai ricevitori (oppure un partitore resistivo, con tutto 
ciň che questo comporta). Poi non mi č chiaro come l'utilizzo 
dell'optoisolatore possa aiutarmi a rendere piů robusto il segnale 
(ignoranza mia: isolando evito che si creino loop di corrente ed evito 
che disturbi esterni possano essere riportati all'interno... ma a questo 
punto non dovrei optoisolare anche al ricevitore?).
Ciao e grazie.
[FIDOCAD ]
MC 35 35 0 0 670
MC 80 40 0 0 340
MC 60 35 0 0 080
LI 60 35 55 35
LI 70 35 80 35
LI 80 35 80 40
MC 80 60 0 0 040
MC 30 60 0 0 040
SA 30 60
LI 35 35 30 35
SA 30 35
MC 15 50 0 0 075
MC 20 50 0 1 075
MC 30 50 0 1 075
MC 25 50 0 0 075
MC 45 25 3 0 010
LI 45 25 45 35
TY 50 15 5 3 0 0 0 * 2.5V
MC 100 60 0 0 040
LI 100 40 100 35
TY 110 30 5 3 0 0 0 * 10 m
LI 100 35 135 35
LI 100 60 135 60
LI 135 35 135 45
LI 135 45 145 45
LI 135 60 135 50
LI 135 50 145 50
SA 145 45
SA 145 50
EV 140 40 150 55
LI 145 50 155 50
TY 135 55 5 3 0 0 0 * Centro stella
TY 155 40 5 3 0 0 0 * (x20)
LI 145 45 180 45
LI 155 50 180 50
TY 180 45 5 3 0 0 0 * Ricevitore
RV 180 40 210 55
TY 25 30 5 3 0 0 0 * +

 ma a questo punto non dovrei optoisolare anche al ricevitore?).
Sentiamo che dice SB, ma direi che dovresti isolare *solo* al ricevitore.

punto non dovrei optoisolare anche al ricevitore?).
Il punto è che mandando in giro un segnale a 1Mhz in single ended su cavi lunghi
con buona probabilità fai un eccellente trasmettitore ad onde medie, e anche il
fatto che hai diversi percorsi non migliora la situazione.
L'idea è di mettere un optoisolatore veloce, che NON è quello che hai disegnato
tu, in modo da isolare galvanicamente le linee evitando così i ground loop.
Inoltre, dal momento che per emettere con potenza occorre che il segnale abbia
della corrente oltre alla velocità, l'optoisolatore va pilotato in tensione in
modo che l'unica corrente veloce sia quella capacitiva dell'amplificatore.
I condensatori che intendevo sono quelli di filtro, come da fig.8 a pag.10.
Poi non ho ben chiaro cos'è che effettivamente devi fare, quindi non posso
essere più dettagliato.
--
ciao
  Stefano

 
http://www.avagotech.com/docs/AV02-0324EN
Non sarebbe meglio usare un trasmettitore RS422 quadruplo tipo 26C31 e
collegare ad ogni trasmettitore due o tre ricevitori (se ricordo bene deve
mandare il clock a una decina schede) composti da un 6N136, diodo in
antiparallelo al led e resistenza di limitazione corrente in serie?
Se isoli il solo trasmettitore non avrai poi dei ground loop tra le varie
schede riceventi?

schede riceventi?
Dipende anche da come sono alimentate, e come comunica la lettura.
Non ho chiaro cosa deve fare in dettaglio, ma direi che ci  vuole un opto in Tx
e uno in Rx per ogni scheda.
--
ciao
  Stefano


Ciò che devo fare, in linea teorica, è abbastanza semplice. Ho n sensori 
(accelerometri) digitali su altrettante schede; ciascun sensore utilizza 
un clock per stabilire la frequenza di campionamento e, di conseguenza, 
l'output data rate (che è una frazione costante della frequenza di 
campionamento, poiché utilizza convertitori delta sigma).
I dati che dobbiamo acquisire devono essere correlati tra loro, e i 
segnali di clock locali alle singole schede, per quanto precisi, non 
consentono di ottenere le prestazioni che ci servono, obbligandoci a 
ricampionare tutti i segnali.
A questo punto la soluzione migliore è sembrata quella di utilizzare per 
tutti i sensori la stessa sorgente di clock (= lo stesso oscillatore), 
che deve dunque essere portato dalla sorgente a tutte le schede con i 
sensori.
Le alimentazioni alle schede sono locali (a batteria), dunque non è in 
generale previsto che siano collegate tra loro, se non attraverso questo 
clock (la comunicazione è punto-punto con una master collegata al pc).
Spero di essere stato più chiaro, ora. In ogni caso grazie mille per 
l'aiuto che mi state dando.
Ricapitolando, sono venute fuori due soluzioni:
1) (suggerimento di SB) buffer + optoisolatore alla sorgente di clock, 
optoisolatore su ogni sensore.
Pro: optoisolamento
Contro: bisogna adattare l'alimentazione, linea non bilanciata
2) (suggerimento di F. Bertolazzi) trasmettitore LVDS alla sorgente di 
clock, ricevitore LVDS su ogni sensore.
Pro: linea bilanciata, compatibilità con la tensione disponibile
Contro: possibili complicazioni per la terminazione (specie se il numero 
di ricevitori è variabile), forse necessario rivedere la topologia
Quale delle due secondo voi è migliore?
Ciao e grazie ancora

Quale delle due secondo voi è migliore?
Con le alimentazioni a batteria i ground loop tendono a non essere diretti, a
meno di accoppiamenti capacitivi sulla terra, che però dipendono da diversi
fattori non facilmente prevedibili.
In questo caso opterei per un collegamento a stella in LVDS, tanto a 1 Mhz le
riflessioni non possono darti grossi problemi, se poi la lunghezza dei fili e le
resistenze di terminazione sono uguali tra loro avrai anche una compensazione
degli errori.
--
ciao
  Stefano

 di ricevitori è variabile), forse necessario rivedere la topologia
Guarda un po' qui, potrebbe interessarti:
http://www.national.com/an/AN/AN-1926.pdf#page=1

scommetto non ha problemi a ricevere 1 MHz anche a 2,5V
Questo sarebbe alimentato da  2,7V-3,6V e dovrebbe andare anche a 2,5V.
Se però i 2,5V dipendono da 2 celle di batterie ricaricabili le tensioni
tenderanno ad essere 2,45V a batteria carica per poi scendere anche a meno di 2
con batteria scarica ci possono  essere problemi.
--
ciao
  Stefano


I 2.5V derivano da un regolatore; la batteria è costituita da una o due 
pile al litio primarie a 3.6V (la cui curva di scarica scende fino a 
3V), quindi in totale 3.6 o 7.2V (anche se in alcuni casi alimento 
tramite trasformatore da rete, e il range è 3-10V). Potrei pensare di 
alimentare i driver direttamente dalla batteria, ma al di là del fatto 
che dovrei poi verificare volta per volta la compatibilità con 
l'alimentazione, potrei anche avere problemi a tirar fuori un filo 
direttamente dalla connessione del positivo della batteria.
Comunque, se il data sheet specifica 2.7-3.6V non dovrei attenermi a 
questi numeri?


Dunque, in definitiva meglio andare in LVDS, secondo te.
Mi sa che è il momento di fare qualche prova...

 
http://www.national.com/an/AN/AN-1926.pdf#page=1
Questa in effetti sembra fare al caso mio. Sicuramente darò un'occhiata 
(molto attenta...).

Il giorno Thu, 10 Mar 2011 17:36:17 +0100, stinf
<stefano_inf...@MAPSONstrago.it> ha scritto:



Si, però normalmente c'è un po' di tolleranza.
I driver devono erogare abbastanza corrente per andare a 250Mhz con 2,7~3.6V
probabilmente a 1Mhz ce la faranno anche con 2,5V.
Però se il regolatore lo fai tu perchè non alimenti il tutto a 2,7V o anche a
3,3 che sono più standard ?
--
ciao
  Stefano


Beh, ci sono vari motivi per cui il sistema è tutto a 2.5V. Innanzitutto 
è low power, e così riesco a risparmiare un po' di consumi. Poi 
l'accelerometro di cui dicevo ha prestazioni migliori a 2.5V rispetto a 
quelle che ha a 3.3V.
In ogni caso, il sistema esiste già, quindi modificarlo sarebbe 
decisamente complicato.
Magari proverò anche questa soluzione.


Cercando, ho trovato anche questo, che è 2.5V nativo e, a parte il fatto 
che il fail safe è ottenuto con dei pull-up, non mi pare molto diverso:
http://it.farnell.com/texas-instruments/sn65ept23d/ic-ecl-diff-receiver-600mbps-soic/dp/1783859
Che ne pensate?
Chiaramente il driver resterebbe lo stesso, o dovrei cercare qualcosa di 
analogo con più uscite (ne ho visto qualcuno a 8... cercherò meglio).
Un'altra domanda: nel collegare il tutto, devo prevedere di portarmi in 
giro anche un filo di massa (uno per ciascun ricevitore)? Oppure rischio 
di combinare guai? Tendenzialmente lo porterei, ma ho qualche dubbio...
Grazie


Come non detto, ho preso un abbaglio. Colpa di Farnell che me lo ha 
segnalato inserendo la questione dei 2.5V... tra l'altro è anche duale 
(e questo nella pagina Farnell non è nemmeno segnalato).

Magari proverò anche questa soluzione.
Devi valutare alla luce dei pro e dei contro.
--
ciao
  Stefano


Certo, se (come sembra) sarň obbligato ad alzare l'alimentazione userň 
di sicuro uno step up di qualche tipo, vedremo.
Mi sorge perň una domanda: in teoria se trasmettitore e ricevitore 
seguono le specifiche non dovrei avere problemi ad usare alimentazioni 
diverse sull'uno e sull'altro. Ma č veramente cosě?
E, in generale, mi conviene portare in giro anche un filo di massa? O č 
meglio uscire solo con i due fili LVDS?

meglio uscire solo con i due fili LVDS?
Il filo puņ migliorare il cmrr del ricevitore, se puoi mettilo, lģimportante č
evitare i loop.
--
ciao
  Stefano