RS232 comunicazione seriale

Ciao ragazzi, premetto che non sono particolarmente ferrato in elettronica: sono un informatico.
Vado dritto al problema: ho acquistato una bilancia con una porta seriale RS232 la quale, andando ad impostare determinate opzioni, dovrebbe dare in output continuo il valore pesato per poterlo utilizzare da sistemi esterni.
Infatti, ho necessità di leggere il valore da Arduino per poi sviluppare un programma più complesso. Parto dalla base: riuscire a leggere il valore grezzo sul Serial Monitor.
Sono consapevole che le porte RS232 usano voltaggi di 12v o comunque non compatibili con Arduino; quindi ho creato lo schema seguente, andando di logica e guardando le poche informazioni recuperate online.

dove:

  1. cavo con uscita RS232 DB9 (a 9 pin) FEMALE fornito dai produttori della bilancia
  2. RS232 MALE to MALE adapter
  3. RS232 FEMALE to TTL adapter
  4. Arduino (connettendo i 4 pin del precedente modulo: VCC, GND, Tx, Rx)

monto tutto, eseguo il codice e non ricevo nulla. Ho provato per ore a capire se il problema era il codice, la disposizione dei pin o un falso contatto, per poi scoprire, bypassando il componente 2) e collegando le due porte femmine direttamente con dei cavi jumper un fatto curioso: anzichè collegare Rx della prima porta seriale a Rx della seconda porta seriale e stessa cosa per Tx (come avrebbe fatto l’adattatore… che riporta ogni pin di A ad ogni pin di B), ho collegato Tx a Rx e Rx a Tx e gualà… dati ricevuti.

Conosco la logica del collegamento incrociato poichè Tx trasmette e Rx riceve, ma non mi capacito del perchè in questa situazione; in particolare, questa affermazione dovrebbe sostenere che qualsiasi collegamento RS232 (da un MALE a FEMALE o viceversa) non dovrebbe funzionare in quanto abbiamo due Tx e due Rx accoppiati linearmente anzichè incrociati… cosa ovviamente assurda.

Quindi le opzioni sono:
A) il cavo seriale fornito dai produttori della bilancia ha Tx e Rx montati al contrario (di fatti ricevo i dati della bilancia dalla porta Rx → ricezione, ma magari è dovuto al fatto che la bilancia è un dispositivo “passivo”, infatti ha porta femmina e la comunicazione è al contrario dal suo “punto di vista” ?!)
B) l’adattatore RS232 MALE to MALE è inutile in commercio in quanto non convoglia Tx a Rx e Rx a Tx, ma porta Tx a Tx e Rx a Rx (e di conseguenza è come dire che sarebbe inutile qualsiasi collegamento di due RS232 poichè anche quelle sono collegate Tx <-> Tx e Rx <-> Rx)
C) l’adattatore RS232 FEMALE to TTL comprato, doveva essere di tipo MALE, senza passare per l’adattatore 2). Motivo per cui non ho fatto questa scelta: se l’adattatore FEMALE è difficile da recuperare, quello MALE è pressochè introvabile… ero tranquillo che bastasse l’adattatore 2)

Tradotto in modo concreto. Son riuscito a farlo funzionare… in una situazione assolutamente provvisoria, bucando i pin delle porte con dei cavi jumper. Devo creare un collegamento solido… ma a quanto pare non posso usare l’adattatore 2) perchè dovrebbe connettere Tx a Rx e Rx a Tx (e non, come ora, Tx a Tx e Rx a Rx); mi sembra pure assurdo che mi abbiano dato un cavo montato al contrario; l’unica cosa che mi viene da pensare è riuscire a recuperare un adattatore 3) direttamente MALE, bypassando l’adattatore 2) : ma questo risolverebbe il problema? o sarei punto a capo con le connessioni dirette anzichè invertite di Tx e Rx?

non so più dove stia il problema…

sperando che qualche esperto mi riesca a delucidare
vi ringrazio anticipatamente, Nicholas

Buongiorno,
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il su citato REGOLAMENTO ... Grazie. :slight_smile:

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nessuno ti potrà rispondere, quindi ti consiglio di farla al più presto. :wink:

A) il cavo seriale fornito dai produttori della bilancia ha Tx e Rx montati al contrario

No, semplicemente sia la bilancia che l’adattatore RS232/TTL sono apparati di tipo ‘DCE’ (connettore ‘female’) pensati per collegarsi direttamente ad un apparato tipo ‘DTE’ (connettore ‘male’) come un PC.

Un semplice ‘gender changer’ male/male non li può far colloquiare. Per collegare tra loro due ‘DCE’ (o due ‘DTE’) occorre creare un adattatore incrociato (come hai già verificato, e in realtà i fili da incrociare potrebbero essere anche altri).

Poi per complicare le cose col tempo sono usciti apparati ‘DTE’ con connettore ‘female’ (ma cablaggio ‘male’), e li si che basta un ‘gender changer’ per tornare nella situazione “corretta”.

Grazie mille Claudio, davvero.
Ora ti chiedo.. in una situazione simile come procederesti? Mi confermi che se riuscissi a recuperare un RS232 MALE to TTL risolverei il problema? Esistono altre soluzioni per poter creare un collegamento stabile tra i componenti che ho già (magari proprio un adattatore incrociato, qualora esista) che non sia infilare dei jumper cables dentro le porte seriali?

Claudio_FF:
No, semplicemente sia la bilancia che l'adattatore RS232/TTL sono apparati di tipo 'DCE' (connettore 'female') pensati per collegarsi direttamente ad un apparato tipo 'DTE' (connettore 'male') come un PC.

