Fallo de protección contra sobretensión I²C

Tengo un conector pogo con +8.4 V/GND/SDA/SCL. Me gustaría proteger mi microcontrolador de sobrevoltaje (+8.4 V podría potencialmente tocar SDA/SCL). Probé este circuito:

Ingrese la descripción de la imagen aquí

Pero la cuestión es que solo hay 2,4 V en el pin I²C con este circuito, mientras que 3,3 V sin él. El circuito funciona muy bien, pero 2,4 V para un nivel alto está fuera de las especificaciones del esp32-pico-d4 que estoy usando (mínimo de 2,475 V). ¿Cómo puedo modificar el diseño/los componentes para tener casi 3,3 V en el pin GPIO (cuando está alto) y una sujeción de voltaje precisa?

Revisé muchas preguntas sobre la protección contra sobretensiones en Stack Exchange, pero no encontré una solución a mi problema.

Tenga cuidado con el tiempo de conmutación (y la capacitancia) del diodo. "No debería" importar demasiado para I2C (es relativamente lento), pero vale la pena señalarlo en general.

Respuestas (6)

¿Cómo puedo modificar el diseño/los componentes para tener casi 3,3 V en el pin GPIO (cuando está alto) y una sujeción precisa del voltaje?

Los diodos Zener no son tan perfectos como probablemente podría pensar. Incluso por debajo del voltaje zener, seguirán conduciendo algo de corriente y, debido a la resistencia pull-up (4,7 kΩ), no permitirán que aparezcan los 3,3 voltios completos en su pin I2C. Es posible que le vaya mejor si, en lugar de un diodo zener, usa un diodo Schottky del pin I2C a su riel local de 3.3 voltios, es decir, a través de su resistencia 4k7: -

ingrese la descripción de la imagen aquí

Esto restringirá el voltaje I2C a aproximadamente 3,6 voltios o tal vez 3,7 voltios al devolver el exceso de corriente inyectado a través de la resistencia de 330 Ω al riel de alimentación. Esto se basa en la capacidad de la mayoría de los chips para soportar un voltaje ligeramente más alto en sus pines IO que en los pines del riel de suministro. Es una práctica común, pero solo funcionará si su chip de interfaz I2C tiene esta capacidad de "exceso".

Muchas gracias por tu respuesta. Probaré este circuito tan pronto como reciba algunos diodos Schottky. Sospechaba que mi diodo zener tenía fugas de corriente, pero no estaba seguro. Leí en todas partes que no son ideales, pero quería probar un circuito simple para sentir cómo funciona la protección contra sobretensiones y sus límites. Sobre la capacidad de mi placa (Tinypico con esp32) para soportar un voltaje ligeramente más alto en I2C, lo comprobaré. ¡Muchas gracias por el diagrama!
@AyubowanPro, realice el recorrido de 2 minutos para comprender la motivación detrás de la gente que brinda ayuda gratuita.
Poner un diodo zener entre +3.3V y GND brindaría una protección adicional. De lo contrario, esto depende de algo más en el circuito para hundir la corriente de pinza de 15 mA.
@jpa Me alegra que haya mencionado eso y, si el OP proporcionó más información sobre la amenaza y su régimen de suministro de energía interno, me esforzaré por aclarar ese punto más.
Con el diseño de tu circuito, ¿es mejor conectar el schottky y la resistencia de 4,7k a un LDO de 3.3V (tengo uno en el PCB que estoy diseñando) o al regulador interno de 3.3V de mi placa (Tinypico)?
@AyubowanPro para responder que necesito saber sobre la amenaza (los +8.4 voltios que menciona) y cuánto tiempo podría estar presente, es decir, es un evento de sobretensión o algo que potencialmente estará presente cuatro segundos, minutos u horas. Luego, necesitaré saber cuánta capacitancia tiene en el riel de 3.3 voltios a tierra y qué tipo de reguladores está considerando opcionalmente. Además, me pregunto por qué usaría un regulador LDO exclusivamente para esto; no parece una idea factible.
En el conector, el pin +8.4V puede entrar en contacto con el pin SDA/SCL durante segundos (<5s). No es corriente transitoria/ESD. Desafortunadamente, actualmente no tengo la herramienta para medir la capacitancia. Lo siento, me confundo porque intento proteger las líneas SDA/SCL en 2 circuitos diferentes. Entonces, en el que estoy trabajando actualmente, no es un LDO sino un módulo completo (reductor) de Pololu (D24V10F3).
Toda la información es necesaria.

