USB a RS232 sin host (dispositivos esclavos)

Estoy tratando de hacer que dos dispositivos esclavos (es decir, sin controlador de host) se comuniquen.

  • Esclavo 1: USB con chip FT232RQ
  • Esclavo 2: DB9

Usando cables convertidores estándar de USB a RS232, no puedo hacer que los dos dispositivos se comuniquen entre sí. Creo que esto se debe a que no tiene un "controlador de host".

Entonces, para obtener comunicación, creo que necesito introducir un controlador "host" entre los dos esclavos:

TTL <-> Anfitrión <-> RS232

¿Estoy en la línea correcta con esta idea/solución?

¿Por qué no omitir por completo el requisito de USB?
Aunque no está del todo equivocado, sería muchísimo más fácil hacer lo que sugiere Ignacio.
Ambos dispositivos esclavos son unidades de producción, por lo que no puedo realizar cambios en esta etapa. Solo puede realizar cambios de firmware en el dispositivo USB. @brhans
Hay un dispositivo que podría hacer eso, vinculum, búscalo en Google. Pero es mejor no usar usb en absoluto, los muchachos antes que yo tienen razón.

Respuestas (1)

Creo que hay una confusión en algún lugar aquí. No puede decir "dispositivo DB9 esclavo" porque aunque DB9 se usa para innumerables protocolos (CAN, USART, etc.) ninguno de ellos tiene nada que ver con el significado de dispositivo esclavo USB.

A menos, por supuesto, que este DB9 esté conectado internamente a otro convertidor de serie a USB en el interior que conduce a un esclavo USB real más adelante. Pero dado que ocultar el esclavo USB en una caja separada del mundo por una interfaz serial tiene muy poco sentido, asumiría que no es el caso aquí.

Entonces, básicamente tiene un dispositivo desconocido (para mí) con algún protocolo serial basado en TTL en el lado DB9. Al conectarle un cable RS232 a USB, NO lo convierte mágicamente en un dispositivo esclavo. O, más precisamente, lo convierte en un esclavo USB de "clase de proveedor" con descriptor de interfaz FTDI (o cualquier chip que esté dentro de ese cable).

Por otro lado, tiene un dispositivo con conector USB conectado internamente al chip FT232R y luego a MCU con interfaz serial. Esto me dice que el Esclavo 1 tampoco es un verdadero esclavo USB. Los chips FT232R se utilizan como capa de transporte entre la interfaz serial del dispositivo y el puerto serial virtual en la computadora host.

Lo que básicamente significa que también tiene otro dispositivo serie (ni anfitrión ni esclavo) en este lado. Y si tiene acceso a su firmware, puede programar cualquier protocolo serial que admita el dispositivo DB9. Ésto es una cosa buena.

Lo malo es que el chip FT232R requiere un host en el medio, no hay solución aquí. Entonces, básicamente tienes cuatro opciones:

  1. Opción de hardware + software: Cree su propio adaptador con host USB basado en MCU compatible con USB. Su software también tendrá que funcionar como controlador FTDI. Este es el enfoque más complejo, pero debería permitir no realizar ningún cambio en el firmware del Esclavo 1.

  2. Opción de hardware + firmware: haga su propio adaptador usando el chip Vinculum de FTDI. Cárguelo con una imagen de software de puente de host UART a FT232 preprogramada . Es posible que alguien ya fabrique estos adaptadores o cables comercialmente, así que navegue por la web para encontrarlo. Modifique el firmware en el Esclavo 1 para comunicarse con el Esclavo 2 como si estuvieran conectados directamente por UART . Este es el enfoque más portátil, básicamente su propio cable RS232 a USB.
    ACTUALIZACIÓN: en realidad, FTDI hace que la placa de desarrollo esté prácticamente lista para esta aplicación.

  3. Opción de software: Conecte ambos dispositivos a la PC, Esclavo 1 directamente, Esclavo 2 a través de un cable normal RS232 a USB. Obtendrá dos puertos COM en la computadora. Desde aquí puede escribir el programa "controlador" para comunicarse con ambos dispositivos a través de esos puertos COM.

  4. Opción de software + firmware: conecte ambos dispositivos a la PC como se indicó anteriormente. Conecte dos puertos COM utilizando cualquier software disponible, como el controlador de puerto serie virtual de Eltima. Modifique el firmware en el Esclavo 1 (exactamente como en la opción 2 anterior).

opción con la opción 2, sin embargo, desde entonces descubrí que el puerto USB B en el esclavo 1 suministra solo 2.5v. Por lo tanto, tendré que agregar otra placa/módulo de antemano para subir a 3.3/5v primero. @Arce
No se supone que se suministre NINGUNA energía desde el dispositivo . El suministro de energía es tarea del host , por lo que ambas soluciones de hardware requieren alimentación externa o batería. #2 es una buena opción. Si fuera yo, elegiría el n.° 3 si se permite el uso de PC o el n.° 2 si no.