Saltar al contenido

Procesador de AUDIO DIGITAL controlado por REMOTO

En la actualidad, la mayoría de los sistemas de audio vienen con controles remotos. Sin embargo, no se proporciona tal facilidad para amplificadores de audio normales. Dichos controladores de audio no están disponibles incluso en forma de kit. Este artículo presenta un procesador de audio digital con control remoto por infrarrojos (IR). Se basa en un microcontrolador y se puede usar con cualquier control remoto IR de función completa compatible con NEC.

Este procesador de audio tiene características mejoradas y se puede personalizar fácilmente para cumplir con los requisitos individuales, ya que es programable. Sus características principales son:

1. Control remoto completo utilizando cualquier teléfono con control remoto IR compatible con NEC
2. Provisión para cuatro canales de entrada estéreo y una salida estéreo
3. Control de ganancia individual para cada canal de entrada para manejar diferentes fuentes
4. Control de graves, medios, agudos, mudos y atenuación
5. Control de 80 pasos para volumen y control de 15 pasos para graves, medios y agudos
6. Configuración mostrada en dos pantallas de diodos emisores de luz (LED) de 7 segmentos y ocho LED individuales
7. Indicación de nivel de VU estéreo en la pantalla de 10 barras LED
8. Teclas de funciones completas a bordo para el control del amplificador de audio
9. Todos los ajustes almacenados en EE-PROM
10. Modo de espera para control de potencia del amplificador

 

Descripción del circuito

La figura 1 muestra el diagrama de bloques del procesador de audio digital controlado a distancia. El sistema comprende el microcontrolador AT89C51 de Atmel (IC1), el procesador de audio TDA7439 de SGS-Thomson (IC4) y la EEPROM MC24C02 compatible con bus I2C (IC5). El chip del microcontrolador está programado para controlar todos los procesos digitales del sistema. El procesador de audio controla todas las funciones del amplificador de audio y es compatible con el bus I2C. Todos los comandos del control remoto se reciben a través del sensor IR. El amplificador de audio también se puede controlar con las teclas integradas.

Microcontrolador: La función del microcontrolador es recibir comandos (a través del puerto P3.2) desde el teléfono remoto, programar controles de audio según los comandos y actualizar la EEPROM. Se proporciona un retraso en la actualización de la EEPROM porque normalmente el oyente cambiará el valor de un parámetro continuamente hasta que esté satisfecho. El microcontrolador AT89C51 de 40 pines tiene cuatro puertos de entrada / salida (E / S) de 8 bits. El puerto 0 se utiliza para indicar a través de LED las diversas funciones seleccionadas a través de las teclas remotas / integradas.

  • El puerto 1 maneja la pantalla de 7 segmentos utilizando el enganche / decodificador / controlador de 7 segmentos IC CD4543.
  • El puerto 2 se extrae a través de la red de resistencias RNW1 y se usa para el control manual de la llave.
  • Los pines P3.0 y P3.1 del microcontrolador se utilizan como líneas de datos en serie (SDA) y de reloj en serie (SCL) para el bus I2C para comunicarse con el procesador de audio (TDA7439) y EEPROM (MC24C02). Estas dos líneas están conectadas a resistencias pull-up, que son necesarias para los dispositivos de bus I2C. P3.2 recibe los comandos remotos a través del módulo receptor IR. El pin P3.4 se usa para parpadear el LED9 cada vez que se recibe un comando remoto o se presiona cualquier tecla.

El microcontrolador también verifica el funcionamiento de la memoria (MC24C02) y el procesador de audio (TDA7439). Si no se está comunicando con estos dos circuitos integrados en el bus I2C, parpadea el nivel de volumen en las pantallas de 7 segmentos.

