¿Realmente necesito una palanca de cambio de nivel si uso dispositivos alimentados por 5V en un bus I2C que tiene pull-ups a 3.3V? Según tengo entendido, los dispositivos solo tirarán de las líneas (SDA, SCL) hacia abajo (a tierra) y nunca conducirán su voltaje de suministro al bus. Por lo tanto, no veo una razón para un cambio de nivel siempre que todos los dispositivos detecten el voltaje de los pull-ups (3.3V) como lógicamente alto. Ese debería ser el caso con dispositivos que usan 5V como suministro.
En mi caso, tengo un IC cuyas entradas no son tolerantes a 5V como maestro y podría alimentar a mis esclavos con 3.3V, pero usar 5V es más fácil en mi circuito y permite velocidades de reloj (internas) más altas para los esclavos.
voltage
i2c
level-shifting
Jannis
fuente
fuente
Respuestas:
De acuerdo con la versión 4 de la especificaciónyo2C ,
Más profundo en la especificación, verá que esta es el alto voltaje lógico mínimo :0.7 × VD D
Para su sistema de 5V:
Para mí, el pull-up de 3.3 V parece marginal, especialmente si alguno de sus dispositivos de 5V usa el 'nuevo' estándar de para la lógica ALTA.0.7×VDD
Su kilometraje puede variar, pero siempre es mejor estar dentro de las especificaciones siempre que sea posible ...
fuente
La respuesta de Cees es incorrecta, en particular el "siempre" y "cualquiera". Las E / S del microcontrolador pueden necesitar 0.6 Vdd como mínimo para un nivel alto, otras tienen un mínimo de 0.7 Vdd, y como Madmanguruman indica que este es el estándar para I2C. 0.7 Vdd es 3.5 V con un suministro de 5 V, por lo que 3.3 V ya es demasiado bajo.
Pero es aún peor. Los reguladores de voltaje a menudo tienen una tolerancia del 5% en su voltaje de salida nominal, por lo que en el peor de los casos, 5 V puede ser 5.25 V, y luego 0.7 Vdd se convierte en 3.675 V. Entrada mínima para un nivel alto. Si 3.3 V tiene una tolerancia negativa del 5%, entonces 3.3 V se convierte en 3.135 V. Por lo tanto, teniendo en cuenta las tolerancias, la entrada puede ser medio voltio demasiado baja, o 15%.
Entonces,
Es una conclusión inoportuna. Siempre revise las hojas de datos y haga el cálculo.
fuente
Siento que las otras respuestas realmente no respondieron la pregunta de Jannis. Preguntó sobre el uso de dispositivos de 5V en un bus de 3.3V (presumiblemente 3.3V MCU). Estoy de acuerdo en que tener los pull-ups vinculados a 3.3V estará bien, por ejemplo, seguro para el dispositivo maestro, ya que los pines SDA / SCL solo se desplegarán, como mencionó. Tenga en cuenta que los esclavos y el maestro necesitarán compartir un terreno común (equipotencial de pines Vss) para proteger la MCU de sobretensión, pero este probablemente sea el caso de todos modos. Entonces, el método de Jannis debería funcionar, sin un cambio de nivel.
fuente