Los diodos Zener por debajo de aproximadamente 5v son realmente terribles y pasan una corriente significativa por debajo de su voltaje zener.

Este gráfico para un diodo zener pequeño típico ( BZX84 ) muestra qué tan suave es el voltaje de "rodilla" para los diodos zener de bajo voltaje en comparación con los voltajes más altos. El dispositivo de 6,8 V tiene un encendido bastante brusco, mientras que la versión de 3,3 V apenas tiene "rodilla".

(Tenga en cuenta que el gráfico usa una escala logarítmica para el eje y que expande las características de baja corriente).

El diodo de 3.3V en este gráfico pasa alrededor de 100uA @ 2.4v

Los diodos Zener por encima de aproximadamente 6 V funcionan mediante un mecanismo diferente llamado efecto avalancha y exhiben una operación mucho más cercana a la ideal. Personalmente, nunca uso diodos zener por debajo de 5-6v.

Otra característica indeseable de los diodos zener de bajo voltaje es su capacitancia muy alta: el dispositivo BZX84 3.3v tiene 450pF de capacitancia. Este alto nivel puede afectar gravemente a circuitos como la protección I2C. Otros enfoques que utilizan un diodo schottky en un suministro tienen una capacitancia mucho menor.

ingrese la descripción de la imagen aquí Hoja de datos BZX84

Muchas gracias por el gráfico. No sabía que los diodos zener de bajo voltaje nominal dejan pasar demasiada corriente en la dirección no deseada. Muy interesante ! Usaré su consejo de no usar zener por debajo de 5V. Además, entiendo por qué veo que muchas personas los usan a 5 V y más y no tanto a 3.3 V jajaja

Tiene un suministro de 3,3 V y un diodo Zener de 3,3 V, con una resistencia entre ellos.

Por lo tanto, el voltaje a través de la resistencia sería de 0 V y no puede fluir corriente. Por lo tanto, no puede funcionar como pretendía porque las partes no funcionan como imagina.

Existe una idea errónea de los diodos Zener como 'caídas de voltaje mágicas'. En realidad, son una pieza lineal con un conjunto de características, especificadas en su ficha técnica. Debe diseñarse para el comportamiento real del Zener, no para la caída de voltaje imaginaria.

Entonces necesitas un circuito completamente diferente.

Tienes razón. Lucho por simular en mi mente el circuito. Es difícil para mí saber cuál es el voltaje en cada cable y por dónde fluye la corriente. Estaba al tanto de las características no ideales del diodo zener, pero todavía tengo dificultades para aplicarlas en la realidad.

¿Qué tal un cambiador de nivel bidireccional con niveles iguales?

Esta configuración se usa para diferentes voltajes en un bus i2c, pero creo que también debería funcionar para 3v3 a 3v3 (pero no lo he probado). El mosfet debería poder soportar 8v4 en el lado del conector y seguir la señal de lo contrario.

https://assets.nexperia.com/documents/application-note/AN10441.pdf

esquemático

simular este circuito : esquema creado con CircuitLab

Circuito muy interesante aquí. Gracias ! Si otros miembros dicen que funcionará, lo intentaré.

Aquí hay un enfoque (terrible):

ingrese la descripción de la imagen aquí

Es esencialmente un diodo ideal conectado desde la salida a 3.3v, y una resistencia de entrada para que no absorba una corriente "infinita".

