Convertidor de USB a serie utilizando la especificación CDC/ACM

Estoy tratando de usar un convertidor de USB a serie en una aplicación de la tienda de Windows. Como la aplicación de la tienda de Windows no admite puertos serie, necesito encontrar un convertidor USB/serie que admita CDC/ACM.

Esto es lo que probé:

  • Cree un archivo inf de cliente para un convertidor en serie controlado por FTDI (que no funcionó porque luego descubrí que FTDI no es compatible con CDC)
  • Encuentre un convertidor en serie que admita CDC (tampoco tuve suerte con eso).

¿Alguien puede decirme dónde puedo conseguir un convertidor USB/serie compatible con CDC?

Afaik, el cdc real se implementó de manera deficiente y los fabricantes no lo recibieron ampliamente. Los tres principales fabricantes (ftdi ft232, sl cp2101 y pl2303) usan sus propios controladores e implementaciones similares a cdc. Creo que tal vez el microchip mcp2200 pueda usar las especificaciones y controladores reales de cdc-acm. HH.
No creo que esta sea una pregunta sobre EE.
@andyaka, la respuesta probable es: casi cualquier microcontrolador con capacidad USB tiene un convertidor serial cdc/acm como proyecto de demostración. Por lo tanto, parece probable construir algo de hardware (o al menos reutilizar una placa de evaluación).
@Passerby que el cdc se implementó de manera deficiente es algo que, lamentablemente, leo mucho. La placa de demostración MCP2200 USB a RS232 parece hacer el trabajo, aunque no podemos vender una impresión sin protección a nuestros clientes. Tal vez haya alguna solución más completa.
@console impresión sin protección? Lo siento, no estoy muy seguro de lo que eso significa.
@Passerby Busco un conjunto de chips completo en un estuche con un USB y un conector DB9. Similares a los ofrecidos para chips ftdi/prolific.
Supuestamente, algunos de los chips FTDI se pueden poner en modo CDC/ACM, por comando o tal vez mediante la programación de una EEPROM de configuración interna o externa.
@ChrisStratton Gracias por eso. ¿Tal vez puedas darme más detalles donde debo buscar para hacer eso? Como no estoy acostumbrado a la programación de µC.
Tendrías que buscar en la documentación de FTDI. No es algo que haya probado, solo recuerdo haber visto una mención.
¿Puede cargar controladores USB en su sistema operativo? Simplemente puede desactivar la función de puerto serie de FTDI (FT_PROG.EXE) y Windows cargará el controlador D2XX en su lugar.
@console, dice que está buscando un "conjunto completo de chips en un estuche con un conector USB y DB9". ¿Tengo razón al concluir que está buscando un producto completo que pueda vender fácilmente a sus clientes? EE.SE no es el lugar adecuado para esa pregunta. Es posible que desee probar SuperUser o ServerFault, ya que los convertidores de USB a serie son equipos de usuario final.
Convertidor serie USB 2 con ATMEGA 8u2 seeedstudio.com/depot/…

Respuestas (5)

El Microchip MCP2200 es un dispositivo similar a FDTI que implementa el protocolo CDC.

De lo contrario, puede elegir un microcontrolador compatible con USB de un fabricante que suministre el código de ejemplo de los CDC. (Esta será la mayoría de los fabricantes que venden micros con capacidad USB).

Alguien ya sugirió el MCP2200 ya que hay una placa de demostración con un conector USB y DB9. Pedimos uno, lo miraré más de cerca a medida que llegue.
¿El MCP2200 es compatible con XON/XOFF?

Mi consejo sería usar la placa Arduino leonardo ya que la guía del producto dice "Leonardo es una instancia del controlador de clase de dispositivo conectado (CDC) de USB". Y luego solo use el escudo RS232 para obtener el cambio de nivel para RS232.

Viable, pero bastante caro y voluminoso

http://sabrent.com/category/cables/CB-FTDI/

Ese dispositivo parece admitir el modo CDC de forma nativa:

Compatible con la especificación USB v1.1(0) y USB CDC v1.1, USB 2.0

Viene con un CD de controladores, pero en la descripción hay otra línea interesante:

Utiliza el conjunto de chips FTDI; plug and play, instalación sin conductor .

También lo he visto, pero parece ser información incorrecta. Pensé que le daría un vistazo más de cerca.

Exar fabrica chips USB UART compatibles con CDC/ACM. Sin embargo, debe tener cuidado, ya que vienen con el control de flujo de hardware habilitado y no puede apagarlo a menos que use su controlador propietario. Si no lo necesita, solo asegúrese de atar los pines de control de flujo correctamente y no será un problema.

http://www.exar.com/connectivity/uart-and-bridging-solutions/usb-uarts/xr21v1410

Sin embargo, no tengo conocimiento de ningún cable USB a serie en particular que use este conjunto de chips.

Algunas opciones que conozco:

  • MCP2200 (VQFN/SOIC de 20 pines, USB CDC+HID, UART + GPIO, búfer 2×64, se requiere cristal externo)
  • MCP2221A (VQFN/SOIC/DIP de 16 pines, USB CDC+HID, UART + GPIO + I2C, búfer 64+384)
  • CY7C65213/A (SSOP-28/QFN-32, USB CDC, búfer 2×256, reemplazo pin-por-pin FT232R)