I2C: dispositivi 3.3V e 5V senza spostamento di livello sul bus 3.3V?


12

ho davvero bisogno di un cambio di livello se uso dispositivi alimentati a 5 V su un bus I2C con pull-up a 3,3 V? Secondo la mia comprensione, i dispositivi abbasseranno solo le linee (SDA, SCL) (verso terra) e non condurranno mai la loro tensione di alimentazione al bus. Quindi non vedo una ragione per un cambio di livello finché tutti i dispositivi rilevano la tensione dai pull-up (3,3 V) come logicamente alta. Questo dovrebbe essere il caso di dispositivi che utilizzano 5V come alimentazione.

Nel mio caso ho un circuito integrato i cui ingressi non sono tolleranti a 5 V come master e potrei alimentare i miei slave con 3,3 V ma l'utilizzo di 5 V è più semplice nel mio circuito e consente frequenze di clock (interne) più elevate per gli slave.


2
Quindi, per riassumere: - Nessun chip è in pericolo quando si utilizzano dispositivi con 5 V come Vdd su un bus I2C utilizzando pull-up a 3,3 V - Potrebbe funzionare o meno, a seconda delle tolleranze, del design del chip interno, ...
Jannis,

2
Corretto - nessun pericolo di danneggiamento, nessuna garanzia di corretto funzionamento.
Adam Lawrence,

Risposte:


15

I2C

"A causa della varietà di diversi dispositivi tecnologici (CMOS, NMOS, bipolare) che possono essere collegati al bus I2C, i livelli di '0' (LOW) e '1' (HIGH) logici non sono fissi e dipendono da il livello associato di VDD. I livelli di riferimento di ingresso sono impostati come 30% e 70% di VDD; VIL è 0,3VDD e VIH è 0,7VDD. Vedere la Figura 38, diagramma di temporizzazione. Alcuni livelli di ingresso del dispositivo legacy sono stati fissati su VIL = 1,5 V e VIH = 3,0 V, ma tutti i nuovi dispositivi richiedono questa specifica del 30% / 70%. Vedere la sezione 6 per le specifiche elettriche. " (pagina 9)

0.7×VDD

estratto da NXP I2C spec rev.  4

Per il tuo sistema a 5 V:

0.7×5V=3.5V

0.3×5V=1.5V

0.7×VDD

Il tuo chilometraggio può variare, ma è sempre meglio essere all'interno delle specifiche ove possibile ...


Grazie per la pulizia stevenvh. Mi sono precipitato ieri.
Adam Lawrence,

11

La risposta di Cees è errata, in particolare "sempre" e "qualsiasi". Gli I / O del microcontrollore potrebbero richiedere 0,6 Vdd come minimo per un livello alto, altri hanno un minimo di 0,7 Vdd e, come Madmanguruman, indica che questo è lo standard per I2C. 0,7 Vdd è 3,5 V con un'alimentazione di 5 V, quindi 3,3 V è già troppo basso.

Ma è anche peggio. I regolatori di tensione hanno spesso una tolleranza del 5% sulla loro tensione di uscita nominale, quindi nel peggiore dei casi 5 V possono essere 5,25 V e quindi 0,7 Vdd diventano 3,675 V. Ingresso minimo per un livello alto. Se 3,3 V ha una tolleranza negativa del 5%, 3,3 V diventano 3,135 V. Quindi, tenendo conto delle tolleranze, l'ingresso potrebbe essere di mezzo volt troppo basso o del 15%.

Così,

Quindi non vedo una ragione per un cambio di livello finché tutti i dispositivi rilevano la tensione dai pull-up (3,3 V) come logicamente alta. Questo dovrebbe essere il caso di dispositivi che utilizzano 5V come alimentazione.

è una conclusione prematura. Controlla sempre i fogli dati ed esegui il calcolo.


-1

Sento che le altre risposte non hanno veramente risposto alla domanda di Jannis. Ha chiesto informazioni sull'utilizzo di dispositivi a 5 V su un bus a 3,3 V (presumibilmente 3.3 V MCU). Concordo sul fatto che avere i pull-up legati a 3.3V andrà bene, ad es. Sicuro per il dispositivo master, poiché i pin SDA / SCL si abbasseranno solo, come ha detto. Attenzione che gli schiavi e il padrone dovranno condividere un terreno comune (equipotenziale con pin Vss) per proteggere l'MCU da sovratensione, ma probabilmente lo sarà comunque. Quindi il metodo di Jannis dovrebbe funzionare, senza un cambio di livello.


2
Benvenuto!! Ho notato che sei un nuovo collaboratore, quindi potresti non aver capito che stai fornendo una risposta a una domanda che ha più di sei anni. Il sistema solleva costantemente vecchie domande in modo che vengano riviste, è necessario tenerlo presente.
Edgar Brown,
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.