Conexión segura de la entrada GPIO a la salida

1

Estoy trabajando en una pieza de software para Raspberry Pi y estoy escribiendo una prueba de integración. Uno de los casos requiere que pueda leer el estado de un pin en otro (básicamente, si un pin de salida es alto, otro pin de entrada también debe ser alto y viceversa).

¿Cuál es la forma más segura de conectar un pin a otro para que:

a) Independientemente de la configuración del software (el pin está fuera / dentro, alto o bajo), nunca hay un cortocircuito peligroso.

b) El estado del pin IN nunca está "flotando" (lo cual es la razón para usar menús desplegables / pull-ups de lo que entendí)

simular este circuito : esquema creado usando CircuitLab

¿Básicamente se necesita R2?

    

2 respuestas

1

Usted conecta el pin b "Entrada" a un tirón hacia arriba o hacia abajo para forzar un estado conocido en caso de que el pin A "salida" esté en estado flotante. Conecte el pin a con el pin b con una resistencia de alto ohmio de 10k ~ 100k ohmios para evitar un flujo de alta corriente si el pin a y b son salidas de forma accidental con diferentes niveles. Eso es para prevenir un cortocircuito alto a bajo.

Como la mayoría de los sistemas pueden lidiar con el pasador flotante temporal, solo se necesita la resistencia de precaución entre los pasadores a y b. Un pasador de arrastre hacia abajo / arriba puede provocar un desgaste innecesario de la batería.

    
respondido por el Passerby
1

Su esquema debería funcionar bastante bien para el aislamiento entre dos GPIO. (R2 es una buena idea, pero no es absolutamente necesaria).

Hay algunas consideraciones a tener en cuenta sin embargo.

  1. Si algunos GPIO Bs en su tarjeta MCU ya tienen detectores existentes, puede hacer que la resistencia de la serie R1 actúe como la resistencia inferior en un divisor de voltaje cuando GPIO A está en un estado bajo. Esto podría hacer que el "bajo" visto en GPIO B sea demasiado alto para ser detectado de manera confiable como un '0'.

  2. Si algunos GPIO Bs en su tarjeta MCU ya tienen desmontajes existentes, puede hacer que la resistencia de la serie R1 actúe como la resistencia superior en un divisor de voltaje cuando GPIO A está en un estado alto. Esto podría hacer que el "alto" visto en GPIO B sea demasiado bajo para ser detectado de manera confiable como un '1'.

  3. Si algunas de las GPIO B están conectadas a otra lógica en la placa, podría haber conflictos al intentar obtener la señal a través del circuito de aislamiento.

respondido por el Michael Karas

Lea otras preguntas en las etiquetas