Circuito interno de puertos IO en MCU [cerrado]

¿Alguien podría compartir el circuito interno (circuito de nivel de transistor) de la sección GPIO en un microcontrolador?

Tengo curiosidad por ver cómo un pin puede servir como entrada o salida (por supuesto, solo uno a la vez). Entiendo que habrá una configuración de interruptor, ¡me gustaría ver el circuito de nivel FET del interruptor!

¡La mayoría de las hojas de datos de MCU tienen esa información!
Sí, mucha gente puede. También podría hacerlo usted mismo, incluso si se hubiera molestado en abrir la hoja de datos.
Investigación preliminar insuficiente
@MattYoung Insufficient preliminary research¿Por qué es esa una causa para cerrar una pregunta? En ninguna parte, el centro de ayuda dice "no puede preguntar a menos que ya haya buscado y no haya podido encontrar la respuesta" (además, no sabemos si lo ha intentado). He visto varias preguntas más simples que podrían responderse fácilmente con una búsqueda en Google, pero nadie las acusó de tener "Investigación preliminar insuficiente". En esencia, creo que es bastante difícil encontrar una pregunta que no tenga una respuesta ya publicada en algún lugar del internado, por lo que casi todas las preguntas se ajustan a esa razón para cerrarse.
@alexan_e Si quieres que esta pila sea invadida por vampiros de ayuda, entonces, por todos los medios, permite tonterías como esta. No esté de acuerdo todo lo que quiera, siempre votaré para cerrar las preguntas que no muestren absolutamente ningún esfuerzo de investigación.
Investigación preliminar insuficiente
VV Rao, creo que sería útil compartir sus pensamientos. ¿Cuál fue el razonamiento de su pregunta, ha buscado en la hoja de datos del dispositivo que le interesa, no fue suficiente la información que encontró o tuvo problemas para entenderla, está buscando un esquema más detallado que los que se muestran aquí? y en las hojas de datos...?

Respuestas (2)

Bien, aquí hay un diagrama de bloques de un pin de E/S típico de un microcontrolador ( PIC16F616 ) (Figura 4-1 en la hoja de datos).

Los fabricantes no suelen publicar descripciones a nivel de transistores de nada complejo en estos días, pero podemos deconstruir el diagrama de bloques con un poco de esfuerzo.ingrese la descripción de la imagen aquí

Si desea esquemas a nivel de transistor de un flip-flop D, sería algo como esto (tomado de una hoja de datos 74HC74):

ingrese la descripción de la imagen aquí

Donde los bloques TG son puertas de transmisión, similar a CD4016.

ingrese la descripción de la imagen aquí

Inversores y puertas, puede buscar esquemas a nivel de transistor en hojas de datos CMOS de la serie 4000, como el 4002 NOR de 4 entradas.

ingrese la descripción de la imagen aquí

Por supuesto, en un chip de microcontrolador no habría redes de protección ESD en los nodos internos, por lo que esa parte del esquema no estaría presente.

Todo esto es una lógica CMOS bastante estándar. Hay dos cosas que son un poco inusuales. Uno es el transistor de canal P marcado como "débil" en el diagrama de bloques de pines GPIO. Es un transistor "débil" (tiene una geometría física pequeña, por lo que Idss es solo microamperios cuando se enciende). Está ahí para actuar como una fuente de corriente pullup (similar a una resistencia pullup). Como puede ver, solo está encendido cuando se selecciona (la habilitación de pullup débil global /RAPU es verdadera), la entrada no está en modo analógico, el pin está triestablecido (en un PIC esto significa que el pin es una entrada, por lo que no t desperdiciar corriente pullup en una salida) y WPUA (la habilitación pullup débil del pin de puerto individual es verdadera).

Los diodos que se muestran son una representación simplificada de la red de protección de pines GPIO.

La otra cosa crítica es el búfer no inversor que impulsa el pin de E/S. Es un tampón tristate. Cuando se selecciona el pin para que sea una entrada (TRISA es verdadero), la salida del búfer se activa a alta impedancia. El esquema será algo así como esta parte de un MC14503 (menos el inversor de entrada, ya que la entrada es una entrada HABILITAR , no una entrada DESHABILITAR ).

ingrese la descripción de la imagen aquí

Cuando la entrada ENABLE es baja, ambos transistores están apagados y el pin ya no se activa como salida (en un PIC esto ocurre cuando TRISx... donde x es el número de puerto... es verdadero (ALTO)). Un inversor normal tiene encendido el transistor de salida "superior" (canal p) o "inferior" (canal n) en un momento dado. El búfer de tres estados tiene un tercer estado con ambos transistores apagados. El cuarto estado posible (ambos transistores encendidos, a través de la fuente de alimentación) generalmente no se considera muy deseable, y la disposición de puertas que se muestra evita que ocurra.

Esa es la única parte que se cambia cuando el pin se selecciona como entrada o salida (vea la salida TRISA del flip-flop de pestillo en el esquema superior; solo va a la habilitación del búfer de salida). No hay razón para desconectar las entradas, permanecen conectadas a la salida en todo momento, ya que presentan una carga despreciable. Del mismo modo, los periféricos analógicos (si los hay) están diseñados para que no presenten ninguna carga.

Aquí hay una sección detallada de E/S de una mcu LPC177x/8x (página 116).
Creo que su funcionamiento en modo de entrada/salida (así como varias otras características) se explica por sí mismo

ingrese la descripción de la imagen aquí