Sería justo decir que el equipo de Raspberry Pi no ha estado exento de problemas de hardware, la Raspberry Pi 2 es tímida, el Raspberry Pi PoE HAT sufre de un problema de alimentación USB bastante embarazoso, y ahora todo La nueva Raspberry Pi 4 es la primera en tener un suministro de energía USB-C, pero no funciona muy bien con USB-C a menos que se decida por un cable 'tonto'.

Únase a mí a continuación para obtener un breve resumen de esos problemas anteriores, y un resumen detallado de USB-C, las diferencias entre los cables normales y los marcados electrónicamente (con el sello electrónico), y por qué la lógica de detección podría estar haciendo su nueva Raspberry Pi. 4 parecen un conjunto analógico de auriculares para el hardware de suministro de energía.

Un viaje por el carril de la memoria

La Raspberry Pi 2, con la cámara tímida U16 IC en la parte inferior izquierda.

En febrero de 2015, una publicación de blog en el blog oficial de Raspberry Pi cubrió lo que pensaron que podría ser "el bicho más adorable de todos". En resumen, la computadora de una sola placa Raspberry Pi 2 (SBC) emplea un paquete de nivel de oblea (WL-CSP) que realiza la funcionalidad de suministro de modo de conmutación. Desafortunadamente, como es el riesgo con cualquier paquete de nivel de oblea como este, expone el dado desnudo al mundo exterior. En este caso, cierta radiación electromagnética, como la luz de un flash de cámara de xenón, entra en el dado, causando una efecto fotoeléctrico.

La interrupción resultante llevó a que los dispositivos de seguridad del chip se activaran y cerraran todo el sistema, afortunadamente sin ningún daño permanente. La solución para esto es cubrir el chip en cuestión con un material opaco antes de hacer algo como tomar fotos con un flash de xenón o apuntar con un puntero láser.

Si bien el problema de la Raspberry Pi 2 fue realmente difícil de predecir y objetivamente más adorable que peligroso, el problema con el Power over Ethernet (PoE) HAT fue decididamente menos lindo. Básicamente, inutilizó los puertos USB debido a la activación de la protección contra sobrecorriente. El principal culpable aquí es la MPS MP8007 PoE IC de potencia (Enlace PDF), con su implementación de convertidor CC-CC de retroceso relativamente lento ejecutándose a 100 kHz (recomendado <200 kHz en la hoja de datos). Combinado con una falta de capacidad de salida (41% de la recomendada), esto significaba que las sobrecargas de corriente pasaban a los capacitores de búfer USB durante cada ciclo (lento) de entrada de energía, lo que activó la protección de sobrecorriente del chipset USB.

Tablero Raspberry Pi equipado con un PoE HAT

los solución aquí estaba un rediseño del PoE HAT, que aumentó la capacitancia de salida de suministro y suavizó la salida tanto como fue posible para evitar sobretensiones. Esto solucionó el problema, permitiendo la conexión de dispositivos USB de mayor potencia. La pregunta del tamaño de un elefante en la sala era, por supuesto, por qué el equipo de Raspberry Pi no había detectado este problema durante las pruebas previas al lanzamiento.

USB Type-C es mucho más que solo un conector

La nueva Raspberry Pi 4 se lanzó hace unas semanas, y es la revisión más grande de la plataforma desde el Modelo B + original que definió el ‘Factor de forma de la frambuesa pi". Pero en menos de una semana empezamos a escuchar sobre una falla en el comportamiento de la entrada de alimentación USB-C. Resulta que el problema clave es cuando se usan cables marcados electrónicamente, que incluyen los circuitos utilizados por la especificación USB-C para desbloquear funciones avanzadas (como suministrar más energía o reconfigurar qué señales se usan entre dispositivos). Estos cables con e-marcados simplemente no funcionarán con el Pi 4 mientras que sus primos "tontos" lo hacen muy bien. Averigüemos por qué.

La especificación USB-C es bastante complejo Aunque mecánicamente el conector USB-C es reversible, eléctricamente se está realizando mucho trabajo detrás de escena para que las cosas funcionen como se espera. La clave para esto son los dos pines del Canal de Configuración (CC) en cada receptáculo USB-C. Cada uno de ellos se emparejará con el cable CC en el cable o (en un cable marcado con e) a la VCONN conductor. Un cable USB-C normal dejará la VCONN Pin flotante (desconectado), mientras que el cable marcado con e se conectará VCONN a tierra a través del in-cable Runa Resistencia como podemos ver en este diagrama de la especificación USB-C.

También es posible tener un cable USB-C marcado con e sin el cable VCONN Conductor, al tener chips de SOP ID en ambos extremos del cable y al host y al dispositivo alimentar el cable con VCONN. De cualquier manera, tanto el host como el dispositivo monitorean los pines CC en su extremo, miden la resistencia presente a través del voltaje monitoreado. En este caso, el comportamiento del host es dictado por la siguiente tabla:

Ahora que hemos analizado el aspecto de una configuración básica de USB-C, es hora de ver el tema de este artículo. Como el equipo de Raspberry Pi ha publicado con tanta gracia la Raspberry Pi 4 esquemas (menos el lado de SoC por alguna razón), podemos ver qué tipo de circuito han implementado para el lado de la unidad USB-C (dispositivo):

