Protección de entrada de sobretensión GPIO

Quiero diseñar un circuito que pueda proteger el GPIO del microcontrolador de los altos voltajes. El GPIO se conecta externamente al interruptor mecánico.

Entonces, mi enfoque fue usar el diodo zener para sujetar los altos voltajes al bajo voltaje aceptable. Mi microcontrolador puede aceptar un máximo de 3.7V en el GPIO.

Entonces, el GPIO que quiero proteger tiene la función de detectar la interrupción del borde descendente . a continuación está mi circuito que he implementado.

implementación zener

En el circuito anterior, D1 es el diodo zener con R10 siendo su resistencia en serie limitadora de corriente. R45 y C36 forman parte del circuito denunciante.

Entonces, la idea es que cuando alguien proporcione un voltaje más alto como 12 V en TP12 y TP13 por error, debería reducirlo a 3,0 V de manera segura.

aquí está la hoja de datos de este enlace de diodo zener

NOTA: R44 fue para limitar la corriente que fluye a través del interruptor externo conectado a TP12 y TP13 siempre que el circuito zener no esté montado (es decir, R10 0 ohm y D1 no ocupado).

La pregunta que tengo es... ¿Es esta la forma correcta de proteger el GPIO? ¿Lo he implementado correctamente? ¿Qué debo hacer para solucionar el siguiente problema?

problemas que estoy enfrentando...

  • El zener tiene una corriente de fuga y es por eso que cuando el zener está en el circuito, consume 0.141 mA a través de 10K y cae 1.4 V a través de 10k, lo que da como resultado 1.9v en el GPIO, quiero que aparezcan 3.3V (VCC del microcontrolador) en el GPIO. ¿Qué debo hacer para arreglar esto?
  • También seleccioné 1K para zener para que no afecte mucho el circuito antirrebote y también limite la corriente a través de zener lo suficiente para que no exceda su límite de potencia.

    límite zener

    pero si miras la imagen de arriba, 5mA es lo que debo permitir a través de zener para obtener 3.0V. ¿Dañaré el zener si paso más corriente?

En lugar de usar un diodo Zener y un montón de resistencias, ¿por qué no usar 2 resistencias y un optoacoplador?
¿Los contactos de su interruptor están conectados a algo más? (Si no, ya tiene aislamiento y no necesita optoaislamiento).

Respuestas (1)

El MM3Z3V0T1G está diseñado para "regularse" a alrededor de 3,3 V cuando se transmiten 5 mA.

3,3 v * 0,005 A = 16,5 mW de disipación típica en reposo. El paquete puede disipar un máximo de 300 mW de potencia. 300mW/3.5v = ~86mA de corriente máxima sostenida.

Para que fluyan 5 mA a través de él, será necesario reducir R45 de 10 kΩ a ~ 0 Ω porque el voltaje de suministro es el mismo que el voltaje de regulación... pero entonces será imposible reducir el pin de entrada.

Pruebe R45 = 220 Ω y R10 = 0 Ω. Esto debería dar >3v a la entrada cuando el interruptor no está activo, y 3,3v/220Ω = 15mA a través del interruptor cuando está cerrado.

La reducción de R45 y R10 anulará drásticamente los efectos de C36 para "rebotar" el interruptor. Aumente C36 o cree un filtro RC separado después del zener.

gracias por tus comentarios Como dijiste, R45 debe reducirse a 0 ohmios para que Zener se regule, absolutamente correcto. pero ese no es el caso aquí, quiero regular el voltaje aplicado a los pines TP12 y TP13. si son más altos, quiero sujetarlos a 3V o 3.3V. En este momento, el problema es que, cuando el interruptor está abierto (TP12 y TP13 abiertos), hay alrededor de 141 uA de corriente de fuga a través del diodo zener que cae alrededor de 1,4 voltios, lo que hace que el voltaje GPIO vaya a 1,9 V en lugar de 3,3 V. Creo que tendré que volver a calcular y cambiar los valores del ckt antirrebote como reducir 45 y aumentar C36.