Memoria: IC MC24C02 es una EEPROM de 2k bits compatible con bus I2C organizada como 256 × 8 bits que puede retener datos durante más de diez años. Se pueden almacenar varios parámetros en él. Para evitar la pérdida de las últimas configuraciones en caso de falla de energía, el microcontrolador almacena todas las configuraciones de audio del usuario en la EEPROM. La memoria asegura que el microcontrolador leerá las últimas configuraciones guardadas de la EEPROM cuando se reanude la energía. Usando líneas SCL y SDA, el microcontrolador puede leer y escribir datos para todos los parámetros. Para obtener más detalles sobre el bus I2C y la interfaz de memoria, consulte la hoja de datos MC24C02. Los parámetros de audio se pueden configurar utilizando el auricular del control remoto o las teclas integradas de acuerdo con los detalles proporcionados en la sección “control remoto”.

Procesador de audio: IC TDA7439 es un controlador de audio compatible con bus I2C de un solo chip que se utiliza para controlar todas las funciones del amplificador de audio. La salida de cualquier (hasta cuatro) preamplificadores estéreo se alimenta al procesador de audio (TDA7439). El microcontrolador puede controlar el volumen, los agudos, los graves, la atenuación, la ganancia y otras funciones de cada canal por separado. Todos estos parámetros son programados por el microcontrolador utilizando líneas SCL y SDA, que comparte con el IC de memoria y el procesador de audio.

La transmisión de datos desde el microcontrolador al procesador de audio (IC TDA7439) y la memoria (MC24C02) y viceversa se realiza a través de la interfaz de bus I2C de dos hilos que consta de SDA y SCL, que están conectados a P3.0 (RXD ) y P3.1 (TXD) del microcontrolador, respectivamente. Aquí, la unidad de microcontrolador actúa como el maestro y el procesador de audio y la memoria actúan como dispositivos esclavos. Cualquiera de estos tres dispositivos puede actuar como transmisor o receptor bajo el control del maestro.

Algunas de las condiciones para comunicarse a través del bus I2C son:

1. Validez de los datos: los datos en la línea SDA deben ser estables durante el período alto del reloj. Los estados alto y bajo de la línea de datos pueden cambiar solo cuando la señal de reloj en la línea SCL es baja.
2. Inicio y parada: una condición de inicio es una transición de alta a baja de la línea SDA mientras SCL es alta. La condición de parada es una transición de baja a alta de la línea SDA mientras SCL es alta.
3. Formato de bytes: cada byte transferido en la línea SDA debe contener ocho bits. El bit más significativo (MSB) se transfiere primero.
4. Reconocimiento: cada byte debe ir seguido de un bit de reconocimiento. El pulso de reconocimiento de reloj es generado por el maestro. El transmisor libera la línea SDA (alta) durante el pulso de reloj de reconocimiento. El receptor debe tirar hacia abajo la línea SDA durante el pulso de reloj de reconocimiento para que permanezca bajo durante el período alto de este pulso de reloj.

Para programar cualquiera de los parámetros, se utiliza el siguiente protocolo de interfaz para enviar los datos desde el microcontrolador a TDA7439. El protocolo de interfaz comprende:

1. Una condición de inicio (S)
2. Un byte de dirección de chip que contiene la dirección TDA7439 (88H) seguido de un bit de reconocimiento (ACK)
3. Un byte de subdirección seguido de un ACK. Los primeros cuatro bits (LSB) de este byte indican la función seleccionada (por ejemplo, selección de entrada, graves, agudos y volumen). El quinto bit indica bus incremental / no incremental (1/0) y los bits sexto, séptimo y octavo son bits “no importa”.
4. Una secuencia de datos seguida de un ACK. Los datos pertenecen al valor de la función seleccionada.
5. Una condición de parada (P) En el caso del bus no incremental, los bytes de datos corresponden solo a la función seleccionada. Si el quinto bit es alto, la subdirección se incrementa automáticamente con cada byte de datos. Este modo es útil para inicializar el dispositivo. Para conocer los valores reales de bytes de datos para cada función, consulte la hoja de datos de TDA7439. Se sigue un protocolo similar para enviar datos desde / hacia el microcontrolador a la EEPROM MC24C02 utilizando su dirección de chip como “A0H”.

