Domanda:
Qualcosa di speciale che devo sapere su RS232 e FT232R?
talsit
2010-07-17 05:43:14 UTC
view on stackexchange narkive permalink

Sto cercando di interfacciare un IMU XSens con il mio computer e sto incontrando difficoltà interessanti. L'IMU ha un connettore RS232 che utilizza solo i pin VCC, GND, TX, RX, nient'altro. L'SDK viene fornito con un adattatore RS232-USB personalizzato che utilizza l'FT232R e il MAX3160, ma a parte questo non sembra fare nulla di speciale.

Il produttore afferma che l'IMU utilizza lo standard RS232 ( e non ho motivo di dubitarne), quindi, per risparmiare spazio (il loro convertitore è piuttosto ingombrante), sto cercando di utilizzare un Sparkfun FTDI Basic Breakout 5V.

Se imposto tutte le impostazioni COM allo stesso modo (velocità di trasmissione, parità, stop, ecc.) e mi connetto al dispositivo, ottengo indietro i dati, ma sembra senza senso. Emetto comandi, il LED TX sull'FTDI lampeggia, anche quello RX, e ricevo i dati, ma non è niente come quello che mi aspetto.

Qualcuno può pensare a qualche "trucco" che potrei perdere ? C'è un FooBar che deve essere collegato a DingDing per attivare?

quali sono le impostazioni della porta ea cosa lo hai collegato finora? era questo un PC a cui l'hai collegato? è questo il dispositivo 921600 bps nell'altra tua domanda?
Ho impostato il dispositivo e la porta VCOM su 115200, 8bit, nessuna parità, 2 stopbits, no xonxoff, no rtscts, no dsrdtr. Sì, è il dispositivo nell'altra mia domanda. Per il momento userò un PC, ma in seguito vorrei mettere l'intero sistema in una scatola.
VCC non è RS232 standard.
2 bit di stop è raro, il valore predefinito di solito è un bit di stop.
Accetto 5-30 V come VCC e utilizza 2 bit di stop. Tuttavia, ho provato sia 1 che 2 bit di stop.
Cinque risposte:
Jeanne Pindar
2010-07-17 16:59:16 UTC
view on stackexchange narkive permalink

Lo standard rs-232 (come la tua IMU) e il livello TTL rs-232 (come il chip FTDI) sono diversi.

Lo standard rs-232 passa da + V a -V (dove V era originariamente 12, ma ora la maggior parte dei dispositivi funzionerà con tensioni molto più basse). Il livello TTL rs-232 commuta tra 0 e 5V. Hai bisogno di un ricetrasmettitore rs-232 per convertire le tensioni, come quel chip MAX3160 (sebbene sia insolito, qualcosa come max2332 è più comune).

I convertitori da USB a TTL di livello rs-232 come quelli a cui ti sei collegato vengono utilizzati per connettersi a un microcontrollore, non a un tipico dispositivo rs-232.

Penso che questo suona come quello che sto facendo di sbagliato. Avrei bisogno di uno di quei ricetrasmettitori. Penso che abbiano scelto il MAX3160, perché funziona fino a 1 Mbps. Chiunque sa dove posso ottenere una singola scheda che può fare USB a un'estremità e "vero" rs232 / EIA-232 l'altra ? Ed essere in grado di raggiungere velocità fino a 921600?
starblue
2010-07-17 13:54:04 UTC
view on stackexchange narkive permalink

Sei sicuro che i livelli di tensione siano compatibili?

Lo standard RS232 ha livelli di ± 12V, che di solito vengono convertiti da alcuni chip MAX in livelli TTL.

Nel tuo caso Sparkfun La breakout board FTDI ha livelli TTL (0 / 5V), mentre il MAX3160 può eseguire RS232 e RS485 (!), Quindi c'è una mancata corrispondenza.

Ci proverò un altro tentativo, ma leggendo le specifiche, xsens accetterà 5-30v!
Sì, ma cosa * emette *?
Notare inoltre che la polarità tra RS232 e TTL è invertita.
JustJeff
2010-07-17 06:53:13 UTC
view on stackexchange narkive permalink

Osservando le specifiche di alcuni dei dispositivi su quel sito, viene elencata l'interfaccia digitale come "max 921600 bps", quindi, a meno che tu non abbia ottime ragioni per credere che il dispositivo funzioni a quella particolare velocità di trasmissione, vale la pena provare a parlarci a poche altre velocità di trasmissione, soprattutto se hai una buona idea di come dovrebbero apparire i dati. Impostare il mio terminale per 115200 e vedere se i dati hanno senso a quella velocità, quindi, lavorare sulla scala della velocità di trasmissione. Se arrivi a 9600 e sembra ancora senza senso, torna a 115200 e aumenta.

Un tasso di 921600 è quasi sconosciuto. È un multiplo standard, ma onestamente non ho mai visto nulla spingere RS232 più velocemente di 115200 prima. Quando diventa necessario utilizzare velocità superiori a 115200, i progettisti di solito passano a un'altra interfaccia più affidabile.

