WAV
PLAYER AVR
Reproductor
de archivos WAVE (LPCM)
Reproductor
de archivos WAVE LPCM utilizando microcontrolador AVR (ATmega328P),
tarjeta SD de 16GB, 2GB y micro SD de 16GB, este reproductor
soporta archivos WAVE con muestras de 8 bits, mono/estéreo,
frecuencia de muestreo máxima de 96 kHz.
El
microcontrolador AVR trabaja con una frecuencia de reloj de 16Mhz y
se encarga de leer la tarjeta SD en donde se encuentran almacenados
los archivos WAVE (.wav). Se usaron dos temporizadores del ATmega328P
con los cuales se implementa un DAC mediante señales PWM y un filtro
pasa bajos de primer orden, el microcontrolador extrae los
datos de la SD y los envía al respectivo temporizador.
Se
puede producir señales de audio usando 2 timer del AVR funcionando
como comparador. Haciendo uso de modo modulación por ancho de pulso
(PWM) en combinación con un filtro pasa bajos, la salida del
comparador puede ser usado efectivamente como un DAC para producir
señal analógica de audio. Si limitamos la señal analógica
modulada dentro de frecuencias comprendidas en el rango que por los
humanos es reconocido como audio. Aproximadamente 20Hz – 20KHz,
obtendremos sonido.
Circuito
SDC
Existen
en internet varias versiones de reproductores WAVE, los hay con
PIC24, dsPIC30F, AVR, ARM, etc. El principio es el mismo, mediante
los temporizadores y filtro pasa bajos se implementa un DAC.
Este
reproductor esta basado en la librería de
ELM-CHAN
Petit
FatFs R0.02a
, las cuales soportan FAT12/16/32, las memorias de 16GB que se usaron
aquí están formateadas en FAT32.
El
entorno de desarrollo para el atmega328 usado en este proyecto es:
AVR
studio 4.19
y para la simulación PROTEUS
7.9,
usar MMCIMG
para crear la imagen que contiene el archivo .wav, esto con fines de
simulación en proteus, tambien pueden usar este archivo .mmc que
contiene 2 archivos wav, 1 .txt y 1 .csv. Archivo
(.mmc) para la SD/MMC de proteus
Archivos
WAVE
WAV (o WAVE), es un formato de audio digital normalmente sin compresión de datos propiedad de Microsoft y de IBM que se utiliza para almacenar sonidos en el PC, admite archivos mono y estéreo a diversas resoluciones y velocidades de muestreo, su extensión es [.wav].
Wav File Header
Es
una variante del formato RIFF
(Resource
Interchange File Format,
formato de fichero para intercambio de recursos), método para
almacenamiento en "paquetes.
A
pesar de que el formato WAV es compatible con casi cualquier códec
de
audio, se utiliza principalmente con el formato PCM
(no
comprimido) y, al no tener pérdida de calidad, es adecuado para uso
profesional. Para tener calidad CD de audio se
necesita que el sonido se grabe a 44100 Hz y a 16 bits. Por cada
minuto de grabación de sonido se consumen unos 10 megabytes de
espacio en disco. En la cabecera del fichero se indica la longitud
del mismo con un número entero de 32 bits, lo que limita el tamaño
del fichero.
En Internet
no
es popular, fundamentalmente porque los archivos sin compresión son
muy grandes. Son más frecuentes los formatos comprimidos con pérdidas,
como el MP3 o
el Ogg
Vorbis.
Simulación Proteus 7.9
Señal PWM
MP3 to WAV (8 bits)
WinImage (wimg)
Cuadro comparativo entre Hardware/software PWM, R2R
y DAC externo.
Código fuente pff.h (Indicar las funciones y
formatos necesarios )
Código fuente mm.c (Indicar en que pin de cual
puerto va conectado CS, revisar tambien spi.c)
Código fuente lcd.h (configurar pines para el display )
Esquema del circuito (Eagle)
Esquema del circuito en .pdf
Archivo (.mmc) para simular SD con proteus. (Adentro vienen 2 pistas en formato WAV y 2 archivos de txt... Abrir con MMCIMG)
Programa para formatear SD (FREE), micro SD, etc.
Programa para convertir MP3 en WAV (FREE)
AVR calculator
Documento para comprender el PWM con timers del micrAVR
Documento sobre PWM
Programa para crear y ver la imagen que usa proteus para simular (MMCIMG)
Programa para ver los archivos WAV en hexadecimal
Archivo .wav 48Khz, 8 bits, stereo
Actualización: a 4 botones: stop, play/pause,
back, next.
Al encender aparece en estado stop... en este estado
el MCU permanece rotando un mensaje en la segunda fila del display.
Al presionar play/pause cambia a estado play, si de nuevo presionan
play/pause cambia a estado pause.
En la esquina superior derecha del display se
muestra ( (Archivo .wav actual) / (total
archivos en folder).
Esquema en Eagle
Simulación Proteus
Fuses en AVRISPmkll
hola, necesito subir un archivo .wav en la SD de proteus pero solo me permite .mmc lo que pasa es que quiero reproducir sonido, sabes como hacer o a que lo tengo que convertir para que me deje
ResponderEliminarRamanush.
ResponderEliminar