Mi respuesta es el resultado de otra respuesta y algunas aclaraciones hechas por mí en los comentarios:
Como dijo Roker Pivic, una buena estructura de sobretensión se vería así:
simular este circuito : esquema creado usando CircuitLab
También he incluido un pullup, que fue solicitado por el OP para que la comunicación de un solo cable funcione. Hubo cierta confusión acerca de esta estructura, así que echémosle un vistazo en todos los casos de uso.
- La conexión externa es de 5 V: la MCU verá 5 V en su pin de entrada. Técnicamente, dado que la impedancia de entrada de la MCU no es infinita, habrá una caída de voltaje diminuta en R1. No hay problema.
- La conexión externa es 0V: R2 y R1 crean un divisor de voltaje. El voltaje resultante visto por la MCU es \ $ 5V * (\ frac {R2} {R2 + R1}) = 50mV \ $. 50 mV es bastante bajo para ser visto como un '0' por la MCU. Si no es así, lance un gatillo Schmidt entre el circuito de protección y el pin de entrada.
-
La conexión externa es > 5V: Aquí es donde comienza la diversión. A medida que la tensión aplicada al circuito de protección aumenta por encima de 5 V, D2 comienza a polarizarse hacia delante. Si no tuviéramos R1, es probable que D2 se queme. Esto se debe a que el voltaje directo se mantendrá en aproximadamente 0.7 voltios, pero ese exceso de energía tendría que ser disipado de alguna manera. Eso es lo que R1 hace por nosotros; disipa el exceso de potencia limitando la corriente de entrada al circuito de protección. Así que ahora, podemos resolver hacia atrás desde el nodo de 5V para averiguar cuál sería el voltaje visto por el pin MCU - como máximo - 5.7V. ¿Qué pasa con la corriente? Bueno, dado que el nodo de entrada de la MCU es 5.7, y la entrada al circuito es de 12 voltios, la corriente a través de R1 viene dada por:
\ $ I_ {R1} = \ frac {12 - (5V + 0.7V)} {100 \ Omega} = 63mA \ $
-
La conexión externa es < < 0V: Esto fijará la tensión en el pin MCU a alrededor de -0.7V, de manera similar a la fijación positiva.
Vale la pena señalar que la estructura de E / S de la MCU es muy similar a los diodos que hemos utilizado aquí. La diferencia es que los diodos discretos pueden manejar el flujo de corriente sostenido, a diferencia de los diodos de protección en la MCU. Dado que la corriente de entrada es limitada, los diodos de tamaño suficiente deben poder soportar la alta tensión aplicada al circuito por tiempo indefinido.
Aquí hay una simulación de este circuito. La resistencia de 1 Mohm representa mi estimación de la impedancia de entrada de la MCU.