Autor Tema: leer un .WAV desde una MicroSD  (Leído 2761 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Totti10_Mex

  • PIC10
  • *
  • Mensajes: 1
leer un .WAV desde una MicroSD
« en: 17 de Abril de 2013, 20:26:15 »
Hola a todos, les pido su ayuda con el siguiente proyecto: a partir de una memoria microSD leer desde el PIC un archivo .wav y reproducirlo usando el PWM del PIC.

Hasta ahora he estado utilizando la librería que viene por defecto con el CCS y el ejemplo que venía con esta, el fat_ex_shell.c, cuando lo estoy probando con el PIC aparentemente inicializa mi SD y me permite crear archivos, pero cuando la conecto a mi computadora me dice que en realidad mi memoria está vacía y si intento leer, crear una carpeta o formatear la SD desde el PIC me marca un error.

En algunos lugares he leído que esta librería solo funciona con las memorias MMC y jamás será posible hacerlo con una micro SD sin hacerle modificaciones importantes a esta librería. La verdad soy bastante nuevo en esto de los PIC’s y no me siento capaz de hacer esto sólo  :(, así que espero me puedan ayudar.

Con lo que estoy trabajando:
- pic18f4620 (cristal 10MHz con PLL)
- microSD, (la de un celular para ser específico) conectada a un adaptador SD conectado al modulo SD http://www.lctech-inc.com/Hardware/Detail.aspx?id=0c3b6f7a-d101-4a60-8b56-3abfb7fd818d

Gracias  :)


Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: leer un .WAV desde una MicroSD
« Respuesta #1 en: 18 de Abril de 2013, 00:00:01 »
Hola Totti,

el usuario Suky ha hecho una librería con soporte de escritura/lectura de archivos bajo formato FAT16. Podrías empezar por allí.

Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado oscar321

  • PIC10
  • *
  • Mensajes: 8
Re: leer un .WAV desde una MicroSD
« Respuesta #2 en: 07 de Mayo de 2013, 22:55:11 »
Tal vez esto te pueda ayudar compañero, es una forma de utilizar los wav, matlab y un algoritmo para pic.

http://www.ikein.net/index.php/electronica/circuitos/56-sonidospic

saludos (y)

Desconectado Mr.Hell

  • PIC10
  • *
  • Mensajes: 8
Re: leer un .WAV desde una MicroSD
« Respuesta #3 en: 22 de Julio de 2013, 23:52:27 »
No sé si será tarde, pero agrego datos que te pueden ser útiles:

1) Para leer una SD podes hacerlo mediante el protocolo SPI o el protocolo de comandos de la SD. Para un micro lo más sencillo es SPI, aunque el de comandos es más veloz.
2) Para reproducir un archivo de audio tenés que tener en cuenta que si bien la extensión es WAV, puede o no estar comprimido. En caso de estarlo vas a necesitar un descompresor por software (o bien por hardware). En caso de no estarlo, tenes que sabes como está la información en el WAV (si es estéreo, la velocidad de muestreo, cantidad de bits por muestra, alineación, etc.). Toda esta información está contenida en la cabecera WAV. (más info aca: https://ccrma.stanford.edu/courses/422/projects/WaveFormat/). Lo mejor sería primero abrir el WAV en una PC con un editor hexadecimal e ir leyéndolo para ir conociendo la cabecera y demás.
3) Dentro de la tarjeta de memoria tenés (dependiendo del tamaño de la tarjeta) un registro maestro de arranque (MBR), sector 0 de la tarjeta que contiene justamente el bootloader si la tarjeta es arrancable, y la tabla de particiones, que te va a decir donde comienza la partición que contiene los archivos WAV a reproducir.
4) Una vez ubicada la partición es necesario procesar el sistema de archivo (en tarjetas de menos de 2GB suele ser FAT16), para finalmente ubicar la ubicación (valga la redundancia) de el archivo a reproducir.
5) Cuando ya tenés la ubicación, lo único que queda es, justamente, reproducir el archivo.

CCS contiene un driver para FAT16 que puede simplificarte un poco la tarea. Cabe aclarar que solamente funciona en PIC18 dado que consume demasiada memoria (tanto RAM como ROM).

Espero haberte ayudado. Saludos, Mr. Hell.