Protegiendo líneas de 3.3V I2C

6

La Raspberry Pi tiene 3.3V I2C bus sin ninguna protección contra sobretensiones. Por lo tanto, quiero agregar protección contra un nivel accidental de 5V en el bus. ¿Cómo hacerlo?

Mis dos intentos:

simular este circuito : esquema creado usando CircuitLab

¿Está bien, qué es mejor, qué hay otras soluciones? ¿Las resistencias en serie (R1, R9) constituyen un problema para la comunicación I2C? ¿Cuál es el valor recomendado para ello?

Nota. Necesito no un convertidor de nivel. Supongo que todos los esclavos I2C tienen niveles de 3.3V. 5V tal vez en el autobús solo por accidente.

    
pregunta

2 respuestas

3

Me gusta más tu primer enfoque, pero puedes perder R1. Ya existe una especificación de corriente de extracción máxima para IIC, por lo que D1 solo necesita poder manejarlo. Si algo en el exterior tiene un pullup a 5V, el diodo todavía sujetará el voltaje muy bien con una corriente bien delimitada.

    
respondido por el Olin Lathrop
1

Las resistencias de la serie pequeña generalmente no son dañinas siempre y cuando no ralenticen los bordes de los pulsos tanto que la velocidad se convierta en un problema (es decir, las resistencias grandes pueden impedir el funcionamiento de 400 kHz). He visto valores entre 4.7 y 10 ohmios diseñados en unidades con esclavos de 100 kHz y 400 kHz sin problemas.

Los diodos de sujeción en las líneas generalmente están bien, ya que las extracciones en el bus están limitadas actualmente, y los eventos ESD tienen energía limitada. Un cortocircuito duro en un riel de potencia rígido aún puede quemar cualquier diodo que no tenga una resistencia en serie para limitar la corriente (y también podría hacer que caiga la corriente hacia abajo), pero no puede protegerse contra todas las posibles anomalías.

La combinación de la resistencia de la serie pequeña y los diodos de sujeción le proporciona una solución no invasiva bastante robusta.

    
respondido por el Adam Lawrence

Lea otras preguntas en las etiquetas