Cómo conectar Raspberry Pi al bus serie de alarma doméstica (DSC Keybus)

1

Tengo una alarma doméstica DSC 1864 y quiero conectar el GPIO de mi Raspberry Pi al Keybus (un protocolo de comunicación de datos serie utilizado por la alarma).

Yo diría que mi conocimiento de electrónica es de principiante a intermedio.

Info:

El Keybus es un bus de datos serie de 4 hilos: + 12V, tierra, DATOS y CLK.

El reloj corre a 1 kHz de lo que he escuchado.

La lógica es 0-12V, creo (probé con un multímetro ya que no tengo un alcance y obtuve 12.84v en el + 12v y un cambio continuo de 6-8V en las líneas de Datos y Clk como se esperaba).

La Raspberry Pi tiene un nivel lógico de 0 - 3.3V, con algo por encima de 2.8V siendo ALTO.

Quesiton:

Mi pregunta es cuál es la mejor manera de conectar estos dos, con el Pi puramente solo a escondidas en el keybus - No necesito escribir en él, simplemente leo esto.

Me preocupa que si no tengo un circuito de alta impedancia, la Raspberry Pi actuará como un drenaje en el circuito e interrumpirá las comunicaciones entre los paneles de alarma (¡mal!).

Soluciones posibles:

  1. Use un optoacoplador. No es una buena solución, ya que he oído que son lentos y consumen mucha corriente en el lado de transmisión.

  2. Utilice un chip de cambio lógico - Posiblemente, pero no sé cómo encontrar el adecuado para mis necesidades, y tiene que tener una alta impedancia para no interrumpir el circuito del bus de teclas.

  3. Use las resistencias como divisor de voltaje: esta es la ruta que estaba planeando seguir. Calculé que lo siguiente:

simular este circuito : esquema creado usando CircuitLab

Dará 3v en la Pi cuando DATA va a 12v, pero freirá el pin GPIO si el voltaje supera los 13.5v.

Debería proporcionar 1.05 mA a la Pi; no estoy seguro de si esto es suficiente para propósitos de entrada.

Lectura adicional:

Recursos que he encontrado al investigar esto:

Cualquier ayuda / sugerencia aquí sería muy apreciada.

    
pregunta Mikepote

4 respuestas

2

Un optoacoplador (o dos) podría hacer el trabajo fácilmente, y proporcionará un aislamiento agradable entre los dos dispositivos si las fuentes de alimentación flotan separadas. Si no sabes por qué es una buena idea, deberías leerlo.

Hemos ejecutado optoacopladores en MHz, incluso hemos pasado el video PAL a través de ellos, por lo que un bus de datos de baja velocidad estará bien.

Sin mirar demasiado de cerca, supongo que una parte popular como 4n25 sería completamente adecuada.

    
respondido por el John U
1

El divisor resistivo funcionará, siempre que el voltaje esté dentro de los límites de seguridad.

Si desea algo más de protección, puede colocar un diodo Zener de 12 V a través de la línea de señal a tierra, en paralelo con ambas resistencias. Sin embargo, esto pondrá algo de carga (capacitiva y actual) en la línea de señalización.

También puede colocar un Zener de 3.3V en la entrada directamente, pero luego tiene que bajar la resistencia de 10 kOhm a 2 kOhm aproximadamente, porque un Zener necesita 5 mA de corriente para desarrollar adecuadamente su voltaje de separación (si no será más bajo.)

Otra opción sería usar un divisor resistivo con algún tipo de re-buffering antes de ir al RPi. Esto puede ser un amplificador operacional barato de riel a riel como el MCP601, o un búfer de tres estados como el 74HC125, o algo más. Los amplificadores operacionales no son excelentes búferes para señales digitales cuando las frecuencias son altas, pero a 1 kHz, creo que no tienes nada que temer.

Y debido a que hay un reloj y una señal, necesita estos tiempos de configuración dos. Hay opamps y buffers que tienen más de un circuito dentro del mismo paquete IC, lo que debería hacer que sea razonablemente simple / barato de lograr, si opta por la versión más compleja.

simular este circuito : esquema creado usando CircuitLab

Otra forma de hacerlo sería usar un transistor MOSFET de canal N y un pull-up a 3.3V. Sin embargo, esto invertirá la señal, quizás se pueda convertir en software.

simular este circuito

    
respondido por el Jon Watte
1

Un "4050" común no inversor de búfer de alta a baja hará lo que quieras. Sus salidas están vinculadas a su VCC (en este caso, los 3.3v de los R-pi), mientras que sus entradas pueden ser de hasta 15v. Esto funcionará solo para lectura, ya que el 4050 tiene 6 buffers unidireccionales.

simular este circuito : esquema creado usando CircuitLab

    
respondido por el Passerby
1

Utilicé un diseño mucho más simple

LousoconmikeybusdevparaLinuxenRaspberryPien enlace

    
respondido por el hvesalai

Lea otras preguntas en las etiquetas