Altra cosa, quindi essenzialmente l'adattatore MALE to MALE è una truffa?

nikopera:
in una situazione simile come procederesti?

O prendo due connettori DB9 'male' e ci saldo i filetti nell'ordine corretto, o prendo un cavo seriale incrociato chiamto anche nullmodem (questo ha i connettori female/female per collegare due apparati 'DTE' come due PC tra loro, ma con due gender changer male/male permette di connettere due apparati 'DCE' come la bilancia e l'adattatore TTL).

Altra cosa, quindi essenzialmente l'adattatore MALE to MALE è una truffa?

No, lo stai solo usando in modo errato.

Claudio_FF:
o prendo un cavo seriale incrociato chiamto anche nullmodem (questo ha i connettori female/female per collegare due apparati 'DTE' come due PC tra loro, ma con due gender changer male/male permette di connettere due apparati 'DCE' come la bilancia e l'adattatore TTL).

Allora Claudio, ho cercato questo "nullmodem" MALE to MALE su Amazon e altri siti, ma ciò che mi appare è l'adattatore tale e quale a quello che ho acquistato io. Magari è uguale esteticamente ma dentro il collegamento è incrociato? Non vorrei prendere un doppione..

Claudio_FF:
No, lo stai solo usando in modo errato.

Mi chiedo quale sia l'utilizzo corretto, visto che ci si possono collegare solamente due porte femmina a quell'adattatore.. che sembra essere proprio il nullmodem MALE to MALE. Magari ho avuto sfiga e ne ho comprato uno che non inverte Tx e Rx?

Dovresti comprare uno di QUESTI, non il semplice gender changer, ma il NULL modem

steve-cr:
Dovresti comprare uno di QUESTI, non il semplice gender changer, ma il NULL modem

Grazie infinite… a entrambi :slight_smile:

La RS232 é standardizzata ma puó essere usata in tanti modlitá:
Baudrate, Protocollo di flusso (il ricevitore ferma il trasmettitore perché lento) hardware o software, Paritá, nr di bit, bir Start/Stop.
Viene definito un apparecchio trasmettitore e uno ricevitore. Se colleghi un trasmettitore con un ricevitore Ti serve un cavo che collega i pin 1 a 1. Se colleghi 2 apparecchi trasmettitori il collegamento deve essere incrociato sia per i dati che anche per i segnali di protocollo (null modem).

Un adattatore M-M é sempre diretto, un null modem incrociato.
Lavorando un po con la RS232 vedrai che Ti capitano tutte le combinazioni possibili e percui Ti servono i adattatori M/M da 9 pin, poi quelli da m/m 9a25 ecc.
È utile un tester che fa vedere con dei LED dove c'é segnale:

e la versione 9 pin:

Ciao Uwe

uwefed:
Se colleghi 2 apparecchi trasmettitori il collegamento deve essere incrociato sia per i dati che anche per i segnali di protocollo (null modem)

Ciao uwe, chiarissimo.. ascolta ho cercato molto su internet, e ho trovato qualcosa su ebay ma arriva in tempi stratosferici e costa 25€+ con spedizione :frowning:

Non è che magari dall'esperienza con questi cavi, mi sai consigliare dove posso acquistare l'adattatore maschio - maschio null modem che nomini? Negozio virtuale o anche fisico, se esiste..

nikopera:
Mi chiedo quale sia l'utilizzo corretto, visto che ci si possono collegare solamente due porte femmina a quell'adattatore

Il connettore DB9 femmina non si usa solo per le seriali RS232 di apparati 'DCE' (come modem da collegare ad apparati 'DTE' maschio come un PC). Può essere usato per tante altre applicazioni. Poi come dicevo a fine post #3 ci sono apparati 'DTE' che invece di avere il connettore maschio hanno quello femmina, e il gender changer dritto lo ritrasforma in DB9 maschio "standard". In sostanza serve solo per unire due DB9 femmina/femmina, ma se la connessione diretta ha senso oppure no dipende dagli apparecchi.

E prendere in mano il saldatore e trasformare quel cavo in null- modem

Se l'autore è già riuscito a comunicare mettendo fili volanti a maggior ragione sa cosa scambiare dentro la scarpetta del db9

Vabbè, posso capire, era per non "toccare" una cosa nuova e cambiare uno standard che probabilmente dentro il connettore a vaschetta è corretto.
Magari in futuro deve connetterlo ad altre cose e torniamo a rimetterci mano col saldatore?
Quindi o ti fai un piccolo cavetto null modem oppure prendi in connettore che ti ho linkato.

Poi vedo con meraviglia che la rs232 non è più "come una volta" quando cominciavo a smanettarci gia a 16 anni e se invertivi rx con tx ti si bruciava l'interfaccia.
Infatti oggi puoi fargli di tutto che funziona sempre, gli integrati di oggi non sono più come quelli di prima.

Il collegamento null modem é questo:

Comunque secondo me potrebbe bastare anche incrocare TX e RX (2 e 3) e collegare la massa (5)
Tutto l'articolo su: https://itisravenna.edu.it/corso/informatica/aree-progetto/ser-moro97-98/serial.htm
Ciao Uwe

Si, nel link del Gender Changer che gli ho postato c'era anche lo schema dei collegamenti, solo Tx, Rx e Gnd

torno a dire, aprire la scarpetta di quel db9

se il cavo con i collegamenti volanti funziona, l’altro capo va bene (a scelta può essere senza handshaking o con handshaking cablato fisso, ma non ci interessa)

si mette a posto il solo connettore finale e finito

semmai l’autore potrebbe dirci esattamente quali pin ha collegato e come