Go Down

Topic: anomalia converttitore usb-rs485 (Read 1 time) previous topic - next topic

niki77

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.
Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

lesto

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
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

niki77

#2
Jan 07, 2013, 08:53 pm Last Edit: Jan 07, 2013, 10:43 pm by niki77 Reason: 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
Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

lesto

no, nella seriale ogni byte è un messaggio a se.
forse aggiunge 00 quando apri e e chiudi la seriale?
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

niki77


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
Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

lesto

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?
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

niki77

Lo sò come funziona una seriale ...  :smiley-eek:

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.

Quote


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]
Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

lesto

ah ok, ora capisco cosa intendevi con commutazione txrx

Quote
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
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

astrobeed

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 ?
Usare il GOTO in C è ammettere la propria sconfitta come programmatore

niki77

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
Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

astrobeed

Scommetto che quello che ti da il problema è il secondo (PVI-USB-RS232_485).
Usare il GOTO in C è ammettere la propria sconfitta come programmatore

niki77

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

astrobeed

Allora mettilo dentro una morsa e stringi più che puoi  :smiley-mr-green:
Usare il GOTO in C è ammettere la propria sconfitta come programmatore

niki77

Perché, porello, funziona tanto bene  :smiley-mr-green:

È possibile astro che la commutazione da DE a RE non troppo pulita possa generare sti zero byte in ricezione o è fantascienza?
Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy