GPIO - Valor del puerto

0

He comenzado a estudiar GPIO. Por favor refiérase a la imagen adjunta. Cuando se presiona el botón, Vout = 0. Cuando se suelta el botón, Vout = Vin. Mi pregunta: Usando GPIO, el software puede establecer los valores para el puerto. Si escribo el valor del puerto como 1, ¿significa Vout = 1, independientemente de que se presione el botón o no? Si Y escribe el valor del puerto como 0, significa que Vout = 0, independientemente de que se presione el botón o no. En la siguiente figura, el puerto es la puerta lógica.

    
pregunta xyz101

2 respuestas

2

Un GPIO se configura como entrada o salida bajo el control del software. Su diagrama muestra la parte de entrada (búfer) y algunos componentes externos (interruptor, resistencia). Para que este circuito funcione, el GPIO debe configurarse como entrada.

Cuando configura el GPIO como salida, puede escribir un bit que establece el nivel de pin: alto para 1 y bajo para 0. Haciendo que el pin sea alto de esta manera y conectando (y cerrando) un cambio a tierra da como resultado un cortocircuito: es una mala idea. No hagas eso.

Si realmente quiere saber qué sucede en ese caso: lo más probable es que el interruptor tenga una resistencia mucho más baja que el transistor controlador GPIO, por lo que la tensión del pin será (casi) baja. Se dibujará una corriente (a través del silicio y la resistencia de salida) que estará muy por encima de la calificación máxima para el pin. Oficialmente, m que resulta en comportamiento indefinido , lo que significa que cualquier cosa puede pasar.

    
respondido por el Wouter van Ooijen
1

Echa un vistazo a esto:

(CortesíadeMicrochip: enlace )

Lo siento por las fuentes desordenadas.

Cuando configura un puerto como salida, WR_TRIS es cero, por lo que los valores de P y N están controlados por el valor que escriba en WR_PORT.

Si configura el valor en lógica 0, la N está activada, reduce la corriente de hundimiento de salida de su resistencia externa, pase lo que pase con su botón.

Si lo configura en 1, la P está activada, y si presiona el botón, en teoría está acortando Vdd a Vss, que es una cosa mala \ $ ^ \ text {(C)} \ $.

El transistor de salida puede soportar una corriente máxima antes de la explosión, pero generalmente está protegido. Si, digamos, el puerto de salida puede generar / hundir un máximo de 20 mA, si el MOS está protegido, es decir, la corriente está limitada a 20 mA, tendrá un flujo de 20mA en la P, a través del botón, a Vss. Espero que la resistencia del botón sea muy baja, en el rango de 100 m \ $ \ Omega \ $, por lo que el voltaje de salida sería bajo, es decir, el botón gana.

Si el transistor no está protegido, probablemente explotará. Sin embargo, esto depende de su fuente de alimentación: si se limita actualmente a un valor seguro, no pasa nada y el botón aún gana, de lo contrario, ignore el puerto micro.

Para resumir: no establezca como salida un puerto que siempre debería ser una entrada.

    
respondido por el Vladimir Cravero

Lea otras preguntas en las etiquetas