Principales problemas con este enfoque:

  1. Requiere un par de transistores emparejados para el espejo actual. (Puede obtener paquetes duales con 2 transistores combinados).
  2. Requiere una buena cantidad de componentes.
  3. Aunque esto funciona a bajas frecuencias, la respuesta transitoria es terrible. Puede mitigar esto agregando una abrazadera de diodo (Schottky) en paralelo con el FET, pero esto no elimina los transitorios, solo reduce su longitud.
  4. Como el FET tiene una resistencia finita, la salida aumenta con voltajes altos, pero lentamente. Puede mitigar esto aumentando la resistencia, pero:
  5. Su impedancia de salida es terrible (3.3k, en este ejemplo). Esto se convierte principalmente en un problema a frecuencias más altas. Puede mitigar esto disminuyendo la resistencia, pero vea 3 y 5.
  6. A voltajes altos, comienza a disipar una buena cantidad de energía a través de la resistencia. Puede mitigar esto aumentando la resistencia, pero vea 4.
  7. Tiene un poco de carga en la salida, lo que ralentiza/distorsiona aún más las señales.

(Por supuesto, puede hacer esencialmente exactamente lo mismo con un amplificador operacional, aunque tenga cuidado con el ancho de banda).

(También puede hacer algo similar con un diodo ideal, aunque, nuevamente, tenga cuidado con el ancho de banda).

... dicho todo eso, solo use un aislador. Es mas fácil. (A menos que esté haciendo esto en volumen, en cuyo caso no es la opción más barata).

Gracias por tu diseño. Trataré de entenderlo con sus limitaciones.

2,4 V para un nivel alto es demasiado bajo en mi opinión

¿Por qué importa aquí tu opinión? La única "opinión" que importa es la hoja de datos del dispositivo al que se está conectando. Nada más es importante.

Como referencia rápida, tomé la hoja de datos del microcontrolador TI OMAP-L138 con el que estoy trabajando actualmente. Para un suministro de 3,3 V, la lógica alta en las entradas es de 2,0 V como mínimo y la lógica baja es de 0,8 V como máximo. Su entrada con 2.4V para lógica alta sería sólida y confiable.

Dicho esto, es posible que su circuito no proporcione 2.4 V de manera confiable, porque los Zener no son un componente brillantemente lineal. Debería observar sus curvas con tolerancias y a diferentes temperaturas para estar seguro de si 2.4V es el mejor o el peor de los casos.

También agregaría que su circuito de protección también debe cubrir la entrada por debajo de 0V. Puede pensar que esto no podría suceder, pero si se encuentra en algún tipo de entorno industrial, no es una suposición segura.

Las opiniones y la experiencia de las personas son intrínsecas a la mayoría de las decisiones, de forma deliberada o no. Eso es natural. Todos sus cuatro párrafos citan su opinión o interpretación.
En el esp32-pico-d4, los requisitos de alto nivel son: VDD + 0,3 V máx. y 0,75 * VDD mín. En mi caso, VDD es igual a 3.3V. Por lo tanto, el nivel alto debe ser de 2,475 V mínimo, por lo que 2,4 V está fuera de especificación.
@TonyM Me temo que ninguna de sus afirmaciones es correcta. Los niveles de voltaje requeridos para entradas de nivel lógico alto/bajo no están sujetos a opinión o interpretación. Di un ejemplo al que tuve acceso; como dije, el OP necesita verificar la hoja de datos de su dispositivo. La experiencia puede ayudar a agregar tolerancias adicionales que pueden no aparecer en la hoja de datos (por ejemplo, EMC), pero esto tampoco es una "opinión".
@AyubowanPro Bastante justo. Podría mejorar su pregunta diciendo cuáles son sus umbrales reales entonces, porque esa es una especificación, no una "opinión". :)
Lo siento, no coincido con las palabras. (pg1) opinión pura (pg2) usó TI OMAP-L138 porque pensó que coincidiría pero no lo hace (pg3) "el circuito no puede dar" (pg4) opinión especulativa. Desafortunadamente, sus comentarios dicen que no se moverá, pero el primero (pág. 1) prepara el resto para una caída. Sin eso y adivinando (pg2), tendrías una respuesta razonable. De todos modos, no pasa nada, te dejo.