Salve,
sto completando la progettazione di una scheda che interfaccia due arduino utilizzando alternativamente la 485 o la 232 (dipende dalla distanza a cui vanno messe le schede). Siccome ho ha disposizione solo una coppia twistata avevo pensato di utilizzare qualcosa per selezionare alternativamente quale protocollo usare. Ora il dubbio è cosa è più adatto un multiplexer o un buffer e nel caso qualcuno ha qualche link che possa essermi di aiuto?
Grazie
Se vuoi scriver in italiano lo devi fare nella sezione italiana.
Se hai una coppia di fili che vuol dire 2 non puoi usare la RS232 bidirezionale. Puoi usare la RS485.
Le 2 interfacccie a livello elettrico sono incompatibili e non puoi mettere un multiplexer per selezionare o una o l' altra. Ti consiglio di restare sulla RS485 anche per distanze corte.
A livello protokollo per codificare i bit sono simili ma visto che la RS232 é full duplex ( c'é un canale di trasmissione e uno di ricezione) e la RS485 é in halfduplex ( le linee vengono usate in alternaza come trasmisione e ricezione) Percui la regolazione del flusso di dati nellaa RS485 deve essere fatta in modo da garantire che mai entrambi trasmettono. Un sistema Master / Slave potrebbe essere la soluzione.
Ciao Uwe
Scusa,
non sapevo della distinzione, per i prossimi provvederò.
Comunque, forse sono stato poco chiaro.
Ovviamente ho anche un cavo dedicato al gnd della 232 per collegarmi. Purtroppo non mi è sempre possibile utilizzare solo la 485 perchè a volte potrò avere dei convertitori 232 - FO in mezzo e volevo fare una sola scheda con la possibilità di selzionare un protocollo o l'altro via jumper (questo adesso già funziona solo che nella seconda versione ho meno cavi liberi, in pratica una coppia twistata e un gnd). Potrei risolvere il tutto con due commutatori rotativi o jumper ma cercavo una via più elegante.
Non capisco il discorso del livello elettrico le due linee sarebbero sempre distinte anche se hanno livelli diversi sul multiplexer faccio passare o solo 232 o solo 485.
Grazie
Non capisco il discorso del livello elettrico le due linee sarebbero sempre distinte anche se hanno livelli diversi sul multiplexer faccio passare o solo 232 o solo 485.
Proprio quello. La RS232 ha libvelli di tensione + e -12V ( che possono essere comunque tra 3 e 25V secondo le specifiche) mentre la RS485 viaggia con 5V e massa (tutti riferiti a massa)
Non so se trovi un multiplexer che funzioni con +/- 25V.
Ciao Uwe
Forse sbaglio ma il livello logico del max233 che uso non può superare la Vcc che è +5 V.
Quindi il multiplexer lavorerebbe tra +- 5 V.
In alternativa potrei usare qualcosa di diverso?
Ciao
F
skizz0to:
Forse sbaglio ma il livello logico del max233 che uso non può superare la Vcc che è +5 V.
Quindi il multiplexer lavorerebbe tra +- 5 V.
In alternativa potrei usare qualcosa di diverso?
Ciao
F
Di sicuro sbagli.
Leggiti il datasheet del MAX233 che procduce tipicamente +/- 8V .
Chi Ti dice che non viene mai attacato qualche apparecchio che manda a +/- 12V come un PC veccho?
Leggiti anche le specifiche del RS232 e RS485.
Ciao Uwe
skizz0to:
Forse sbaglio ma il livello logico del max233 che uso non può superare la Vcc che è +5 V.
Quindi il multiplexer lavorerebbe tra +- 5 V.
Il vero problema è che la 485 è un bus di tipo differenziale, non puoi multiplexarlo facilmente, unica soluzione semplice possibile è usare dei jumper per collegare ai fili la rs232 oppure la rs485, se ti serve lo scambio automatico puoi usare dei microrelè reed.
Nota aggiuntiva, se usi la 485 il GND non serve, se hai un cavo twistato con schermo puoi collegare questo solo da un lato al gnd per migliorare la schermatura, non collegarlo ad ambo i lati.
Chiaro, era quello che temevo.
Secondo te potrei usare degli switch SS in alternativa ai microrelè?
skizz0to:
Chiaro, era quello che temevo.
Secondo te potrei usare degli switch SS in alternativa ai microrelè?
Usa dei microrelè come ti ho già consigliato, è una pratica standard in ambito industriale, o nella strumentazione, proprio perché consente un perfetto isolamento delle linee, totale bidirezionalità sia AC che DC, regge senza problema anche tensioni e correnti relativamente alte, può commutare sia linee bilanciate che sbilanciate.
Come ti ho già spiegato la RS485 è un bus differenziale, non puoi commutarlo tramite un device che è riferito a GND come i normali switch solid state.
In pratica ti basta un singolo microrelè del tipo DPDT (doppio commuttatore) come questo e hai risolto.
Ok grazie,
però a quel punto credo siano meglio dei jumper, non vorrei che lasciando per lunghi periodi eccitato il relè poi possano esserci dei decadimenti o dei falsi contatti.
Grazie
skizz0to:
però a quel punto credo siano meglio dei jumper,
Se non hai necessità di cambiare in automatico il tipo di linea dei jumper sono la soluzione più semplice in assoluto.