Fuente de alimentación: La figura 3 muestra el circuito de alimentación del procesador de audio digital controlado a distancia. El transformador X1 reduce la red eléctrica de CA para entregar una salida secundaria de 9V CA a 1A. La salida del transformador es rectificada por el puente rectificador de onda completa BR1 y filtrada por el condensador C42. Los reguladores IC8 e IC9 proporcionan fuentes de alimentación reguladas de 5V y 9V, respectivamente. IC10 actúa como el regulador de fuente de alimentación variable. Está configurado para proRelay RL1 normalmente está energizado para proporcionar alimentación al amplificador de potencia. En modo de espera, está desenergizado. El interruptor S2 es el interruptor “encendido” / “apagado”.

 

Software

El software se ensambló utilizando el ensamblador ASM51 de Metalink, que está disponible gratuitamente para su descarga. El código fuente ha sido ampliamente comentado para facilitar su comprensión. Se puede dividir en los siguientes segmentos en el orden de inclusión:

1. Definiciones variables y constantes
2. Rutinas de retraso
3. Rutinas de decodificación IR
4. rutinas de teclado
5. Comunicación TDA7439
6. Comunicación MC24C02
7. Rutinas del bus I2C
8. Visualizar rutinas
9. IR y procesamiento de comandos de teclado
10. Temporizador 1 controlador de interrupciones
11. Programa principal Al reiniciar, el microcontrolador ejecuta el programa principal de la siguiente manera:

1. Inicialice los registros del microcontrolador y las ubicaciones de memoria de acceso aleatorio (RAM).
2. Lea el estado de espera y silencio de la EEPROM e inicialice TDA7439 en consecuencia.
3. Lea varios parámetros de audio de la EEPROM e inicialice el procesador de audio.
4. Inicialice la pantalla y el puerto LED.
5. Haga un bucle infinito de la siguiente manera, esperando eventos:

• Habilitar las interrupciones.
• Verifique la entrada del monitor para ver si está apagada. Si se corta la energía, salte a la rutina de secuencia de apagado.
• De lo contrario, si se presiona una nueva tecla, llame a la rutina DO_KEY para procesar la tecla. Para esto, verifique si el bit NEW_KEY está establecido. Este bit se borra después de que se procesa el comando.
• De lo contrario, si se recibe un nuevo comando IR, llame a la rutina DO_COM para procesar el comando remoto. Para esto, verifique si el bit NEW_COM (nuevo comando IR disponible) está configurado. Este bit se borra después de que se procesa el comando.
• Saltar al comienzo del bucle.

6. Secuencia de apagado. Guarde todos los ajustes en la EEPROM y apague la pantalla y el relé de espera.

Como la salida del sensor IR está conectada al pin 12 (INT0) del microcontrolador, se produce una interrupción externa cada vez que se recibe un código. El algoritmo para decodificar el flujo IR se implementa completamente en la rutina del controlador de “interrupción externa 0”. Esta rutina establece NEW_COM (02H en la memoria de bits) si hay un nuevo comando disponible. El byte de comando descodificado se almacena en “Comando” (ubicación 021H en la RAM interna). La rutina principal verifica el bit NEW_COM continuamente en un bucle. El temporizador 0 es utilizado exclusivamente por esta rutina para determinar los tiempos de pulso.

La decodificación de la secuencia IR implica los siguientes pasos:

