Usando Raspberry Pi para leer las salidas del colector abierto desde el conector tally

1

Perdone mi ignorancia, soy un programador de software que es nuevo en el campo de la electricidad y el hardware.

Nuestro conmutador de video Panasonic HS300G tiene un conector Tally. A continuación se muestra el diagrama de pin y el diagrama de circuito.

El pin 1-6 es para indicarme qué entrada de la cámara está activa (cámara 1-6).

Al usar una Raspberry Pi 3, necesito poder detectar qué pin está "activo", y mi software lo usará para ejecutar un sistema de conteo basado en software.

Yo mismo he estado investigando lo más posible para entender cómo funcionan las "salidas de colector abierto", pero todavía estoy confundido, y no quiero freír nada en este mezclador de video enviando 3.3V a un pin incorrecto.

¿Funcionaría este diseño de la siguiente manera?

  1. Adjunte el Pin 9 a GROUND en la Raspberry Pi.
  2. Se adjuntaron los pines 1-6 a 6 pines GPIO individuales configurados como "entrada" en Raspberry Pi
  3. Envíe 3.3V desde una Raspberry Pi GPIO al Pin 7.
  4. Resultado: Mis pines de "entrada" GPIO (1-6) recibirán 3.3V cada vez que se seleccione la entrada de la cámara correspondiente. Esto le dará al GPIO una lectura "alta" y mi software sabrá que la cámara está activa.

Me gustaría probar esta teoría, ¡pero no puedo permitirme enviar un voltaje demasiado alto y desordenar algo en este mezclador! Ayúdame a entender lo que está pasando aquí, realmente lo aprecio.

EDITAR:¿Cómoconectolos3.3Valcircuitocorrectamente?¿Quémeestoyperdiendo?

    
pregunta Rastographics

3 respuestas

2
  

Envíe 3.3V desde un Rasberry pi GPIO al Pin 7.

No. Pin 7 simplemente debe dejarse desconectado. Las salidas se habilitan cuando el pin 7 se deja abierto.

Aparte de eso, todo lo que necesita es una resistencia simple de 1k a 10k como un tirón de hasta 3.3V en cada salida. Usted tiene la idea general. Excepto que como se mencionó en otra respuesta, estas son salidas bajas activas. Los colectores abiertos se colocan en VCC y se bajan activamente para encenderlos. Por lo tanto, su código RPi requiere que busque un cambio de alto a bajo, un 0 para encendido en lugar de 1. Esta es la lógica invertida.

Este es el esquema de conexión típico. El 3.3V está conectado a las resistencias, que tiran de las líneas hacia arriba (por lo tanto, los pull-ups).

simular este circuito : esquema creado usando CircuitLab

    
respondido por el Passerby
1

Ya tienes buenas respuestas para algunos de tus puntos de Spehro Pefhany y Passerby , así que no repetiré esas partes.

Simplemente responderé (y corregiré) uno de tus puntos que no se ha mencionado hasta ahora:

  

¿Funcionaría este diseño de la siguiente manera?
  [...]
  4. Resultado: Mis pines de "entrada" de GPIO (1-6) recibirán 3.3V cada vez que se seleccione la entrada de la cámara correspondiente. Esto le dará al GPIO una lectura "alta" y mi software sabrá que la cámara está activa.

No. Mire este esquema (parcial) que amablemente proporcionó:

Suponiendo que el LED de ejemplo que se muestra en ese esquema, encienda cuando la cámara esté activa, el transistor que se muestra conducirá para encender el LED correspondiente.

Eso significa que la tabla de verdad será:

  • Salida APAGADO (Cámara no activa)

    El transistor no conduce = el voltaje en el pin del conector es el mismo que el voltaje usado para la resistencia de pull-up (interna o externa a la Raspberry Pi): debe ser 3.3V (lógica Alta detectada en la Raspberry Pi entrada conectada a ese pin)

  • Salida ENCENDIDO (cámara activa)

    Transistor conductor = voltaje en el pin del conector es 0V (lógica baja detectada en la entrada Raspberry Pi conectada a ese pin)

Por lo tanto, su punto 4 es exactamente el camino equivocado, es decir, sus entradas GPIO (suponiendo que los pull-ups a 3.3V) serán lógicos Bajo cuando la salida del dispositivo esté seleccionada y esa cámara está activa, y la lógica es Alta de lo contrario.

    
respondido por el SamGibson
1

Puede conectarlos directamente, pero debe configurar la resistencia interna pullup en los GPIO relevantes. Los motivos también deben estar conectados entre sí y no debe haber nada más (aparte de la Raspberry Pi) conectado a esos pines.

Si desea ser extremadamente precavido, coloque una resistencia de 470 ohmios en serie con cada una de las salidas. Dado que el pullup es de alrededor de 50K, no afectará mucho a las señales.

Los pullups internos tienen un valor bastante alto, por lo que si tiene un cable largo puede captar ruido, en cuyo caso cada salida podría tener una resistencia como 4.7K a la fuente de alimentación de 3.3 V de la Raspberry Pi.

Editar:

En tu diagrama.

Opción 1: Configure GPIO16 / 20/21 para que sean entradas con pullups internos en su código RPi. Reemplace las resistencias de 10 K con algo entre 0 y unos pocos cientos de ohmios (por ejemplo, 470 ohmios). No conecte el 3.3 en cualquier lugar (se suministra internamente mediante conmutadores en el Broadcom SOC con la serie 50K-ish pullups).

Opción 2: Deja los pullups internos apagados. Reemplace las resistencias de 10K con (digamos) 470 ohmios. Conecte una resistencia de 10K separada entre cada salida de colector abierto (pines D-sub 1-4) y el pin RPi 17 (+ 3.3V). Puedes usar pantalones cortos en lugar de 470 ohmios.

Esquema- se muestran dos salidas.

simular este circuito : esquema creado usando CircuitLab

    
respondido por el Spehro Pefhany

Lea otras preguntas en las etiquetas