Todo sobre USB
Las personas experimentan una variedad de problemas con USB-C. Le pregunté a personas en línea sobre sus experiencias negativas con USB-C y obtuve una amplia variedad de respuestas, tanto en Twitter como en Mastodon. Además de eso, comunidades como r/UsbCHardware conservan un montón de cosas que hacen que la experiencia de algunas personas con USB-C sea insatisfactoria.
En ingeniería y piratería, hay cosas tácitas que solíamos considerar en silencio como inviables. Tener energía bidireccional y datos de alta velocidad en un solo puerto con miles de periféricos, usando nada más que un solo pin de datos: si alguna vez miró un esquema para un conector de acoplamiento patentado que intentaba tal hazaña, sabe que lo haría. encontrar horrores más allá de la comprensión. Por ejemplo, el pin de identificación de MicroUSB se convirtió rápidamente en un tesoro de valores de resistencia incompatibles para cualquier cosa más allá de "encender o ser alimentado". Los fabricantes de computadoras portátiles tuvieron que recurrir rutinariamente a resistencias y esquemas de un solo cable para asegurarse de que sus cargadores no estén sobrecargados por una computadora portátil que suponga más energía de la que puede dar el cargador, lo que introdujo una tonelada de modos de falla por sí solo.
Cuando se estaba diseñando USB-C, el grupo analizó cargadores, adaptadores OTG, salidas de pantalla, estaciones de acoplamiento, estaciones de acoplamiento con funciones de carga y salidas de pantalla, y los unió en una especificación que puede abarcar básicamente todo, a través de un solo cable. . ¿Qué puede salir mal?
Por supuesto, los fabricantes de dispositivos encontraron varias formas de tomar todo lo que proporciona USB-C y limpiar el piso con él. Algunos de los pecados de USB-C son tendencias notables. He descubierto que la mayoría de ellos son fallas de los fabricantes, ya sea por falta de atención o por malicia; cosas como el etiquetado de cables están directamente en el dominio estándar USB-C, y hay muchas fallas aleatorias por desgaste.
No sé si el estándar USB-C podría haber sido más simple. Puedo decir con certeza que muchos errores se deben a que los fabricantes de dispositivos y cables no prestan atención. Repasemos los notorios pecados de USB-C y veamos qué podemos aprender.
Sí, lo tienes. La primera entrada honoraria es la omisión de pulldowns de 5,1 kΩ en un puerto USB-C destinado a cargar su dispositivo. "¿Por qué mi dispositivo se carga con un cable USB-A a USB-C, pero no se carga con un cable USB-C a USB-C", pregunta el usuario? La respuesta es simple: porque el diseñador de su dispositivo decidió ahorrar un centavo mientras construía su dispositivo y no se preocupó por probar el dispositivo antes de vendérselo. En otras palabras, se supone que su dispositivo tiene dos resistencias conectadas al enchufe USB-C, pero no es así, y las fuentes de alimentación USB-C no pueden detectar que deberían proporcionar energía. Recuerde, la detección de resistencias es fundamentalmente un mecanismo de seguridad y, por ahora, la información sobre este problema es omnipresente.
Omitir estas resistencias es uno de los errores de tipo C más irritantes para los usuarios y, a menudo, hace que las personas depuren el problema durante horas y horas. Este es solo un ejemplo de un desarrollador que estaba trabajando con una placa WCH RISC-V usando un conector USB-C para la alimentación y pasó unas cuantas horas debido a que WCH no se molestó en agregar estas resistencias. Si compra una placa Arduino Pro Micro o TP4056 equipada con USB-C en Aliexpress, es probable que no tenga resistencia. Dondequiera que mires, encontrarás uno o dos dispositivos sin resistencia. El volumen total de este problema es, sinceramente, ridículo.
¿Recuerdas el artículo de potencia, específicamente, cómo llegas a voltajes más altos? Recapitulemos: primero obtiene 5 V y luego solo después de la detección de resistencia. Los voltajes más altos requieren negociaciones sobre un protocolo digital. Esta es una regla de seguridad: es cómo puede usar el mismo cargador USB-C para su computadora portátil, su teléfono, sus auriculares inalámbricos, sus placas de desarrollo y cualquier otra cosa.
Ahora, ¿qué sucede cuando alguien construye una fuente de alimentación con una salida fija de más de 5 V, por ejemplo, 12 V, y le coloca un enchufe USB-C? La respuesta es: suceden cosas realmente malas. No es seguro usar una fuente de alimentación de este tipo en dispositivos USB-C reales; es probable que destruya su teléfono o computadora portátil, y a simple vista no se distingue de un adaptador que sigue las reglas de USB-C establecidas para todos los demás. Si debe usar un adaptador de este tipo para algo de vez en cuando, debe marcar su cable con cinta roja de manera que cubra el enchufe del conector, para que usted (o su ser querido) no lo tome para cargar otra cosa. . En serio, es fácil cometer un error, y cuanto más te sientas cómodo con USB-C, más probable es que lo hagas.
¿Quién hace esto? Bueno, muchos fabricantes sin nombre lo hacen, pero también herramientas Lidl Parkside, por ejemplo. CrowPi también hace esto, en su computadora portátil CrowPi L recientemente lanzada. Ambos vienen con fuentes de alimentación de 12 V "USB-C" tontas, y ninguno de ellos debe venderse a los consumidores, especialmente dado que la computadora portátil CrowPi está diseñada para niños y con fines educativos, y las herramientas de Parkside están diseñadas para personas no tecnológicas. gente inteligente Cuando su hijo quema un teléfono inteligente de $ 500 o su abuelo quema su computadora portátil debido a una fuente de alimentación de $ 2, es cuando realmente comienza la gravedad de esta violación estándar.
La omisión de la resistencia es ahora una espina en el costado de los consumidores, y los diseños asesinos de las fuentes de alimentación son imperdonables. Los diseñadores no deberían hacer estas cosas. Sin embargo, hay un área en la que puedo perdonar los errores que ocurren, y ese es el protocolo USB-PD, específicamente, los errores de compatibilidad, especialmente en la tecnología USB-C temprana.
La especificación de PD es de 800 páginas; esto es, sin duda, intimidante. Sin embargo, si le pagan por implementar USB-C, es su trabajo familiarizarse con él. Por otro lado, cuando eres uno de los primeros en implementar una especificación compleja, es muy probable que la arruines sin que sea tu culpa. No tiene tantas implementaciones con las que trabajar, va a trabajar con (y alrededor) hardware de bajo nivel de adopción temprana similar, como circuitos integrados, y otros dispositivos a su alrededor van a estar torcidos de manera similar de manera sutil. La esencia es que la adopción temprana de es un problema de ingeniería más complicado de lo que podríamos reconocer.
Además de eso, hay dos rutas de adopción temprana para una tecnología de interfaz de amplio alcance como esta. Una ruta es: construye un dispositivo que está diseñado para ser específicamente compatible con los costosos periféricos que fabrica, a pesar de estar basado en un estándar abierto que apunta a la intercompatibilidad, y realmente no prueba el dispositivo con otras cosas. Llamo a esto la ruta de Nintendo Switch, sin ninguna razón en particular.
La otra ruta de adopción temprana es: diseña un dispositivo y luego lo prueba con otros dispositivos. Es la etapa de adopción temprana, por lo que otros dispositivos a menudo se rompen de manera similar, y terminas agregando una gran cantidad de soluciones y correcciones de errores apiladas una encima de la otra. Se siguen lanzando nuevos dispositivos y, durante un tiempo, cada uno de ellos trae una implementación un poco más rota. En el mejor de los casos, pasa mucho tiempo probando cuando casi nadie más lo hace, lo que garantiza una compatibilidad óptima, siempre que pueda ayudar a los desarrolladores a resolver el problema. En el peor de los casos, sus correcciones crean un tipo completamente nuevo de dispositivo con errores.
Con este descargo de responsabilidad de "culpar a las empresas" en mente, pasemos al siguiente punto, donde pasaré tiempo culpando a las empresas.
Hoy en día, no hay excusa para lanzar un producto USB-C mal probado. Si un proyecto de código abierto puede tener una variedad de fuentes de alimentación para probar una fuente de alimentación USB-C, las grandes empresas no tienen excusa. Si compró un banco de energía pesado que no se esfuerza lo suficiente para descubrir los roles de poder y termina cargándose de la computadora portátil cuando necesita lo contrario, eso significa que no se ha probado en computadoras portátiles como la suya, y es probable que la suya no lo sea. especial Seamos realistas: una empresa que desarrolla powerbanks puede permitirse comprar algunas computadoras portátiles con diferentes sistemas operativos y probar el comportamiento hasta que funcione bien.
Los problemas de compatibilidad con PD están ahí fuera, y es posible que te los encuentres eventualmente, especialmente cuando se trata de cargar. Hay computadoras portátiles que no funcionan con cargadores específicos, por ejemplo: mi computadora portátil Framework no funciona con un cargador de computadora portátil Xiaomi de 65 W, de manera que la batería sigue ciclando del 10 % al 30 %, y el cargador sigue conectándose /desconectar ciclos. También tengo una base donde el paso del cargador funciona solo para la mitad de las computadoras portátiles. Por supuesto, hay formas de administrar mal las especificaciones, pero seamos sinceros: debe haber una causa más fundamental para esto.
Parte del problema es la falta de intercambio de información. Cuando un gran proyecto de código abierto resuelve un problema complicado de compatibilidad y agrega una solución alternativa, va a GitHub para que todos lo vean y lo utilicen, con una descripción del problema que se puede buscar en el mensaje de confirmación.
Cuando una entidad comercial corrige el mismo error, se agrega a /dev/null para todos los demás propósitos y fines informativos, excepto para el blob binario que envían como una actualización de firmware, si es que lo hacen. En este caso, cada empresa que implementa cosas que hablan de DP tiene su propia base de datos de peculiaridades de DP, trabajando en torno a las peculiaridades de los dispositivos con los que probaron. Esas peculiaridades de PD deberían ser información abiertamente disponible, pero no lo son.
A los desarrolladores de soluciones propietarias no se les paga por compartir cosas, mientras que en un proyecto de código abierto, el intercambio ocurre de forma natural, sin esfuerzo adicional, exponiendo una vez más la inferioridad fundamental de los procesos propietarios. Gran parte de la razón por la que tiene dispositivos USB-C defectuosos es que las empresas prefieren hacerle pagar de más y sufrir incompatibilidades, que esforzarse en compartir información entre ellas. Ya sea que se trate de información sobre vulnerabilidades de seguridad o de diseñar estándares en conjunto, las grandes corporaciones están aprendiendo lentamente a hacer las cosas de la manera correcta, dominio por dominio, pero el concepto general nunca parece mantenerse: las anteojeras fundamentales de los motivos de lucro y la codicia son así de fuertes.
También suele ser difícil trabajar con microcontroladores con periféricos PD. Nuevamente, esto es una falta de esfuerzo para hacer que esos periféricos sean amigables para los desarrolladores, ya sea a través de un mejor diseño o una mejor documentación; a menudo, un código más abierto, como puede adivinar, lamentablemente. Este factor por sí solo hace que sea más probable que el usuario final encuentre errores, simplemente porque será más difícil escribir un código razonable para un periférico con el que es más difícil trabajar.
Puede comprar una computadora portátil de $ 1000 y descubrir que su puerto USB-C solo admite USB3, sin carga ni DisplayPort. O bien, puede comprar un teléfono inteligente de nivel medio de $ 500 y descubrir que no puede cargar y hacer OTG al mismo tiempo, a pesar de que USB-C lo hace para que los dispositivos puedan hacer precisamente eso de manera estandarizada, matando todos esos adaptadores divisores MicroUSB con resistencias extrañas en el pin de identificación.
En el espacio de las computadoras portátiles, Asus es uno de los peores infractores, ya que ha tenido una larga racha de dispositivos con solo salida USB3 en USB-C: sin DisplayPort, sin carga, sin mencionar Thunderbolt. Lo que es peor: al mirar la documentación, es posible que no encuentre ninguna mención de lo que es capaz de hacer el puerto USB-C, sin importar si es capaz de algo o no. Y, por supuesto, la falta de un etiquetado claro de los puertos lo empeora.
La guinda del pastel es un solo puerto USB-C en una computadora portátil, y nada más, es posible que haya visto Macbooks como este. Básicamente, debe llevar un dongle con paso de PD, no hay ningún lugar para enchufar el receptor del mouse inalámbrico y el puerto USB-C se convierte en la definición viva de la palabra "cuello de botella". Cuando se trata de reparar correctamente, tener un solo puerto USB-C para absolutamente todo significa agregar un punto de falla gigante que lo dejará sin computadora portátil si accidentalmente usa un cargador demasiado barato y termina derritiendo el plástico del único puerto. Si no es una Macbook, buena suerte para encontrar un puerto de reemplazo; Los puertos USB-C de lotes pequeños hechos a medida pueden ser literalmente imposibles de encontrar para un aficionado.
Recuerde: si su cable USB-C está roto o torcido, debe dejar de usarlo y comprar uno de repuesto. Marque los dispositivos que se comportan mal y hable en línea sobre ellos; nombrar y avergonzar generosamente. Lea reseñas en línea si lo que le preocupa es la compatibilidad, desplácese hacia abajo en Aliexpress o busque el nombre del producto para ver si el dispositivo que está comprando tiene las resistencias que necesita. Al comprar una fuente de alimentación USB-C o una base bastante costosa, puede ser bueno probarla con su dispositivo y asegurarse de que puede devolverla o cambiarla por una diferente. Con el tiempo, los bordes afilados se suavizarán, y siempre que el USB-D visite nuestros hogares, encontrará muchas personas que sienten nostalgia por lo simple que era el USB-C.
Anterior: ¿Cuántos cables necesitas para medir una resistencia?
Próximo: Anti