Como podemos ver aquí, a diferencia de la especificación USB-C, el equipo de diseño de Raspberry Pi ha elegido no solo conectar CC1 y CC2 a la misma Rre Resistencia, pero también cortocircuitado CC1 y CC2 en el proceso.

Recuerde, la especificación está buscando una resistencia (Rre) en cada uno de los dos pines CC. De esa manera, un cable marcado electrónicamente que conecta la placa Pi 4 y un cargador USB-C capaz de usar este estándar se habrían registrado con la R adecuadare resistencia, por lo tanto, 3A a 5V habría estado disponible para este dispositivo de sumidero.

Sin embargo, como esto no se hizo, en cambio, obtenemos una configuración interesante, donde la conexión CC aún está establecida, pero en el lado de la Raspberry Pi, la resistencia no lee los 5.1 kOhm del Rre resistencia, ya que todavía hay la Runa Resistencia en el cable en el otro pin CC del receptáculo. La red de resistencias resultante tiene los valores 5.1k y 1k para la Rre y Runa resistencias respectivamente. Este circuito tiene una resistencia equivalente del circuito de 836 ohm.

Este valor está dentro del rango permitido para Runa, y por lo tanto la Raspberry Pi 4 es detectada por la fuente como Runa + Runa, lo que significa que es un accesorio de adaptador de audio, esencialmente un dongle de audio de USB-C a analógico. Esto significa que la fuente no proporciona ningún poder en VAUTOBÚS y la Raspberry Pi 4 no funcionará ya que no recibe ningún poder.

En el caso de un cable no marcado electrónicamente, esto no sería un problema como se mencionó anteriormente, ya que no hace esta forma de detección, sin Runa Resistencia para impedir que la Raspberry Pi 4 haga su trabajo.

Al igual que con el problema PoE HAT, la pregunta se planteó rápidamente: ¿por qué no se encontró mucho antes este problema con el puerto USB-C de la Raspberry Pi 4? De vuelta con el Pi 2 PoE HAT, la explicación oficial del equipo de Raspberry Pi fue que no habían realizado pruebas con los dispositivos adecuados, se habían reducido las pruebas porque se habían retrasado con el envío y no habían hecho las preguntas correctas a los evaluadores de campo, lo que llevó a muchos escenarios que simplemente no se estaban probando.

En una respuesta a Tech Republic, el CEO de Raspberry Pi Ltd, Eben Upton ha admitido el error Pi 4 USB-C. Y un portavoz de Raspberry Pi Ltd dijo en una respuesta a Ars Technica que es probable que una próxima revisión de la Raspberry Pi 4 aparezca en los "próximos meses".

Parece obvio cómo este error logró colarse en la producción. Al igual que con el PoE HAT, una falla de diseño que se ocultó, nadie lo detectó durante la validación esquemática, los tableros prototipo no vieron la cantidad necesaria de pruebas (dejando algunos casos de uso sin probar), y por lo tanto ahora estamos viendo otro problema Eso deja al nuevo hardware Raspberry Pi esencialmente defectuoso.

Claro, es posible hackear estos tableros como una solución. Con el PoE HAT, uno podría haber soldado en un condensador electrolítico grande a la etapa de salida del lado secundario del transformador y las cosas "fijas" probablemente de esa manera. De manera similar, se podría piratear una resistencia en la Raspberry Pi 4 después de cortar un rastro entre las dos clavijas CC … o incluso más simple: nunca use un cable USB-C marcado con e con la Raspberry Pi 4.

Sin embargo, el punto triste de todo esto es, sin duda, que se supone que son dispositivos probados y listos para usar, que cualquier maestro de escuela puede comprar para su clase. No es un dispositivo que primero necesita un viaje al laboratorio de electrónica para que se analicen varios problemas y se conecten los cables y componentes en varios puntos antes de que se introduzcan en un recinto y se entreguen a un alumno o al propio hijo.

La ironía de todo esto es que, debido a estos errores, el equipo de Raspberry Pi ha dejado claro, sin saberlo, que la prueba de hardware no es difícil, simplemente debe hacerse.

En el curso de la redacción de este artículo, el suyo realmente tuvo que profundizar en la especificación USB-C, y como un punto de imparcialidad para el equipo de diseño de Raspberry Pi, la primera vez que se implementa USB-C no es un paseo por el parque. De todas las especificaciones que existen, USB-C no tiene un rango muy alto de facilidad de uso o incluso de concisión. Es un gran documento de 329 páginas, que ni siquiera cubre la monstruosidad conocida como USB-C Power Delivery.

Cometer un error al implementar una interfaz USB-C la primera vez que se usa en un diseño no es una pena. La especificación USB-C agrega innumerables detalles y complejidades que simplemente no existen en las versiones anteriores del estándar USB. Tener este lío de diferentes tipos de cables con muchos más conductores tampoco hace la vida más fácil.

La falla aquí es que los errores de diseño de USB-C no se descubrieron durante la fase de prueba, antes de que el producto fuera fabricado y enviado a los clientes. Esto es algo donde cualquier equipo que ha estado involucrado en un proyecto de este tipo necesita dar un paso atrás y volver a evaluar sus prácticas de prueba.

Dejar respuesta

Please enter your comment!
Please enter your name here