Perché i pin Pi GPIO utilizzano / forniscono 3,3 V e non 5 V?


26

So da molto tempo che le persone NON dovrebbero mettere più di 3,3 V sui pin GPIO. Danno anche 3,3 V quando sono alti.

Ho fatto qualche ricerca e sembra che nessuno si sia davvero preoccupato di chiedere. Quasi tutti parlano della massima corrente.

Se sto fornendo il Pi con 5 V, perché i pin GPIO non tollerano 5 V?

I pin Arduino seguono più o meno la tensione di ingresso (o V CC ). Se è un modello a 5 V, i pin utilizzano 5 V. Se è un modello da 3,3 V, utilizza 3,3 V. Qualcosa al di sopra di questi lo friggerebbe più o meno.

Probabilmente dovrei chiedere a Broadcom di questo.


Come sottolinea Joan, l'affermazione "I pin Arduino più o meno seguono le tensioni di ingresso" è falsa. Le tensioni di ingresso di Arduino sono variabili e i pin regolati. Per un modello a 5 V è necessario utilizzare un ingresso di almeno 5 V per il corretto funzionamento. Vale anche la pena notare che un MC! = Un SoC, anche se ci sono somiglianze e quest'ultimo termine è una specie di ambiguo / concettuale.
riccioli d'oro

@goldilocks Chiarito. Intendevo VCC.
PNDA,

2
"Se sto fornendo il Pi con 5 V, perché i pin GPIO non tollerano 5 V?" - Per lo stesso motivo, Arduino GPIO non è tollerabile a 12V anche quando si alimenta la scheda a 12V.
JimmyB,

1
Penso che il titolo e il contenuto siano troppo SEO friendly.
PNDA

Risposte:


30

I chip ATMega specificano Operating Voltage: ̶ 1.8 - 5.5V. Se leggi più a fondo, la velocità operativa dipende dalla tensione. Funzionano a 3.3V ma devi limitare la velocità di clock. Il Arduinoteam presumibilmente ha scelto 5V a causa della pronta disponibilità di sistemi che lo utilizzano (un retaggio di TTL).

Il SOC utilizzato su Pi funziona a 3.3V (e richiede anche un paio di tensioni più basse). Questi ordini di grandezza sono più complessi di ATMega e funzionano a velocità considerevolmente più elevate (~ 1GHz contro 16MHz). Come la maggior parte dei sistemi complessi che funzionano a bassa tensione, consente un funzionamento a velocità più elevata con un consumo di energia inferiore (e quindi calore).

Sospetto che la parte del processore e la GPU funzionino con alimentazione a 1,8 V e 1,2 V e che 3,3 V sia per le periferiche. La scheda SD funziona anche a 3,3 V.

I Pi (specialmente i modelli successivi) hanno convertitori di potenza complessi che forniscono le molte tensioni necessarie ad alte correnti. Il 5V è necessario perché questo è lo standard USB (e la pronta disponibilità di alimentatori adeguati).


19
Perché non sarebbe una vera domanda?
Loneboat,

Arduino V (input-low) è 0 - v1.8 e V (input-high) è 3v - 5v
wajatimur

1
@loneboat Sono dalla tua parte.
PNDA,

5
@ PandaLion98 La vera risposta è perché è così che viene progettato il sistema. Ho quindi continuato a spiegare perché è stato progettato in questo modo. Questo era in relazione a "Ho fatto qualche ricerca e sembra che nessuno si sia davvero preoccupato di chiedere" - nessun altro chiede perché è ovvio. In effetti, come ho spiegato in altri post, è improbabile che causare 5 V su un pin GPIO (non che lo raccomando), a condizione che la corrente sia limitata, il che ovviamente riduce la tensione.
Milliways,

11

La risposta breve è "Perché è così che è progettata".

Una risposta un po 'più lunga è "Non lo hanno reso tollerante ai 5V perché sarebbe costoso". Nessuno produce più in serie periferiche da 5 V (incluso USB, che ha linee dati da 3,3 V). Rendere i pin IO tolleranti a 5 V renderebbe il chip più costoso e probabilmente un po 'più lento, aggiungendo un valore vicino allo zero.

Devi capire che RPi non è un'applicazione tipica per i chip Broadcom, quindi i chip sono ottimizzati per il 99% dei casi d'uso. Spendere $ 2 per rendere tutti i pin tolleranti a 5V ha senso per RPi, ma quei $ 2 sono un prezzo proibitivamente alto se si considera il restante 99%.


0

Il Pi non segue esattamente lo stesso schema?

Tutti gli attuali Pis sono modelli 3V3, quindi utilizza 3V3 GPIO.

La tensione di ingresso del Pi è impostata a 5 V fissi.

Gli Arduino consentono una gamma di tensioni di ingresso, da 3,3 V a 12 V in genere per i modelli 3 V3, da 6 V a 20 V in genere per i modelli 5 V.


1
La tensione di ingresso del Pi è impostata a 5 V fissi. deriva dalle periferiche USB. Lo stesso SoC Pi utilizza 3V3 tramite il regolatore di tensione.
Ghanima

1
@Ghanima ... e i requisiti di HDMI. Nessuno dei due si applica a un Arduino. Il SOC di Pi utilizza 3V3, 2V5 e 1V8.
Giovanna,

1
Hai ragione. Sebbene le tensioni più basse siano generate su chip.
Ghanima

-1

Il raspberry pi ha 2 pin 3v3 costanti sempre attivi , 2 pin 5 volt costanti , molti pin gpio 3v3 e 5 pin di massa. Le versioni più recenti hanno tutto questo, ma con 3 più GND (pin di terra) e ancora più pin gpio.


4
Questo non sta davvero affrontando la domanda.
Ghanima

-2

3,3 volt sono i livelli logici cmos (più recenti) e 5 volt è lo standard ttl più vecchio.


5
Questo semplicemente non è vero. Le tensioni di livello logico non corrispondono strettamente alla tecnologia dei circuiti. In effetti i dispositivi basati su CMOS funzionano a diversi livelli di tensione, tra cui 5 V, 3 V 3 e tensioni inferiori. Esempio: mentre gli Arduinos hanno livelli logici a 5 V non sono TTL ma CMOS (ad esempio gli ATMegas sono CMOS), vedi anche qui
Ghanima

3
La famosa famiglia 4000 CMOS parte da qualsiasi cosa tra 3 e 15 V. Vedi le specifiche , pagina 2.
Dmitry Grigoryev

Quasi vero ma leggermente diverso, il livello logico si basa sul design di fabbricazione di gate CMOS o TTL. Il livello logico di Arduino è leggermente diverso da CMOS e TTL standard.
Wajatimur,

@wajatimur Non esiste "Standard di livello logico CMOS".
Dmitry Grigoryev

@DmitryGrigoryev Le specifiche CMOS generalmente utilizzate potrebbero essere più accurate.
Wajatimur,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.