Comportamiento diferente de FTDI USB RS485 en diferentes computadoras

3

Utilizo un para conectar un dispositivo RS-485 a una computadora .

La comunicación es bastante simple, la computadora envía solicitudes periódicas, el dispositivo las responde.

En una computadora (laptop Dell, Win XP) esto funciona como se esperaba, pero con otra (laptop Fujitsu, Win XP) tengo algunos problemas.

Cada par de solicitudes, el dispositivo no las responde y reclama un error de paridad. Por lo que vemos con PortMon y un osciloscopio, las solicitudes son siempre las mismas, por lo que se deben responder.

La aplicación en las computadoras portátiles es exactamente igual y todos los controladores (CDM 2.08.24) son iguales. Una diferencia es que la computadora portátil problemática tenía una versión anterior del controlador instalada.

¿Alguna pista de lo que debería revisar?

Editar:

Así que wie investigó el tema un poco más: 2 computadoras portátiles funcionan bien (HP, Dell, WinXP e Intel Centrino), otras 3 no funcionan (2 Fujitsu, Sony, WinXP, Win7, todas de Intel i5 o i7).

Medimos las señales con un osciloscopio, que se envían al dispositivo. Las computadoras portátiles que no funcionan envían señales, que fluctúan entre 3 y 6 microsegundos. Así que asumimos que el dispositivo no puede reconocer los bits correctos debido a esa fluctuación. Utilizamos diferentes cables FTDI USB-RS485, pero siempre los mismos síntomas. Las computadoras portátiles que trabajan tienen un jitter de máx. 1 microseg.

Entonces, mi pregunta: ¿por qué se agita la señal transmitida por el cable en algunas computadoras, en otras no?

También contactamos con el soporte de FTDI, pero aún no tenemos una respuesta suficiente.

Editar2:

Hasta ahora tenemos 2 computadoras portátiles que funcionan y varias que no funcionan. Parece que las computadoras portátiles más viejas con Centrino funcionan bien, hasta ahora ninguna computadora portátil más nueva con CPU Intel i5 / i7 funcionó.

Sospechamos que no hay un reloj interno en el adaptador y el adaptador usa un reloj de la computadora portátil, pero el soporte de FTDI confirmó que el adaptador tiene su propio reloj interno. El soporte de FTDI no ha oído hablar de este problema en el pasado y hasta ahora no tiene solución.

    
pregunta Simon

4 respuestas

1

Hicimos más pruebas en diferentes computadoras portátiles (perdón por el formato, no he encontrado la forma de formatear una tabla aquí):

Tipo de computadora portátil | Procesador | Comunicaciones serie

DELL Precision M6300 | Intel Centrino | Ok

HP EliteBook 6930p | Intel Centrino | Ok

Panasonic Toughbook CF-18 | Intel Centrino | Ok

Roda Rocky RK9 | Intel Core 2 | Ok

Fujitsu Lifebook S Series | Intel Core i5 | FALLO (incluso en puertos USB3)

Sony Vario | Intel Core i5 | ERROR

HP | Intel Core i5 | FALLO (incluso en puertos USB3)

Parece que las computadoras portátiles con chipsets USB para los procesadores Intel no funcionan, las antiguas funcionan.

Sin embargo, compré un USB-ExpressCard (lo siento, tienda en línea alemana) con el conjunto de chips Renesas USB 3.0 y con eso la computadora portátil Fujitsu funcionó bien.

Por lo tanto, utilizar ExpressCards es una solución para nosotros, pero aún no sé cuál es el problema exacto. El soporte de FTDI parecía desconocer ese problema.

    
respondido por el Simon
2

Encontré exactamente el mismo problema: un convertidor RS485 USB basado en FTDI < > (la marca es "DIGITUS"), funciona a 57600bps, funciona correctamente en algunas máquinas y en otras envía grandes cantidades de datos muy poco fiables. Lo que descubrí (después de perder mucho tiempo investigando sobre la conexión a tierra y la terminación del bus), es que en las máquinas rápidas no funcionó, porque el chip del controlador RS485 (no fabricado por FTDI) no lanzó el bus RS485 rápido / confiable Bastante en relación con la salida del chip FTDI. FTDI está liberando el bus después de cada byte (justo después del stopbit) a través del puerto TXEN y lo adquiere de inmediato para el siguiente byte (que en las máquinas rápidas ya está en el búfer). La solución fue, para poner un retraso entre cada byte enviado y funcionó. Sí, bastante mala solución. Wish FTDI daría una opción, por ejemplo. en el controlador para ajustar la temporización de TXEN.

    
respondido por el Ein Gast
1

Hay dos posibilidades como yo lo veo.

1:
No está anulando completamente los ajustes de configuración de FT232 cuando abre la interfaz serial.

He realizado un trabajo bastante extenso con las interfaces seriales de FTDI, y puedo decirles que es muy posible que una interfaz serial basada en uno de sus dispositivos esté en un estado muy extraño en la apertura inicial. Dependiendo de cómo esté hablando con el puerto (lo está tratando como un puerto serie, o está usando el controlador D2XX de FTDI?), En realidad tenía un puerto abierto en el modo 7E1 (7 bits, incluso paridad, 1 bit de parada) en cada inicialización, a pesar del hecho de que nunca lo había utilizado en esa configuración.

Los valores predeterminados se almacenan utilizando un conjunto completo de claves de registro, pero recomendaría configurar manualmente todas las opciones de configuración del puerto cada vez que abra la interfaz, incluso si está seguro de que la computadora en la que se encuentra tiene los valores predeterminados correctos.

2:
La otra posibilidad que veo es más complicada:

Básicamente, FTDI no hace dispositivos USB-RS-485. Solo hacen dispositivos USB-Paralelo, y USB-RS232. Como tal, para hacer una interfaz USB-RS485 basada en FTDI, necesita un IC de búfer adicional, que generalmente está controlado por algunas de las líneas IO adicionales en uno de los ICs serie USB de FTDI.

Supongo que es posible que algunas de las líneas de control auxiliar en su interfaz USB-RS485 se configuren de manera diferente en cada computadora.

Por ejemplo, vea este esquema del conversor de demostración USB-485 de FTDI :

Como puede ver, el estado de CBUS2 y CBUS4 están involucrados en el manejo de habilitación de transmisión / recepción y recepción respectivamente.

Puedo concebir (aunque es bastante improbable), que la línea de habilitación de transmisión o recepción del FS485 esté configurada para usar el pin incorrecto por el controlador en una de las computadoras (puede configurar TXEN y RXEN para que sea cualquiera de CBUS0 CBUS4. Esto podría causar problemas interesantes ya que las líneas de control del IC de interfaz 485 son flotantes / indeterminadas. Sin embargo, esto me parece bastante improbable.

    
respondido por el Connor Wolf
1

¿Tal vez un problema de calidad de energía? Los chips en los adaptadores de este tipo normalmente son alimentados por la PC.

Puede usar un analizador USB (software o hardware) para descartar problemas de software o controladores.

    
respondido por el Jim Paris

Lea otras preguntas en las etiquetas