A proposito, sto ancora supponendo che tu abbia collegato il dispositivo a un PC com port e avere della documentazione che suggerisce qual è il formato dei dati. Se è un'opzione per selezionare una velocità di trasmissione, usa 115200, sarà molto più affidabile, supponendo che sia compatibile con le tue esigenze di velocità dati generali.

Sì, ho provato la maggior parte delle velocità di trasmissione a mia disposizione. Ho provato tutte le combinazioni stopbit, bytesize, buadrate, sto inviando circa 44kB / s tramite il cavo seriale.Tuttavia, come prova, ho provato a ridurre il datarate dal dispositivo a 8.4kB / se il baudrate a 115200 Con il loro USB-seriale, tutto funziona, con l'FTDI, ottengo lo stesso incomprensibile di prima. Posso configurare il dispositivo su una varietà di baudrate, frequenze di campionamento, ecc., Ma non ho avuto fortuna con l'FTDI: (Ma grazie!
Una volta mi sono imbattuto in una situazione in cui una porta basata su USB / FTDI che avrebbe dovuto essere in grado di 115.2k non funzionava a quella velocità con un determinato dispositivo. In quel caso, il dispositivo funzionava bene quando era collegato a una porta com "reale" incorporata nel computer e la porta basata su FTDI funzionava con altri dispositivi a 115.2; ma FTDI e quell'unico dispositivo erano solo una combinazione patologica di chip di interfaccia.
JustJeff, ho una situazione simile con una periferica che incorporiamo nei nostri prodotti. Funziona bene con la porta seriale di un computer, ma non con un PIC. Si scopre che la sua velocità di trasmissione è un po 'spenta. Apparentemente le porte seriali "reali" sono più indulgenti dei microcontrollori. Fortunatamente il PIC può essere eseguito a velocità di trasmissione non standard.
@Jeanne Pindar: sì, è successo anche a me. Ottieni un dispositivo un po 'lento, un altro un po' veloce e la maggior parte delle cose gioca con la maggior parte delle altre cose. Ma ogni tanto ti accorgi che anche se A parla con B e B parla con C, non riesci a far parlare A e C, e l'O-scope viene fuori ..
supercat
2013-08-13 20:56:33 UTC
view on stackexchange narkive permalink

Un fastidio che ho avuto con i chip FTDI, che probabilmente non è la causa dei tuoi problemi ma potrebbe esserlo, è che se il dispositivo remoto invia ciò che l'FTDI percepisce come una "lunga pausa", l'FTDI scarterà le informazioni che ha ricevuto dal dispositivo remoto ma non ancora inoltrato al PC. Ciò può causare problemi in due modi:

  • Alcuni dispositivi embedded sono inattivi con la loro uscita seriale bassa; quando hanno qualcosa da dire, attivano la loro uscita seriale, inviano alcuni dati e poi tornano al minimo una volta che l'hanno detto. Se il dispositivo incorporato sta alimentando qualcosa che può andare a dormire quando il suo ingresso seriale è basso per un periodo prolungato e svegliarsi quando diventa alto, questa funzione può fornire un mezzo efficace per la segnalazione di risveglio senza richiedere un pin aggiuntivo. Sfortunatamente, il dispositivo remoto che spegne la sua porta seriale può far sì che l'FTDI lasci cadere l'ultima parte dei dati inviati dal dispositivo (ho controllato con un ambito: i dati sono stati inviati prima che la linea si interrompesse, ma l'FTDI è caduto comunque).

  • Quando si utilizza un tipico UART impostato per una velocità di trasmissione più veloce del dispositivo a cui è connesso, generalmente si riceveranno dati inutili che contengono un identificabile sottoinsieme di possibili valori di byte. Ad esempio, se uno è configurato per 38.400 e il dispositivo remoto è impostato per 9600, si riceveranno valori di byte con cornice appropriata e 80, F8 e valori di byte con cornice errata 00 e 78. La ricezione di molti di quei valori di byte particolari può fare è facile identificare il problema. Sfortunatamente, ogni volta che l'FTDI vede uno 00 inquadrato in modo improprio, tende a scartare i dati che lo precedono. Di conseguenza, invece di vedere dati immondizia facilmente identificabili, si potrebbe finire per non vedere nulla.

Per questo motivo, tra gli altri, ho una sorta di relazione di amore-odio con i chip FTDI. Li uso e sono ragionevolmente convenienti in molti modi, ma non sono un sostituto immediato per un UART come si potrebbe desiderare.

Eric
2014-03-19 19:25:33 UTC
view on stackexchange narkive permalink

Se stai usando il loro software, assicurati di cambiare il VID / PID del tuo FTDI in modo che corrisponda al loro. Altrimenti il ​​loro software non riconoscerà il tuo convertitore seriale personalizzato



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 2.0 con cui è distribuito.
Loading...