Por que os pinos Pi GPIO usam / fornecem 3.3V e não 5V?

26

Eu sei há muito tempo que as pessoas NÃO devem colocar mais de 3,3V nos pinos do GPIO. Eles também fornecem 3.3V quando altos.

Eu fiz algumas pesquisas e parece que ninguém realmente se incomodou em perguntar. Quase todos eles falam sobre a corrente máxima.

Se estou fornecendo ao Pi 5V, por que os pinos GPIO não são tolerantes a 5V?

Os pinos do Arduino seguem mais ou menos a tensão de entrada (ou V CC ). Se for um modelo de 5V, os pinos usam 5V. Se é um modelo de 3.3V, ele usa 3.3V. Qualquer coisa acima disso iria fritar mais ou menos.

Eu provavelmente deveria perguntar à Broadcom sobre isso.

PNDA
fonte
Como joan aponta, a declaração "pinos do Arduino mais ou menos seguem as tensões de entrada" é falsa. As tensões de entrada do Arduino são variáveis ​​e os pinos regulados. Para um modelo de 5V, você precisa usar pelo menos uma entrada de 5V para o funcionamento correto. Também vale a pena notar que um MC! = Um SoC, embora haja semelhanças e o último termo seja meio ambíguo / conceitual.
goldilocks
@goldilocks Esclarecido. Eu quis dizer VCC.
PNDA
2
"Se estou fornecendo 5V ao Pi, por que os pinos GPIO não são tolerantes a 5V?" - Pelo mesmo motivo, o Arduino GPIO não é tolerante a 12V, mesmo quando você alimenta a placa com 12V.
JimmyB 2/16/16
11
Eu acho que o título e o conteúdo eram muito amigáveis ​​com o SEO.
PNDA

Respostas:

30

Os chips ATMega especificam Operating Voltage: ̶ 1.8 - 5.5V. Se você ler mais fundo, a velocidade de operação depende da tensão. Eles funcionam a 3,3V, mas você precisa limitar a velocidade do relógio. A Arduinoequipe presumivelmente escolheu 5V por causa da disponibilidade de sistemas que utilizam este (um legado de TTL).

O SOC usado no Pi funciona em 3.3V (e também requer algumas tensões mais baixas). São ordens de magnitude mais complexas que o ATMega e operam em velocidades consideravelmente mais altas (~ 1GHz vs 16MHz). Como a maioria dos sistemas complexos, operando em baixa tensão, permite maior velocidade de operação com menor consumo de energia (e, portanto, calor).

Eu suspeito que a parte do processador e a GPU sejam executadas na fonte de 1,8V e 1,2V e a 3,3V é para os periféricos. O cartão SD também funciona em 3.3V.

O Pi (especialmente os modelos posteriores) possui conversores de potência complexos que fornecem as muitas tensões necessárias em altas correntes. O 5V é necessário porque esse é o padrão USB (e a disponibilidade imediata de fontes de alimentação adequadas).

Milliways
fonte
19
Por que não seria uma pergunta real?
loneboat
Arduino V (entrada de baixa) é 0 - v1.8 um V (entrada de alta) é 3v - 5v
wajatimur
11
@loneboat Estou do seu lado.
PNDA
5
@ PandaLion98 A resposta real é porque é assim que o sistema é projetado. Depois, expliquei por que ele foi projetado dessa maneira. Isso foi em relação a "Eu fiz algumas pesquisas e parece que ninguém realmente se incomodou em perguntar" - ninguém mais pergunta porque é óbvio. De fato, como expliquei em outros posts, colocar 5V em um pino GPIO provavelmente não causará danos (não que eu recomende isso), desde que a corrente seja limitada - o que, é claro, reduz a tensão.
Milliways
11

A resposta curta é "Porque é assim que ela é projetada".

Uma resposta um pouco mais longa é "Eles não o tornaram tolerante a 5V porque seria caro". Ninguém mais produz periféricos de 5V em massa (incluindo USB, que possui linhas de dados de 3,3V). Fazer pinos IO tolerantes a 5V tornaria o chip mais caro e provavelmente um pouco mais lento, além de agregar valor próximo a zero.

Você precisa entender que o RPi não é um aplicativo típico para chips Broadcom, portanto, os chips são otimizados para 99% dos casos de uso. Gastar US $ 2 para tornar todos os pinos tolerantes a 5V faz sentido para o RPi, mas esses US $ 2 são um preço proibitivamente alto quando você considera os 99% restantes.

Dmitry Grigoryev
fonte
0

O Pi não segue exatamente o mesmo padrão?

Todos os Pis atuais são modelos 3V3, portanto, ele usa 3V3 GPIO.

A tensão de entrada do Pi é ajustada em 5V fixo.

O Arduino permite uma faixa de tensões de entrada, de 3,3V a 12V, tipicamente para os modelos 3V3, de 6V a 20V, tipicamente para os modelos de 5V.

joan
fonte
11
A tensão de entrada do Pi é ajustada em 5V fixo. deriva dos periféricos USB. O SoC do Pi usa 3V3 através do regulador de tensão.
Ghanima
11
@Ghanima ... e os requisitos de HDMI. Nenhum dos quais se aplica a um Arduino. O SOC do Pi usa 3V3, 2V5 e 1V8.
10138 joan Jan
11
Você está certo. Embora as tensões mais baixas sejam geradas no chip.
Ghanima
-1

O raspberry pi possui 2 pinos 3v3 constantes que estão sempre ativados , 2 pinos constantes de 5 volts , muitos pinos gpio 3v3 e 5 pinos de aterramento. As versões mais recentes têm tudo isso, mas com mais 3 GND (pinos de aterramento) e ainda mais pinos de gpio.

Tacocat 4642
fonte
4
Isso realmente não está abordando a questão.
Ghanima
-2

3,3 volts são os níveis lógicos CMOS (mais recentes) e 5 volts é o padrão ttl mais antigo.

Terry Barber
fonte
5
Isso simplesmente não é verdade. As tensões no nível lógico não correspondem estritamente à tecnologia do circuito. De fato, os dispositivos baseados em CMOS operam em diferentes níveis de tensão, incluindo 5V, 3V3 e tensões mais baixas. Exemplo: enquanto os Arduinos vêm com níveis lógicos de 5V, eles não são TTL, mas CMOS (por exemplo, os ATMegas são CMOS), veja também aqui
Ghanima
3
A famosa família 4000 CMOS funciona entre qualquer coisa entre 3 e 15 V. Veja as especificações , página 2.
Dmitry Grigoryev
Quase verdadeiro, mas um pouco diferente, o nível de lógica é baseado no projeto de fabricação de portas, CMOS ou TTL. O nível lógico do Arduino é um pouco diferente do CMOS e TTL padrão.
wajatimur
@wajatimur Não existe "padrão de nível lógico para CMOS".
Dmitry Grigoryev
@DmitryGrigoryev A especificação CMOS geralmente usada pode ser mais precisa.
wajatimur