El circuito eléctrico del TDA7449
En el diagrama podemos ver que el circuito es muy sencillo cuando utilizamos sólo una de las entradas y un pequeño puñado de componentes alrededor del IC para darle un correcto funcionamiento. La alimentación por pin 2 debe ser filtrada (además del clásico electrolítico) con capacitores cerámicos tipo disco, de 100nF, que deben colocarse físicamente lo más próximo posible al TDA. Otro dato destacable es la diferenciación entre las conexiones a GND de las partes digitales respecto a las analógicas. Los circuitos digitales son ruidosos y siempre es bueno separar (con algunas decenas de Ohm) las terminales de tierra de ambos sectores. En este caso, 33 Ohms es una buena opción, según la hoja de datos del IC.
Circuito eléctrico propuesto para el preamplificador
Por último, no debemos olvidar que cada vez que trabajemos con señales de audio, los planos de tierra deben ser tan amplios como sea posible. Es decir, no debemos realizar un impreso de vías finas y grandes espacios vacíos, sin conexión a GND. Siempre tratemos de ocupar la mayor superficie posible con un plano de tierra para minimizar los ruidos que puedan inducirse en el circuito. La misma recomendación es válida para los cableados de señal de entrada y salida del TDA7449, desde y hacia los conectores RCA. Deben ser lo más cortos posibles y blindados de buena calidad (mallados). Si este principio fundamental de la construcción de equipos de audio no se contempla, podemos llegar a escuchar ruidos muy molestos e inaceptables cuando escuchemos sonidos a bajo volumen.
Programando el PIC
Siguiendo con la misma orientación de artículos anteriores, te daremos aquí las indicaciones para realizar el programa que irá cargado en el microcontrolador. Como es costumbre, primero se declara el dispositivo a utilizar con su correspondiente cristal, el conexionado, el tipo de LCD a utilizar, y los pines destinados para la comunicación por bus I2C. Podrás notar que, en este caso, hemos incorporado una nueva instrucción: la de utilizar un bus lento (100 Khz.) debido a que el TDA7449 es utilizado con esta característica de velocidad en sus aplicaciones masivas en receptores de televisión.
Cabecera del firmware del microcontrolador
Luego, declaramos las variables a utilizar dentro del programa: aquellos parámetros que variarán según nuestra acción en los comandos que hemos asignado al PIC. Los nombres de las variables pueden ser cualquiera con tal de que nos relacione con el nombre real de lo que estamos queriendo cambiar. Es decir, si queremos contar perros, los nombres habituales de variables pueden ser “dog”, “can”, “pichicho”, o cualquier otro nombre corto que pueda asociarse en nuestra mente con el elemento a mencionar. También en esta parte inicial del programa definimos los SYMBOL o “alias” que, como ya te hemos explicado antes, son reemplazos de cosas tediosas de escribir (son más sencillos y rápidos de escribir en un lenguaje habitual). Un ejemplo de lo que te mencionamos es el caso de valores numéricos en notación binaria. Si bien podemos colocar los valores numéricos en cualquier notación (HEX, BIN, DEC, etc.), siempre será más sencillo llamarlos por un solo nombre que por un conjunto de ceros y unos, que pueden prestarse fácilmente a confusión. Es más sencillo escribir la palabra GRAVES que acordarnos de escribir “%00000100” cuando hagamos referencia a la sub-dirección GRAVES dentro del protocolo de comunicación I2C.
Ejemplo de declaración de variables y alias necesarias
En la imagen también puedes ver que se coloca en alto el pin 3 del puerto A para mantener a T1 conduciendo, y al relé energizado, a pesar de haber soltado el pulsador ON-OFF. Luego, le damos al sistema un retardo de 500 milisegundos para estabilizar la tensión en los circuitos antes de comenzar a trabajar con los registros del TDA7449.
Mensaje de bienvenida y seteo inicial del TDA7449
Al iniciar el funcionamiento del equipo, siempre es interesante observar un mensaje de bienvenida o la también conocida pantalla de inicio o splash. En nuestro caso, hemos colocado un mensaje con un saludo de toda la gente de NeoTeo para quien vea en acción al preamplificador. Pero lo más interesante será cuando tú personalices y hagas bien custom tu propio preamplificador. Mensajes formales como el sugerido, e incluso textos que digan “¡Quítate el corpiño, nena!”, pueden pasar por el display al iniciar el equipo. Seguramente tu imaginación creará mensajes dignos de ser leídos y compartidos con tus padres para despertar su orgullo por tu trabajo.
Luego de los dos segundos de muestra del mensaje, cargaremos los datos iniciales que les queremos asignar a las variables que deban ser, a nuestro criterio, modificables al inicio del funcionamiento del sistema. Como ejemplo hemos optado por colocar la ganancia de la etapa de entrada del IC en 0dB, el volumen en -32dB (un cuarto aproximadamente del volumen total), y los controles de tono al máximo en ambos casos: Graves y Agudos.
Ten presente que el TDA7449 expresa el nivel de volumen en decibeles y manifiesta que el máximo volumen que puede seleccionarse corresponde a 0dB, mientras que hacia abajo (disminuyendo el volumen) las expresiones se realizan en números negativos y determinan la “atenuación” que sufre el libre sonido máximo (0dB).
A esta altura de la explicación ya es momento de cargar los datos en los registros y comenzar a disfrutar de la música. La manera de hacerlo es tan sencilla como te adelantamos más arriba: abrir el bus > enviar dirección > enviar subdirección > enviar dato > cerrar el bus.
Observa en el ejemplo citado en la imagen que, una vez abierto el bus, puedes enviar muchos datos a muchas subdirecciones, una tras otra, hasta terminar el diálogo con el dispositivo y luego cerrar el bus con la clásica instrucción BUSTOP.
Si no te has equivocado en la construcción del hardware y todo está correcto, el sonido aparecerá según tus ajustes iniciales, y ya puedes comenzar la experiencia del manejo del bus I2C, junto al despliegue de tus habilidades como programador.
Ahora hay que armar y organizar la estructura del firmware de modo tal que puedan variarse los controles de tono, volumen, y todo lo que desees, en tiempo real, sin detenciones en la escucha del sonido, ni cuelgues inesperados e impredecibles del microcontrolador. No dejes de probar bien a fondo tu firmware y, como consejo, siempre debes armarlo a prueba de inquietos como tú quienes tienden a tocar todos los pulsadores en simultáneo, forzar y buscar el error de diseño al pulsar distintas secuencias de teclas, y todas las acciones tendientes a desestabilizar el sistema de todas las formas posibles que puedas imaginarte.
Arma contadores con sencillas instrucciones incrementales o decrementales, como pueden ser TREBLE = TREBLE + 1. También puedes detectar si las teclas son pulsadas con simples instrucciones IF - THEN - ELSE – ENDIF, y apelar a todos tus conocimientos para tratar de lograr un funcionamiento estable y seguro.
Ejemplo de una rutina para ajustes de Graves y Agudos
Tómate un instante y observa las etiquetas RETALTOSUP y RETEALTOSDWN. Si el usuario es una clase de juguetón como del que hablamos antes, se quedará prendido al pulsador viendo en qué momento el sistema enloquece o se cuelga dentro de un lazo de variaciones incontrolables. En cambio, aplicando estas sencillas rutinas con un condicional IF – THEN – GOTO, el programa (hasta que no suelte el pulsador) entrará en un bucle infinito, impidiendo la utilización de otras teclas. De esta forma, te aseguras de que las teclas se pulsen de a una por vez y de a una vez para cada acción. Es sencillo y confiable, ¿no crees?
Al final, dedica algunas líneas de programa para un apagado del equipo categórico y con elegancia. Un buen mensaje de despedida es visto con mucho agrado por los usuarios del sistema (al igual que el mensaje de bienvenida).
Ejemplo de rutina de apagado
Lo primero es cortar el sonido al entrar en la rutina, colocando los registros de volumen y atenuación de canales (balance) en condición de MUTE. Luego, debes emitir un mensaje de salida de un par de segundos para no hacerlo muy extenso. También aquí tu capacidad de imaginación le dará un toque mágico al mensaje. La condición de apagado es muy sencilla: coloca en estado bajo el pin que mantenía activo el relé y el transistor serie de encendido (T1 a través de T2) (ver circuito de fuente), y provoca un lazo infinito hasta que el equipo apague. Para entrar en la rutina de apagado puedes colocar, dentro del programa, instrucciones como las que aparecen a continuación, que deben estar diseminadas a lo largo de todo el firmware (no deben faltar en ninguna secuencia). Siempre debe existir la posibilidad de salir hacia un apagado desde cualquier lugar y situación. Ese es uno de los datos que te ayudará a evitar los cuelgues que antes mencionábamos.
Ejemplo de instrucción para detectar orden de apagar el equipo
Así de sencilla es la instrucción que detecta si se ha pulsado el botón ON-OFF y su continuación hacia la subrutina de apagado antes mostrada.
Consideraciones finales
Con disponibilidad de tiempo, paciencia, buen gusto, imaginación, y muchas ganas de aprender, lograrás construir un eslabón muy importante dentro de un sistema de audio. El TDA7449 es un IC que la empresa ST Microelectronics te envía GRATIS (sí, gratis) a tu casa con sólo registrarte en su sitio y solicitarlo. El programa de Samples (muestras gratis) de ésta y otras empresas hacen que la disponibilidad de materiales y los precios altos ya no sean un impedimento para que puedas estudiar, desarrollar y experimentar en electrónica.
Samples recibidos en mi domicilio, sin cargo
Ahora sí lo que estabas esperando: el audio en acción! En la siguiente página encontrarás cuatro videos imperdibles. Todo lo explicado hasta aquí funcionando para que lo veas. Avanza a la siguiente página. Vamos!

Videos de demostración

Introducción, Fuente y Amplificador

TweetLord: Juega rol vía Twitter

NASA quiere crear mapas 3D de la Luna