1. Dado que cada código se transmite dos veces, rechace el primero introduciendo un retraso de 85 milisegundos (ms) e inicie el temporizador 0. La segunda transmisión se detecta al verificar el temporizador sin desbordamiento 0. En todos los demás casos, el temporizador 0 se desbordará .
2. Para la segunda transmisión, verifique el conteo del temporizador 0 para determinar la duración del pulso líder (9 ms). Si la longitud del pulso está entre 8.1 ms y 9.7 ms, se reconocerá como válida. Omita el siguiente silencio de 4.5 ms.
3. Para detectar los bits entrantes, el temporizador 0 está configurado para usar la señal estroboscópica de modo que el contador se ejecute entre los períodos de intervalo de bits. El valor del contador se usa para determinar si el bit entrante es ‘0’, ‘1’ o ‘Parar’. Esto se implementa en la rutina RECEIVE_BIT.
4. Si el primer bit recibido es “Stop”, repita el último comando configurando el bit NEW_COM.
5. De lo contrario, recibe el resto de siete bits. Compare el byte recibido con el código personalizado (C_Code). Si no coinciden, devuelve el error.
6. Reciba el siguiente byte y compárelo con el código personalizado. Si no coinciden, devuelve el error.
7. Recibe el siguiente byte y guárdalo en “Comando”.
8. Reciba el siguiente byte y verifique si es el valor del complemento de “Comando”. De lo contrario, devuelva el error.
9. Recibe el bit “Stop”.
10. Establezca NEW_COM y regrese de la interrupción. Otras partes del código fuente son relativamente sencillas y se explican por sí mismas.

Control remoto: El microcontrolador puede aceptar co ys desde cualquier control remoto IR que use el formato de transmisión NEC. Estos controladores remotos están disponibles en el mercado y usan µPD6121, PT2221 o un IC compatible. Aquí, hemos utilizado el teléfono remoto de Creative.

Todas las funciones del sistema se pueden controlar completamente utilizando el control remoto o las teclas integradas. Por defecto, la pantalla muestra la configuración del volumen y los LED indican el canal seleccionado. El LED9 se ilumina momentáneamente cada vez que se recibe un comando desde el control remoto o se presiona cualquier tecla.

Los ajustes de funciones se detallan a continuación:

1. Volumen: Use la tecla Vol + / Vol- para subir / bajar el volumen. La configuración del volumen se muestra en la pantalla de dos dígitos y 7 segmentos. Los pasos pueden variar entre “1” y “80”.
2. Silencio y modo de espera: con los botones “Silencio” y “Modo de espera”, puede alternar el estado de silencio y modo de espera, respectivamente. Si se presiona “Mute”, la pantalla mostrará “00”. En el modo “Standby”, el relé se desactiva para apagar el amplificador principal. Todos los LED y pantallas, excepto el LED9, se apagan para indicar el estado de espera.
3. Selección de entrada: para seleccionar la fuente de entrada de audio, presione la tecla “Canal” hasta que se seleccione el canal deseado. El LED correspondiente al canal seleccionado se enciende y la configuración de ganancia de entrada para ese canal se muestra durante cinco segundos. Posteriormente, el nivel de volumen se muestra en la pantalla de 7 segmentos.
4. Conjunto de ganancia de entrada: presione la tecla “Ganancia”. El LED correspondiente al canal comenzará a parpadear y se mostrará el valor de ganancia. Use la tecla Vol + / Vol- para aumentar / disminuir la ganancia para ese canal. Tenga en cuenta que la ganancia se puede variar de “1” a “15”. Si presiona la tecla “Ganancia” una vez más, y no se presiona ninguna tecla durante cinco segundos, saldrá del modo de configuración de ganancia y se mostrará el nivel de volumen.
5. Audio: presione la tecla “Audio Set” (Menú) para ajustar los graves, medios, agudos y atenuación uno por uno. Cada vez que se presiona la tecla “Audio Set”, se enciende el LED correspondiente a la función seleccionada y se muestra el valor de la función. Una vez que se selecciona la función requerida, use Vol + y Vol- para ajustar la configuración. Los graves, medios y agudos se pueden variar de ’07’ a ‘7.’ Los valores ‘0’ a ‘7’ indican ‘Boost’ y ’00’ a ’07’ indican ‘Cut’. La atenuación se puede variar de ‘0’ a ’40 ‘.

 

Construcción

El circuito se puede ensamblar fácilmente en cualquier PCB con base IC. Antes de instalar el microcontrolador, la memoria y el procesador de audio en sus enchufes y soldar el módulo receptor IR, asegúrese de que el voltaje de suministro sea correcto. Todas las partes, excepto el procesador de audio (TDA7439), requieren un suministro de CC de 5V. El procesador de audio funciona con 9V DC.