Newsgroup: it.hobby.elettronica.digitale
Titolo: Segnali pseudo-differenziali

Salve a tutti,
non so come chiamarli, quindi mi riferisco a loro come "segnali pseudi-
differenziali".
Sono intenzionato a far comunicare due controller tramite una linea
seriale sincrona.
Dato che sono passato recentemente in una brutta esperienza con
disturbi impulsivi di varia natura e malfunzionamenti vari di alcuni
dispositivi digitali, volevo, per il futuro e per alcune applicazioni,
proteggermi da simili disavventure facendo qualcosa di simile a quello
che sto per descrivere:
Avendo a disposizione tre banali linee CS, DATA e CLOCK, volevo
sdoppiarle in 6 linee : CS, CS_NEG, DATA, DATA_NEG, CLOCK e CLOCK_NEG.
In pratica ad ogni linea ne corrisponde un'altra che trasporta un
livello LOGICO opposto alla sua gemella.
Non si tratta di avere +5V su una linea e -5V sull'altra, ma piuttosto
+5V su una e 0V sull'altra(o vice-versa).
Se il dispositivo ricevente e' programmato per ricevere un "1" o uno
"0" solo le le linee in questione sono di livello logico opposto,
avrei un qualche tipo di immunita' ai disturbi?
Naturalmente i due fili viaggerebbero insieme e twistati tra di loro e
non avrebbero mai lunghezza superiore ad un metro.
Vorrei sapere :
- Ho pensato una fesseria?
- Quanto e' grave questa fesseria? :)
- Perche' e' una fesseria ?
Saluti
IW0HKG Massimo

 che sto per descrivere:
Dico la mia, ma aspetta che qualcuno più competente corregga :)
Trasmissioni differenziali vengono si usate per comunicazioni soggette a 
disturbi, ma personalmente mi è capitato di vederle su tratte lunghe.
Se da come ho capito vuoi far comunicare due microcontroller, per giunta 
con seriale sincrona, deduco che questi siano sulla stessa scheda o 
comunque molto vicini tra loro e che hai bisogno di un alto bit-rate.
Se almeno una delle due affermazioni è falsa allora credo che non sia 
necessario/adatto usare una seriale sincrona. E di conseguenza potresti 
usare accorgimenti per migliorare l'immunità ai disturbi, quali:
+ ridurre la velocità di trasmissione
+ usare una trasmissione differenziale, eventualmente a loop di corrente
+ aumentare la tensione (o corrente) sulla linea di comunicazione
In pratica quello che fanno gli standard RS232 o RS485/422 per intenderci.
Se invece le due affermazioni sono vere e hai disturbi critici su 
distanze brevi (stessa scheda o schede molto vicine) direi che dovresti 
intervenire sull'origine di tali disturbi (se ne hai possibilità) o 
adottare misure esterne alla scheda per contenerli (es. schermature ecc...).
Ricorda che gli errori di trasmissione si possono ridurre entro limiti 
ragionevoli ma non eliminare del tutto. Perciò prevedi sempre un campo 
di controllo del pacchetto trasmesso (crc).
Ciao!
Marco / iw2nzm


Per aumentare l' immunità elettromagnetica di una linea ci sono
diverse soluzioni, la più semplice è quella di adottare un cavo
twistato.
Un'altra soluzione, senza passare per forza per il differenziale che
hai proposto, è di fare una conversione tensione-corrente dei livelli
logici della linea seriale ottenendo una linea molto più robusta.
Enrico

 ha scritto:

Hai pensato ad una cosa che c'è già, e funzionando in differenziale migliora
molto la situazione in presenza di disturbi.
In pratica le linee RS422 si comportano come hai pensato tu, ed esistono già dei
driver pronti per l'uso.
http://it.wikipedia.org/wiki/Trasmissione_seriale#EIA_RS422
--
ciao
  Stefano

 driver pronti per l'uso.
L'RS422 pero' funziona in modo VERAMENTE differenziale.


A quanto ricordo io l'RS422/485 funziona proprio come hai pensato tu, 
non ci sono necessariamente tensioni negative sul bus:
http://it.wikipedia.org/wiki/EIA_RS-485
-- 
  _|/ Francesco Sacchi - Develer S.r.l., R&D dept.
   |\ 
http://www.develer.com/
 - 
http://www.bertos.org/



No, in pratica la 422 è un differenziale in corrente perchè serve anche una rete
di polarizzazione, però i segnali non vanno negativi ma da 0V a VCC.
Oltretutto i drivers sono adatti a comandare carichi con delle capacità come i
cavi di collegamento, e in caso di cortocircuito sono più robusti.
--
ciao
  Stefano

 L'RS422 pero' funziona in modo VERAMENTE differenziale.
Funziona esattamente così. E poi nessuno ti proibisce di usarlo, anzi, mi
unisco al consiglio di SB, anche se sono convinto che, soprattutto per il
CS, una resistenza, un condensatore ed un cavetto twistato e schermato
risolverebbero tutti i tuoi problemi.

 sdoppiarle in 6 linee :
Già che ci sei usa la soluzione "ortodossa" che si usa per le comunicazioni
differenziali board-to-board, ossia LVDS:
http://focus.ti.com/paramsearch/docs/parametricsearch.tsp?family=analog&familyId=546&uiTemplateId=NODE_STRY_PGE_T
-- 
emboliaschizoide.splinder.com

 L'RS422 pero' funziona in modo VERAMENTE differenziale.
si, ma per quali distanze e condizioni di rumore elettrico
e' indicato ?
sarebbe una soluzione gravosa per il problema e non percorribile
per gli apparecchi commerciali, che infatti risolvono in altro modo
e funzionano benissimo.
nel tuo caso (uC+LCD) potresti filtrare con RC i tre segnali lato
LCD, risquadrare con trigger il solo clock (se non e' gia' trigger),
rallentare la velocita' per compatibilita' con i filtri, inserire
terminazioni serie dal lato uC.
nel firmware potresti semplicemente evitare di aggiornare LCD mentre
(e anche subito dopo) muovi il rele' della pompa.
saluti

Chiedo scusa a tutti quelli che hanno partecipato alla discussione se
non sono piu' intervenuto; ho avuto problemoni seri con l'adsl di
telecom. Me l'hanno sistemata oggi dopo 8 giorni di travaglio.
Comunque ho letto i vostri post e vi ringrazio per le precisazioni e
per i link.
Ciao
Massimo IW0HKG