MC
Offline
God Member
Karma: 9
Posts: 670
|
 |
« on: January 06, 2013, 03:56:42 pm » |
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.
|
|
|
|
|
Logged
|
Vi è una spiegazione scientifica a tutto. La fede è solo quell'anello che si porta al dito dopo il matrimonio.
|
|
|
|
0
Offline
Tesla Member
Karma: 83
Posts: 8242
:(){:|:&};:
|
 |
« Reply #1 on: January 07, 2013, 10:36:12 am » |
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
|
|
|
|
|
Logged
|
|
|
|
|
MC
Offline
God Member
Karma: 9
Posts: 670
|
 |
« Reply #2 on: January 07, 2013, 02:53:31 pm » |
È 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
|
|
|
|
« Last Edit: January 07, 2013, 04:43:28 pm by niki77 »
|
Logged
|
Vi è una spiegazione scientifica a tutto. La fede è solo quell'anello che si porta al dito dopo il matrimonio.
|
|
|
|
0
Offline
Tesla Member
Karma: 83
Posts: 8242
:(){:|:&};:
|
 |
« Reply #3 on: January 08, 2013, 06:08:12 am » |
no, nella seriale ogni byte è un messaggio a se. forse aggiunge 00 quando apri e e chiudi la seriale?
|
|
|
|
|
Logged
|
|
|
|
|
MC
Offline
God Member
Karma: 9
Posts: 670
|
 |
« Reply #4 on: January 08, 2013, 06:48:48 am » |
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
|
|
|
|
|
Logged
|
Vi è una spiegazione scientifica a tutto. La fede è solo quell'anello che si porta al dito dopo il matrimonio.
|
|
|
|
0
Offline
Tesla Member
Karma: 83
Posts: 8242
:(){:|:&};:
|
 |
« Reply #5 on: January 08, 2013, 07:38:04 am » |
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?
|
|
|
|
|
Logged
|
|
|
|
|
MC
Offline
God Member
Karma: 9
Posts: 670
|
 |
« Reply #6 on: January 08, 2013, 07:59:29 am » |
Lo sò come funziona una seriale ...  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]
|
|
|
|
|
Logged
|
Vi è una spiegazione scientifica a tutto. La fede è solo quell'anello che si porta al dito dopo il matrimonio.
|
|
|
|
0
Offline
Tesla Member
Karma: 83
Posts: 8242
:(){:|:&};:
|
 |
« Reply #7 on: January 08, 2013, 08:30:31 am » |
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
|
|
|
|
|
Logged
|
|
|
|
|
Rome (Italy)
Offline
Tesla Member
Karma: 74
Posts: 7379
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #8 on: January 08, 2013, 09:46:55 am » |
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 ?
|
|
|
|
|
Logged
|
|
|
|
|
MC
Offline
God Member
Karma: 9
Posts: 670
|
 |
« Reply #9 on: January 08, 2013, 09:59:49 am » |
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 : LINKl'altro è questo LINK
|
|
|
|
|
Logged
|
Vi è una spiegazione scientifica a tutto. La fede è solo quell'anello che si porta al dito dopo il matrimonio.
|
|
|
|
Rome (Italy)
Offline
Tesla Member
Karma: 74
Posts: 7379
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #10 on: January 08, 2013, 10:14:47 am » |
Scommetto che quello che ti da il problema è il secondo (PVI-USB-RS232_485).
|
|
|
|
|
Logged
|
|
|
|
|
MC
Offline
God Member
Karma: 9
Posts: 670
|
 |
« Reply #11 on: January 08, 2013, 12:08:49 pm » |
l'esatto contrario 
|
|
|
|
|
Logged
|
Vi è una spiegazione scientifica a tutto. La fede è solo quell'anello che si porta al dito dopo il matrimonio.
|
|
|
|
Rome (Italy)
Offline
Tesla Member
Karma: 74
Posts: 7379
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #12 on: January 08, 2013, 12:34:26 pm » |
Allora mettilo dentro una morsa e stringi più che puoi 
|
|
|
|
|
Logged
|
|
|
|
|
MC
Offline
God Member
Karma: 9
Posts: 670
|
 |
« Reply #13 on: January 08, 2013, 05:18:33 pm » |
Perché, porello, funziona tanto bene  È possibile astro che la commutazione da DE a RE non troppo pulita possa generare sti zero byte in ricezione o è fantascienza?
|
|
|
|
|
Logged
|
Vi è una spiegazione scientifica a tutto. La fede è solo quell'anello che si porta al dito dopo il matrimonio.
|
|
|
|
|