Newsgroup: it.hobby.elettronica.digitale
Titolo: chip FTDI conversione USB->rs232

Salve, avete mai usato il chip FTDI "FT232BM usb UART ic" ?
Io l'ho usato, ma ho qualche problema:
utilizzo il chip per comunicare da PC con il micro della scheda
attraverso la UART.
La stessa UART può essere usata con una seriale 232 normale.
Quando collego l'usb al pc, mi viene rilevata una porta seriale
virtuale, ed il
software lato PC funziona come se stesse usnado una porta seriale
reale.
Il mio problema è che ottengo performance NOTEVOLMENTE diverse nei 2
casi.
Anche a 9600bps, la usb è molto piu lenta della 232, sembra
intasarsi ...
Nel datasheet del componente vedo che esistono  2 modi di utilizzo:
VCP, ovvero virtual com port, che è quelòlo che uso io.
D2XX, ovvero direct drivers, che non conosco.
Voi avete esperienze in merito?
Non è che per ottenere maggiori performance devo abbandonare il VCP ?
Tra l'altro questo chip è spesso usato nei convertitori usb/232.
Spesso anche in questo caso, programmi che scaricano il firmware sui
PLC o ad esempio nei micro
utilizzando la porta 232 del pc non funzionano con questi
convertitori. Vuoi vedere
che anche chi costruisce questi adattatori ha il mio stesso problema?
Grazie
Federico

 Non � che per ottenere maggiori performance devo abbandonare il VCP ?
Mai avuto problemi e ho usato sempre le VCP anche a velocit� elevate 
(460800 bps).
Marco

 Il terminale ti rileva per caso errore di frame o altro?
La comunicazione seriale funziona, mi informo su come rilevare questo errore 
di frame, e lo comunico in una prossima risposta!
Intanto ti ringrazio

 ha scritto nel messaggio 
news:Fh_Mm.96564$9f6.1...@twister1.libero.it...


 Si!
Allora non potrï¿œ mai funzionare....
Il pin di trasmissione del micro comanda i due input dell'FTDI e del MAX 
e fin qui ok, avrai lo stesso dato inviato contemporaneamente.
Ma in ricezione le uscite dei due driver fanno in conflitto perchï¿œ 
mentre uno tenta di portare alto basso il livello della linea, l'altro 
lo tiene su.
Devi prevedere uno switch (elettronico o meccanico che sia) per 
instradare il dato a seconda che vuoi utilizzare la connessione USB o RS232.
Marco

che anche chi costruisce questi adattatori ha il mio stesso problema?
Approposito di questo .. ma succede solo a me?
Io con quei convertitori usb->232 non riesco ad ottenere una seriale 
IDENTICA a una seriale integrata.
Il firmware spesso non lo riesco a scaricare nei micro usando questi 
convertitori ..
A voi succede lo stesso? 

A voi succede lo stesso? 
E' normale che succeda cos�.
La seriale ottenuta tramite i chip FTDI non � una seriale vera e propria, ma
solo una seriale virtuale dopo un interfaccia USB, quindi anche le operazioni di
controllo dei pins CTS, RTS ecc avvengono attraverso una comunicazione a
pachetti con tutti i ritardi conseguenti.
--
ciao
  Stefano

 pachetti con tutti i ritardi conseguenti.
Ciao Stefano, grazie.
Quindi secondo te, � possibile che le differenze che osservo nel mio 
hardware siano proprio dovute a questo?
Ma tra le impostazioni della seriale RS232 esiste la possibilit� di 
disabilitare la gestione di questi pin, in modo da renderla quindi 
perfettamente uguale alla seriale virtuale offerta dal chip usb ? 

perfettamente uguale alla seriale virtuale offerta dal chip usb ? 
No, perch� quei segnali fanno parte della RS232 fisica, se non servono si pu�
fare a meno di usarli e andare solo con TXD e RXD.
--
ciao
  Stefano

 fare a meno di usarli e andare solo con TXD e RXD.
Sai che mi sembra di ricordare che siano cortocircitati quei 2 pin  CTS e 
RTS ..
Come faccio a questo puntoad ottenere lo stesso comportamento da una 232 
fisica e da una emulata dal chip FTDI ? 

fisica e da una emulata dal chip FTDI ? 
Come faccio ad ottenere la stesse prestazioni da uno scooter e una motogp?
La seriale reale e la seriale virtuale sono due cose diverse, se ti serve quella
reale devi cercare di procurartela.
Su alcuni portatili costosi viene ancora montata, altrimenti ci sono schede
PMCIA che hanno un interfaccia seriale, diversamnete devi usare un desktop. 
--
ciao
  Stefano

 reale devi cercare di procurartela.
Ok .. intanto grazie per le risposte!
La mia scheda ha cmq entrambe le connessioni disponibili:
RS232 o usb con il chip FTDI che mi emula la seriale.
Esiste un programma PC che comunica con la scheda attraverso la seriale
(senza preoccuparsi se � una RS232 o una seriale emulata).
Il problema � che a causa delle diverse performance, ho grossi problemi a 
far funzionare entrambe le soluzioni.
Il tutto a 9600bps .. con pochi dati di scambio.
Appena posso mi ci dedico e faccio sapere se scopro qualcosa.
Grazie
Federico 


A mio parere dipende anche come � stato scritto il sw di programmazione ed a 
quali api si appoggia.
Per programmare i miei dispositivi, utilizzo comunemente si porte uart 
dedicate che convertitori usb commerciali basati su chip ftdi.
Il sw di programmazione l' ho scritto io, nessuna differenza nell'utilizzo 
di un dispositivo o dell'altro a 115k.
Considera che il convertitore usb si appoggia ad un livello sw pi� pesante.
Mi � capitato che clienti con notebook con scarse prestazioni avessero a 
volte difficolt� nella programmazione.
Disabilitando eventuali programmi che erano in esecuzione, in modo da 
sgravare la cpu e liberando memoria, la programmazione andava a buon fine.
Non era il problema di corruzione dati, ma di tempi di risposta, che con il 
convertitore potevano anche allungarsi a dismisura perch� messi 'in coda'. 

 a quali api si appoggia.
E' scritto in VB6, e usa l'oggetto COM di VB6.
Non fa distinzione se stai usando una uart o una uart emulata dal chip FTDI 

Non fa distinzione se stai usando una uart o una uart emulata dal chip FTDI 
Dal punto di vista di MSCOMM la seriale virtuale e quella reale sono uguali, ma
tu volendo puoi sapere lo stesso a che cosa sei commesso, anche se devi usare la
WMI per questo.
Leggi questo thread su iclvb in cui ho anche postato del codice:
http://is.gd/57Brf
Naturalmente il fatto di sapere che sei connesso ad una seriale fisica o
virtuale ti permette solo di informare l'utente che il programma potrebbe non
funzionare correttamente, ma � meglio di niente.
--
ciao
  Stefano