Cómo abreviar dos nodos electrónicamente

3

Estoy usando un Phillips SAA3010 IC del transmisor IR para enviar una señal IR modulada. El IC tiene dos tipos de entradas:

  • Z0 --- Z3
  • X0 --- X7

Y un tipo de salida:

  • DR0 --- DR7

Cada operación legal corresponde a una conexión por cable de DR-Z y DR-X pin. El dispositivo está diseñado para interactuar con un teclado en un control remoto, según la descripción de la hoja de datos:

  

Cada conexión de una entrada X y una salida DR se reconocerá como una operación de clave legal y hará que el dispositivo genere el código correspondiente. Lo mismo se aplica a todas las conexiones de una entrada Z a una salida DR con la condición de que el SSM debe ser BAJO. Cuando el SSM es ALTO, debe existir una conexión por cable entre una entrada Z y una salida DR. Si no hay conexión, no se generará el número del sistema.

La disposición del interruptor deseado se describe en esta figura de la hoja de datos:

Sin embargo, quiero hacer la conexión por cable de forma electrónica, a fin de que el conmutador sea programable a través de un Arduino. Tengo que obtener 64 conexiones legales de este tipo. He intentado usar un IC MUX / DEMUX pero como usan puertas, no existe una conexión física por cable. Creo que esto no funcionará a menos que haya una conexión física cableada. La hoja de datos ciertamente asume que se utilizará un teclado físico.

¿Cómo puedo hacer esto utilizando el mínimo espacio posible? Mis limitaciones físicas son que el dispositivo tiene que ser del tamaño de un teléfono móvil típico, que incluye la placa Arduino UNO.

    
pregunta Prabhav Agrawal

3 respuestas

3

Toma el problema un nivel arriba. ¿Desea controlar el SAA3010 (que ha estado obsoleto desde hace eones) con un microcontrolador o desea enviar códigos RC5? Supongo que quieres lo último. Una de las razones por las que el SAA3010 está obsoleto es que en estos días casi todos los dispositivos contienen al menos un microcontrolador, y los microcontroladores pueden realizar esta tarea tan fácilmente como el SAA3010, incluida la modulación. Nunca he usado Arduino, pero supongo que puede generar códigos RC5. Si no puede, o si a su Arduino no le quedan recursos, use un microcontrolador externo que controle a través de UART. Probablemente esto le costará menos que algunos de los conmutadores que usaría en la matriz de conmutadores, por lo que definitivamente es la solución más barata.

    
respondido por el stevenvh
1

respuesta literal

Sí, un mux analógico 8: 1 (para seleccionar uno de los pines DRx) seguido de un demux analógico 1:12 (para seleccionar uno de los pines Xx o Zx) debería ser adecuado para simular que se presiona un botón en un teclado . (No es necesario simular que se presionan dos botones a la vez, ¿no?)

Cualquier multiplexor analógico 8: 1 común debería ser adecuado, como: 74HC4051, 74HCT4051, CD74HC4051, CD4051B, HCF4051B, DG408, etc.

Puede hacer un multiplexador analógico 1:12 a partir de dos multiplexores analógicos 8: 1 y tal vez un inversor (que produce un multiplexador analógico 1:16).

Luego, su microprocesador controla los muxes con 3 pines para la selección de DR, 4 pines para la selección de X / Z, y quizás algunos pines más para "habilitar" (sin presionar botones).

comentarios generales

La mayoría de los circuitos en ese chip se ocupan de leer el teclado. Ya que aparentemente no tienes ni quieres un teclado, en lugar de (a) conectar su procesador a algún circuito conectado a este chip que genera pulsos RC-5 conectados a un transistor conectado a la IRLED, quizás sería más sencillo (b) programar su procesador para generar los pulsos RC-5 directamente, conectados a un transistor conectado al IRLED. Parece que hay información en Internet: RC-5 , tv-b-gone , etc.

Sospecho que es posible utilizar mux digitales y demuxes digitales para simular los botones de empuje, pero eso requiere una mejor comprensión de cómo funciona exactamente el chip.

    
respondido por el davidcary
0

Hay algunas maneras en que puedes hacer esto.

  1. Pequeños relés SPST. No quieres hacer esto. Grande, caro, ruidoso y que consume energía.

  2. Los transistores / FET pueden funcionar en cada cruce. La lógica interna del SAA3010 dice que las entradas X / Z están elevadas y las líneas DR se controlan secuencialmente a nivel bajo. Esto significa que si conecta un emisor de transistor NPN a la salida DR y el colector a la entrada X / Z, podrá lograr lo que está buscando. NO he simulado esto, pero parece plausible.

  3. Si falla # 2, simplemente puede conectar todas las entradas DR a 8 entradas en su Uno, y luego conectar 8 salidas a las entradas X0-X7. Su Uno mantendría las salidas en los estados lógicos de impedancia alta o alta y luego, dependiendo de la entrada de DR que se active, active la salida X / Z apropiada.

El método 1/2 es el más fácil, ya que no requieren sincronización entre el Uno y el SAA3010. El método 2 necesita ser probado, ni siquiera estoy seguro de que funcione. El método 3 requiere que el Uno conduzca la salida lo suficientemente rápido después de detectar las líneas DR y que deje de conducirlas en el instante en que cambian las líneas DR. La hoja de datos no lo establece claramente, pero parece que tendrá que ser capaz de manejar y liberar las salidas Uno en base a las entradas de DR a unos doscientos kHz. Esto no es una empresa masiva. La pregunta es si tendrá suficientes puertos de E / S en el Uno para lograr esto.

    
respondido por el akohlsmith

Lea otras preguntas en las etiquetas