¿El conector USB hace algo especial como la coincidencia de impedancia o es solo una forma de conectar dos dispositivos entre sí?

Estoy diseñando una placa en la que tanto el host USB como el dispositivo están en la misma placa. El host es un microprocesador y el dispositivo es un dispositivo HID que tiene un stm32f107 como controlador de dispositivo USB. Lo que necesito saber es:

  • ¿Es posible conectar las líneas de datos de mi dispositivo y host como un par diferencial en la placa sin componentes adicionales como conectores USB, resistencia y...?

Al igual que los conectores de antena en la placa de telecomunicaciones que coinciden con la impedancia de la placa y la antena, ¿los conectores USB hacen lo mismo? Quiero decir, ¿la omisión de los conectores USB del circuito afecta el funcionamiento de la comunicación USB?

Si la memoria no me falla, el USB, como la mayoría de los buses serie diferenciales de alta velocidad, utiliza una impedancia diferencial de 100 ohmios. En tiradas cortas, eso puede no importar mucho, especialmente si está trabajando con una versión de baja velocidad (las cosas se vuelven /mucho/ más complejas cuando llega a USB3 y demás, donde cosas como la coincidencia de longitud se vuelven muy importantes)
El Raspberry Pi es un dispositivo común que tiene una situación similar. Su puerto ethernet está conectado al SoC a través de su concentrador USB, todo en la misma PCB.
Consulte la tabla 7-12 (Características del cable) en la especificación y el Suplemento USB entre chips para la especificación USB 2.0 .

Respuestas (4)

Los conectores USB 1 y 2 A/B son solo conectores, no hay magia especial dentro de ellos. Los conectores USB 3 A/B también son solo conectores, pero están alcanzando velocidades en las que controlar los parásitos en el conector, mantener la impedancia característica, etc. comienza a ser realmente importante.

Siempre que mantenga las impedancias correctas que van directamente de un chip a otro, debería estar bien. Incluso si no lo hace, es casi seguro que una interfaz de "velocidad máxima" funcionará.

Los conectores USB C pueden tener algo de inteligencia en su interior, pero en realidad está relacionado principalmente con el tema de la "entrega de energía".

Sí, es posible conectar un host y un dispositivo en la misma PCB simplemente ejecutando un par diferencial de la impedancia adecuada entre ellos. En la práctica, puede salirse con la suya con algunos desajustes, por lo que puede hacer esto en FR4 sin problemas, incluso sin requerir una fabricación especial de impedancia controlada. Muchas computadoras integradas o portátiles hacen esto.

Nunca he tenido ninguna dificultad con USB 2.0 de alta velocidad (480 Mbps) simplemente siguiendo las prácticas básicas de diseño de alta velocidad; USB 3.0 requeriría más cuidado y probablemente simulación.

La conexión de dispositivos USB con microprocesadores anfitriones en la misma placa sin conectores intermedios se denomina "USB integrado". Muchas computadoras portátiles y de escritorio incorporan dispositivos USB a bordo. En cierto sentido, la integridad de la señal puede ser incluso mejor, suponiendo que las trazas diferenciales de HS se implementen con una impedancia de 90 ohmios, ya que cualquier conector es siempre una desviación de la traza de la PCB y, por lo tanto, se introduce una falta de coincidencia de impedancia.

Sin embargo, hay una advertencia que con frecuencia se pasa por alto. El protocolo de conexión USB normal implica la detección de VBUS en el lado del dispositivo de la conexión, lo que hace que el dispositivo inicie el protocolo de "conexión" levantando la línea D+ (o D- en el caso de un dispositivo LS) DESPUÉS de recibir el VBUS (después de enchufar el cable). El problema es que en el diseño integrado, el VBUS (y la alimentación del dispositivo) se supone que siempre está encendido, lo que hace que los dispositivos USB confirmen el evento de conexión (pull-up) ANTES de que el host se encienda, se inicie, el controlador USB esté configurado y el software USB. la pila está cargada, lo que hace que el host esté listo para comunicarse. En muchos hardware de host heredados, esta afirmación prematura del estado de conexión puede interrumpir la funcionalidad normal de configuración del host, y es probable que se necesiten algunas soluciones de software adicionales. Podría funcionar,

Si un diseñador no quiere sorpresas al encender, el host debe implementar una línea GPIO adicional (análoga a VBUS) que mantendría los dispositivos USB integrados en estado desconectado hasta que el host se inicie y esté listo para comunicarse a través de USB. O use ese GPIO adicional para encender los chips USB incorporados solo después de que la pila USB host esté lista.

Creo que tener un buen cable y conectores adecuados, en la mayoría de los casos, es una cuestión de minimizar la pérdida y la degradación de la señal cuando su aplicación REQUIERE que transfiera una señal a distancia.

Más corto suele ser mejor.

Dudo mucho que el cable proporcione alguna función esencial más allá de transferir las señales del punto A al punto B con la menor degradación posible. Dicho esto, observo que numerosos comentarios expresan preocupaciones sobre USB 3.0, por lo que espero que haya otras consideraciones si eso se implementa.