Instalación

El circuito que se implementó fue este:

Se sugiere conectar entre el ATMega16 y el puerto paralelo un 74LS573 ó su equivalente, el 74LS373.

Puede ver esta conexión en este archivo disponible en la página principal de este curso: Circuito inicial del Laboratorio de Microcontroladores; no es necesario la conexión del MAX3232 a menos que se desea usar el puerto serial.

Este programa fue creado en Debian, pero se puede usar Ubuntu también.

Se requiere un cable con puerto paralelo para transmitir los datos al ATMega16.

Además, se requiere instalar unos paquetes para usar el ATMega16, digite este código en la consola de Debian:

 $ sudo modprobe ppdev
 $ sudo chmod o+rw /dev/parport0
 $ apt-get install uisp avr-binutils avr-gcc avr-libc
 

Es probable que después de la primera línea de código, el sistema le pida una contraseña. Una vez digitada, se puede continuar con el resto.

Antes de proseguir con la instalación de los programas en el ATMega16, asegúrese de que el circuito mostrado al principio de esta página esté debidamente alimentado a 5V ANTES de conectar el puerto paralelo. De no hacerse así, puede dañar el microcontrolador. También es importante verificar que el cable paralelo esté bien conectado tanto a la computadora como al AVR.

Es extremadamente importante para este proyecto determinar el reloj u oscilador interno RC calibrado que está usando el ATMega. Eso se logra leyendo los fusibles internos del microcontrolador, los cuales nos dan cierta información del mismo.

Para eso, se digita el siguiente comando en la consola:

 $ uisp --rd_fuses -dprog=dapa -dlpt= /dev/parport0

Ejecutado el código, en la consola aparecerán varios mensajes, pero nos interesa sólo estas 2 líneas que aparecen en el apartado de “Fuses Bits”:

 ''c4= 11000100 Low Byte''
 ''d9= 11011001 High Byte''
 

Se le presta especial atención a los 4 bits menos significativos (los 4 de la derecha) del Byte Inferior (Low Byte). Estos son los que dicen cuál es la frecuencia del reloj interno del microcontrolador. Tenemos estas 4 opciones:

    0001 → 1 MHz.
    0010 → 2 MHz.
    0011 → 4 MHz.
    0100 → 8 MHz.

En el ejemplo anterior, el reloj interno del microcontrolador está a 8 MHz. De hecho, el ATMega16 que se usó tenía esta configuración en su oscilador interno.

Ahora sí, sólo queda instalar los programas que harán que el ATMega16 toque música.

Asegúrese de tener los siguientes archivos en una carpeta específica:

· Makefile

· notas.h

· figuras.h

· musica.c

Con estos archivos, se puede proceder a escribir estas instrucciones en la consola abierta en la carpeta donde están los archivos mencionados:

 $ make clean
 $ make
 $ make load

En realidad, la primera vez que se instalan estos programas, no es necesario escribir la primera línea de código (make clean), pero cuando ya después se le sigan haciendo modificaciones al archivo (esto generalmente es, añadir o cambiar partituras al código), la primera línea se vuelve relevante.

Ahora bien, si todo está en orden y no hay errores, ¡la caja de música ya está lista para usarse!

*El diagrama esquemático del circuito fue hecho por el mismo autor de este proyecto con la ayuda del programa Livewire 1.11 Professional Edition.