Además del cuello de botella, la alimentación USB de la Raspberry Pi 3 es otro problema para sus usuarios.
« El temible rayo amarillo »
Todas las Raspberry Pi empezando con la 2ª generación (A+, B+ y de ahí en adelante) tienen circuitos de detección de baja tensión. Si debido a cables de alimentación Micro USB o cargadores de teléfono de mala calidad la tensión de entrada cae por debajo de 4.65V, se activa una señal GPIO. Esta señal baja la velocidad de varios subsistemas (CPU, GPU, VPU e incluso la memoria RAM) y muestra un símbolo de advertencia si hay una pantalla HDMI conectada. En esta captura lo veis en la esquina superior derecha.
Así las Raspberry Pi son capaces de evitar problemas de mala alimentación eléctrica a cambio de bajar el rendimiento. Por defecto, cuando ocurre esta bajada de tensión, o si es permanente por la calidad del cable o el conector de la Raspberry Pi 2 y también de las Raspberry Pi 3, el procesador no subirá de 600 MHz.
Alimentación USB: Un poco de historia
Cuando se crearon las especificaciones iniciales de USB 1 y 2.0 describieron dos tipos de fuentes de alimentación USB: 5V a 500mA y 5V a 100mA, respectivamente. Estas especificaciones no tenían en cuenta la carga de baterías o las Raspberry Pi. Estaban pensadas sólo para alimentar pequeños periféricos como ratones y teclados.
Esto motivó una modificación y ampliación de las especificaciones: la Battery Charging Specification, Rev 1.1, de 2009 (BC1.1). En ella se incluyeron los siguientes posibilidades:
- SDP: Standard downstream port o Puerto de conexión estándar. Es el mismo puerto definido por la especificación USB 2.0 y es la forma típica que se encuentra en los ordenadores de sobremesa y portátiles. La corriente de carga máxima es de 2.5mA cuando está suspendida, 100mA cuando está conectada y no suspendida, y 500mA (máx.) cuando está configurada para esa corriente. En USB 2.0, no es estrictamente legal extraer energía sin conexión de datos, aunque gran parte del hardware actual hace precisamente eso, en contra de las especificaciones.
- CDP: Charging downstream port o Puerto de carga y conexión. Este nuevo puerto USB se define por primera vez en este documento BC1.1. Como su nombre indica está pensado para usarse como cargador y puede suministrar hasta 1.5A, y puede ser suministrada sin conexión de datos. El reconocimiento del tipo de hardware se realiza antes de activar los datos, permitiendo que comience la carga antes.
- DCP: Dedicated charging port o Puerto de carga dedicado. Otro nuevo tipo incluido en BC1.1 y que describe fuentes de alimentación de verdad en las que la carga pueda ocurrir sin comunicación digital en absoluto. Los DCPs pueden suministrar también hasta 1.5A
Luego tenemos el USB 3.0, que ofrece mejoras en velocidades de datos pero en temas de potencia son similares a USB 2.0. Con incrementos de 150mA en vez 100mA hasta el total de 900mA.
Por si no queda claro, no hay nada aprobado para usar más de 1.5A. Y mucho menos los 3A que se supone que necesita la Raspberry Pi 3
Por suerte, en 2011 se publicó una nueva Battery Charging Specification Revision 1.2 (BC1.2). Esta permite el uso de CDP más altos siempre que el dispositivo conectado sea detectado correctamente. En cualquier otro caso funcionará siguiendo el estándar normal de 1,5A. Así que por aquí entran en juego los cargadores de más de 1,5A.
USB Power Standards
Podéis ver en la Wikipedia (https://en.wikipedia.org/wiki/USB#Power) una tabla resumen:
Volviendo a la Raspberry Pi 3
Según diseño la corriente de salida por los puertos USB combinados está limitada a 600mA. Se puede forzar, como vimos en este post. Se hará editando /boot/config.txt
y añadiendo max_usb_current=1
para permitir 1200mA en total. O sea, que la suma de los 4 USB será esos 1200mA.
El consumo interno en la Raspberry Pi 3, incluyendo: procesador, GPU, VPU, RAM, Ethernet, Wi-Fi y Bluetooth ronda los 1200mA. De ahí, que en teoría con las fuentes de siempre de 2500mA, o 2.5A a 5V de tensión deben servir. Pero cualquier variación que haga bajar a menos de los temidos 4.65V hará que el rendimiento se desplome. Así que los 3A que piden, son solo una salvaguarda. Se trata de que haya potencia de sobra aún sabiendo que no podrán ser consumidos por la Raspberry Pi 3.
Así que ya sabéis: una buena fuente de al menos 2,5A y no conectéis muchas cosas por USB. Si no, vais a tener una Raspberry Pi 3 andando con el freno puesto.
Lo malo de todo esto viene de todas las placas que han copiado este tipo de alimentación por micro USB. Pero sin la magia de detectar el bajo voltaje y bajar la velocidad para mantener todo funcionando como sea.
Os pongo enlaces a los 2 cargadores más vendidos y el AUKEY que yo uso:
Otra opción es un kit con cargador, caja y disipadores por un poco más:
Aukru Transparente Caja + Micro USB 5V 3000mA Cargador + disipador de calor para Raspberry Pi 3 Modelo B
Veremos cómo se soluciona esto definitivamente, si con una Raspberry Pi 3X que consuma menos o con una Raspberry Pi 4 que lleve un conector USB-C que maneja 3A sin problemas.
Más información en:
- los comentarios de este post en el blog CNX Software
- en la web de MAXIM fabricante de circuitos de alimentación y carga de baterías:
- y la web de la organización creadora del estándar USB
La foto de la cabecera pertenece a Jakub Jankiewicz y la podéis ver en su flickr.