He seguido trabajando en el tema del análisis de datos Ademco y he construido algunos circuitos para ayudar a controlar el flujo en buses comunes...
El primero es la idea de utilizar una pequeña resistencia entre cada pin del módulo y el bus común entre ellos. El pin va además a la entrada + de un operacional LM324, y el - va al bus común... entonces, port la caída que provoca la resistencia, si la salida procede del pin siempre tendrá una tensión algo mayor que si procede del bus, y la salida del operacional sera a un 1, y si es al revés será un 0...
El circuito básico está cuadruplicado y por tanto puede procesar las señales de una línea de bus y cuatro módulos de manera simultánea...
Enlace directo a la imagen a tamaño normal
...Acabé el circuito, lo puse en marcha conectando el - común a la línea de "salida de datos" y los + a los pines de igual nombre de los cuatro módulos: central, 4204, receptor y consola, y la sorpresa fue que no parecía hacer nada, el canal Saleae 0 correspondiente a la placa Central siempre estaba alto y los restantes siempre bajos. Las salidas del operacional no respondían además a los datos digitales...
Pensando un poco llegué a la conclusión que era normal que no salieran las señales digitales en la salida de los operacionales, puesto que sea cual sea el módulo que genera una señal hacia el bus, la tensión de la entrada + siempre será proporcionalmente mayor a la - ...Entonces, el hecho que el resultado del pin de salida de datos de la Central siempre estuviera a 1 podía indicar que era un bus direccional, en que estas placa habla y el resto de módulos escuchan, algo similar al MOSI del protocolo SPI, aunque en este caso asíncrono...
Para certificar si estas suposiciones eran acertadas o era un mal funcionamiento imprevisto del circuito, construí otro más sencillo, sin operacionales, sólo con diodos y algunas resistencias de descarga...
Enlace directo a la imagen a tamaño normal
Si los buses eran realmente unidireccionales, los diodos deberían poder discernir y separar los datos de cada módulo, y por tanto analizar el destino de las órdenes, su respuesta por el bus "entrada de datos" y la acción externa que el módulo realice...
En la siguiente imagen se observan más detalles sobre este nuevo circuito, que de certificar lo que pienso aún podrá reducirse más... Las resistencias de 1 K son para evitar que si la entrada de un módulo es de alta impedancia o tipo MOS, el diodo cargue el "condensador" impidiendo que este regrese a valores de señal 0, con lo cual el módulo dejará de responder...
Enlace directo a la imagen a tamaño normal
Pues bien, ayer noche realicé las primeras pruebas y el resultado coincide con lo que pensaba. El bus "salida de datos" sólo es de envío de señales desde la placa Central al resto de módulos, los cuales contestan todos ellos a través del bus "entrada de datos", son en efecto buses direccionales. De tal manera que enviando al canal Saleae 0 la "salida de datos" y al Saleae 1, 2 y 3, las "entradas de datos" correspondientes al receptor, a la consola y a la placa de relés 4204, puede diferenciarse perfectamente el tráfico de órdenes-respuestas...
He podido ver las órdenes de interrogación del receptor, el intercambio de datos entre la Central y la consola, y entre la central y el módulo de relés... De todas formas, no todos los tipos de pregunta-respuesta están demasiado claros, de vez en cuando hay intercambios que no coinciden con eventos externos, cuyo sentido también deberá resolverse...
Continuará...
Saludos a todos
Llorens