anomalia converttitore usb-rs485

Buona sera a tutti. Sono in possesso di 2 convertitori USB-rs485 , entrambi basati su chip ft232r. Sono pressoché identici, cambia soltanto il contenitore. Ho scaricato un tool della ftdi fatto apposta per programmarne la eprom interna e configurare varie opzioni. Con questo tool ho appurato che le due interfacce sono anche configurate in maniera identica, e apoteosi massima , entrambi usano lo stesso driver. Ora però nasce un problema. Una delle due interfacce mette uno zero byte in testa ed in coda ad ogni messaggio ricevuto,l'altra no! Non è un problema,perché tanto il sw di gestione lo sviluppo io stesso,pertanto posso aggirare il problema,ma mi sarebbe piaciuto capire il perché. Grazie a tutti in anticipo.

P.s. ovviamente entrambe le interfacce sono state provate singolarmente sullo stesso bus interrogando sempre lo stesso slave con lo stesso sw.

mi sembra più un errore di settaggio, sicuro di averli impostati entrambi come 8n1 ? (8bit dati, no bit parità, 1 bit di stop)

Altrimenti è strano, mi aspetto che la conversione dati sia 1<->1

È si, oltretutto perché li inizialzzo da sw, ed il software è lo stesso per entrambi,ed anche i driver! L'unica cosa che mi viene pensato possa essere è del rumore, uno entra direttamente col cavo twistato, l'altro ha il cavo suo per 1,8 metri prima di arrivare al circuito, ma mi pare strano non sia twistato. È sempre un adattatore originale ftdi, non è roba cinese.

Es. Convertitore A riceve (in hex) 02060000000000003b7a

Convertitore B riceve (in hex) 0002060000000000003b7a00 Sembra quasi che quando passa da tx a rx metta uno zero byte

no, nella seriale ogni byte è un messaggio a se. forse aggiunge 00 quando apri e e chiudi la seriale?

lesto: no, nella seriale ogni byte è un messaggio a se.

???

P.S. non ho mai specificato che la comunicazione avviene per BYTE RAW , non a caratteri, quindi quanto parlo di ZERO BYTE intendo un byte che ha valore zero(0x00) , non due 00 formato char ( 0x30 0x30)

No non c'entra con l'apertura e chiusura connessione seriale, viene aperta all'inizio e chiusa alla fine, ma non del messaggio, della sessione. Lo fà indistintamente con linux e windows .... misteeeeeerooooooo

la seriale invia tutto come raw, cambia solo come interpreti i dati lato tx/rx.

02060000000000003b7a equivale a 02 06 00 00 00 00 00 00 3b 7a

ovvero 10 byte. se quei 00 fossero aggiunti ad ogni "messaggio" (concetto che in rs232 non esiste, dato che un messaggio è composto da un byte) avresti tutti i byte tra 0x00

se usi un serial monitor tipo hyperterminal vedi comunque gli 0x00? puoi postare il tuo codice?

Lo sò come funziona una seriale ... :astonished:

Sul serial monitor non vedrò mai quei valori, ma caratteri strani corrispondenti al byte inviato, e non si vedono nemmeno tutti,ma questo è nromalissimo. Ho un serial monitor specifico che mi visualizza i byte ricevuti in formato esadecimale.

ovvero 10 byte. se quei 00 fossero aggiunti ad ogni "messaggio" (concetto che in rs232 non esiste, dato che un messaggio è composto da un byte) avresti tutti i byte tra 0x00

adesso ho capito cosa intendevi , no, non può essere , infatti io ti avevo detto che sembrava più che lo aggiungesse alla comutazione tra tx e rx , ovvero quando al transceiver 485 si porta alto DE e RE (stato trasmissione) e viceversa . [in questo transceiver RE è su una porta invertente]

ah ok, ora capisco cosa intendevi con commutazione txrx

Ho un serial monitor specifico che mi visualizza i byte ricevuti in formato esadecimale.

e immagino che ti visaulizzi quei 0x00, giusto? se sì è un bel problema, mi viene da dire che sia un bug/feature del chip

Certo che questa cosa è proprio strana, non mi risulta che gli FTDI possono aggiungere in nessun modo dei byte ai pacchetti. Sei sicuro che tutti e due gli adattatori montano lo stesso chip FTDI, non è che per caso uno dei due usa un Vinculum ?

Ho scaricato il tool della ftdi per leggere la eeprom interna al chip (si usa anche per configurare l'echo locale se serve). Non solo è lo stesso identico chip, ma è configurato anche alla stessa maniera. Ora provo a rivedere.

Ma è solo per curiosità perchè come ho detto, essendo il sw di mia fattura, non ho problemi a trimmare gli zero byte in testa e coda al buffer.

Un adattatore in oggeto è questo :

LINK

l'altro è questo

LINK

Scommetto che quello che ti da il problema è il secondo (PVI-USB-RS232_485).

l'esatto contrario :grin:

Allora mettilo dentro una morsa e stringi più che puoi :grin:

Perché, porello, funziona tanto bene :grin:

È possibile astro che la commutazione da DE a RE non troppo pulita possa generare sti zero byte in ricezione o è fantascienza?