¿Por qué los pines Pi GPIO usan / dan 3.3V y no 5V?

26

Sé desde hace mucho tiempo que las personas NO deben poner más de 3.3V en los pines GPIO. También dan 3.3V cuando están altos.

Investigué un poco y parece que nadie se molestó en preguntar. Casi todos hablan de la corriente máxima.

Si estoy suministrando al Pi 5V, ¿por qué los pines GPIO no son tolerantes a 5V?

Los pines Arduino siguen más o menos el voltaje de entrada (o V CC ). Si es un modelo de 5V, los pines usan 5V. Si es un modelo de 3.3V, usa 3.3V. Cualquier cosa por encima de eso lo freiría más o menos.

Probablemente debería preguntarle a Broadcom sobre esto.

PNDA
fuente
Como Joan señala, la afirmación "Los pines Arduino siguen más o menos los voltajes de entrada" es falsa. Los voltajes de entrada de Arduino son variables y los pines regulados. Para un modelo de 5 V, debe utilizar al menos una entrada de 5 V para un funcionamiento correcto. También vale la pena señalar que un MC! = Un SoC, aunque hay similitudes y el último término es algo ambiguo / conceptual.
Ricitos de oro
@goldilocks Aclarado. Me refería a VCC.
PNDA
2
"Si estoy suministrando al Pi 5V, ¿por qué los pines GPIO no son tolerantes a 5V?" - Por la misma razón, el Arduino GPIO no es tolerante a 12V incluso cuando enciende la placa con 12V.
JimmyB
1
Creo que el título y el contenido eran demasiado amigables para SEO.
PNDA

Respuestas:

30

Los chips ATMega especifican Operating Voltage: ̶ 1.8 - 5.5V. Si lee más profundo, la velocidad de operación depende del voltaje. Funcionan a 3.3V pero hay que limitar la velocidad del reloj. El Arduinoequipo presumiblemente eligió 5V debido a la disponibilidad inmediata de los sistemas que usan esto (un legado de TTL).

El SOC utilizado en Pi funciona con 3.3V (y también requiere un par de voltajes más bajos). Estos son órdenes de magnitud más complejos que el ATMega y funcionan a velocidades considerablemente más altas (~ 1GHz frente a 16MHz). Como la mayoría de los sistemas complejos que funcionan con un voltaje más bajo, permite una operación de mayor velocidad con un menor consumo de energía (y, por lo tanto, calor).

Sospecho que la parte del procesador y la GPU funcionan con el suministro de 1.8V y 1.2V y el 3.3V es para los periféricos. La tarjeta SD también funciona a 3.3V.

Los Pi (especialmente los modelos posteriores) tienen convertidores de potencia complejos que suministran los muchos voltajes necesarios a altas corrientes. Se necesitan los 5 V porque este es el estándar USB (y la disponibilidad inmediata de fuentes de alimentación adecuadas).

Milliways
fuente
19
¿Por qué no sería una pregunta real?
bote solitario
Arduino V (entrada baja) es 0 - v1.8 y V (entrada alta) es 3v - 5v
wajatimur
1
@loneboat estoy de tu lado.
PNDA
55
@ PandaLion98 La verdadera respuesta es porque esa es la forma en que está diseñado el sistema. Luego procedí a explicar por qué está diseñado de esa manera. Esto fue en relación con "Investigué un poco y parece que nadie realmente se molestó en preguntar", nadie más pregunta porque es obvio. De hecho, como he explicado en otras publicaciones, poner 5V en un pin GPIO es poco probable que cause daños (no es que lo recomiendo), siempre que la corriente sea limitada, lo que, por supuesto, reduce el voltaje.
Milliways
11

La respuesta corta es "Porque así es como está diseñado".

Una respuesta algo más larga es "No lo hicieron tolerante a 5V porque sería costoso". En realidad, ya nadie produce periféricos de 5V en masa (incluido el USB, que tiene líneas de datos de 3.3V). Hacer pines IO tolerantes a 5V haría que el chip sea más caro, y probablemente un poco más lento, mientras agrega un valor cercano a cero.

Debe comprender que RPi no es una aplicación típica para los chips Broadcom, por lo que los chips están optimizados para el 99% de los casos de uso. Gastar $ 2 para hacer todos los pines tolerantes a 5V tiene sentido para RPi, pero esos $ 2 son un precio prohibitivamente alto si se considera el 99% restante.

Dmitry Grigoryev
fuente
0

¿El Pi no sigue exactamente el mismo patrón?

Todos los Pis actuales son modelos 3V3, por lo que utiliza GPIO 3V3.

El voltaje de entrada del Pi se establece en 5V fijos.

Los Arduino permiten un rango de voltajes de entrada, 3.3V a 12V típicamente para modelos 3V3, 6V a 20V típicamente para modelos 5V.

joan
fuente
1
El voltaje de entrada del Pi se establece en 5V fijos. proviene de los periféricos USB. El SoC del propio Pi utiliza 3V3 a través del regulador de voltaje.
Ghanima
1
@Ghanima ... y los requisitos de HDMI. Ninguno de los cuales se aplica a un Arduino. El SOC de Pi utiliza 3V3, 2V5 y 1V8.
juan
1
Tienes razón. Aunque los voltajes más bajos se generan en chip.
Ghanima
-1

El raspberry pi tiene 2 pines constantes de 3v3 que siempre están encendidos, 2 pines constantes de 5 voltios , muchos pines gpio de 3v3 y 5 pines a tierra. Las versiones más nuevas tienen todo eso, pero con 3 GND más (pines de tierra) e incluso más pines gpio.

Tacocat 4642
fuente
44
Eso realmente no aborda la pregunta.
Ghanima
-2

3.3 voltios son niveles lógicos CMOS (más nuevos) y 5 voltios es el estándar ttl más antiguo.

Terry Barber
fuente
55
Eso simplemente no es cierto. Los voltajes de nivel lógico no corresponden estrictamente a la tecnología de circuito. De hecho, los dispositivos basados ​​en CMOS operan en diferentes niveles de voltaje, incluidos 5V, 3V3 y voltajes más bajos. Ejemplo: mientras que los Arduinos vienen con niveles lógicos de 5V, no son TTL sino CMOS (por ejemplo, los ATMegas son CMOS), vea también aquí
Ghanima
3
La famosa familia 4000 CMOS funciona entre 3 y 15 V. Vea las especificaciones , página 2.
Dmitry Grigoryev
Casi cierto pero ligeramente diferente, el nivel lógico se basa en el diseño de fabricación de puertas CMOS o TTL. El nivel lógico de Arduino es un poco diferente al CMOS y TTL estándar.
wajatimur
@wajatimur No existe el "estándar de nivel lógico CMOS".
Dmitry Grigoryev
@DmitryGrigoryev La especificación CMOS generalmente utilizada podría ser más precisa.
wajatimur