TODOPIC

Microcontroladores PIC => dsPIC => Mensaje iniciado por: Zaphyrus en 04 de Noviembre de 2006, 04:10:03

Título: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 04 de Noviembre de 2006, 04:10:03
Voy a iniciar este nuevo tema que viene del post "Virtud de los dsPic ???????" iniciado por Automata78:

http://www.todopic.com.ar/foros/index.php?topic=14527.0

En donde se empezó a hablar de hacer un reproductor de mp3 con los DSP de Microchip. Se está planteando hacerlo con dos dsPic porque la potencia del mejor modelo no alcanza (como especificó Darukur).
Hace unos dias Darukur me comento sobre escribir "codigo segmentado", acá el enlace:

http://www.todopic.com.ar/foros/index.php?topic=14527.msg89279#msg89279

Tomamos la loca idea de usar 2 dsPic para hacer el trabajo. Esto sería como el uso de sistemas multiprocesador con el uso de memoria compartida como ser la arquitectura NUMA (http://en.wikipedia.org/wiki/Non-uniform_memory_access) y COMA (http://en.wikipedia.org/wiki/Cache_only_memory_architecture) pero más sencillo. En otro post de este tema voy a explicar un poquito de cada una. No me acuerdo bien ahora, así que si me equivoco me pueden avisar :)

Como objetivos del proyecto se destacan:


Dejo a continuación los interesantes enlaces que presentó Marcelo en el post mencionado más arriba:

Citar

Proyectos de MP3 http://opencircuits.com/Music_Player

Pagina de "los que saben" de MPeg
http://www.tnt.uni-hannover.de/project/mpeg/audio/#mpeg7

http://www.chiariglione.org/mpeg/standards/mpeg-1/mpeg-1.htm

Pagina con conceptos de MP3 http://www.tnt.uni-hannover.de/project/mpeg/audio/faq/mpeg1.html#1-7

Pagina de tecnologia para MP3 http://www.mp3-tech.org/

MAD player (MPEG AUDIO DECODER) http://www.underbit.com/products/mad/

La info de MADLLD  http://www.bsd-dk.dk/%7Eelrond/audio/madlld/

Al encontrar más información la subiré a este tema.

Saludos.
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 04 de Noviembre de 2006, 10:16:08
Listo, se empieza la carrera, en poco tiempo consigo los DSPIC.

La parte de manejo de MMC y sistema de archivo ya esta. El problema es que lo desarrolle para el RTOS Salvo para PIC18 y todavia no consegui el SALVO para DSPIC.
Lo primero a ver seria el codec de MPeg1 L3. en su version MADLLD que es mas pequeña que MAD, estuve viendo y no caso un futbol.

Saludos.
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 04 de Noviembre de 2006, 10:19:33
La idea seria usar un DSPIC como el MASTER que contiene la parte de mas alto nivel y mientras este desarolla tareas le tira otras al otro DSPIC (EL SLAVE)  de mas bajo nivel, que debe resolver en tiempo y forma para que haya exito.
La idea seria procesar ciertos "layers" en un DSPIC y otros en el otro pero dichos layers no estan totalmente separados en capas como dicen.
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 04 de Noviembre de 2006, 11:38:09
Confirmadisimo Zaphyrus:
A menos que lo esten overclockeando, los DSPIC30 rinden 30 MIPS maximo y los DSPIC33 40 MIPS.
Voy a pedir DSPIC33, si sobra (cosa que no creo) despues se usara los de 30 MIPS.
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 04 de Noviembre de 2006, 13:19:01
Buenisimo, hay que ver el dinerillo que nos van a salir los dsPic33 :)
Con respecto al sistema operativo ¿no sería mejor usar uno libre como el PICOS? De pasada aprendemos a usarlos bien y no te olvides que el PICOS cumple con las normas de la inductria automotriz alemana/francesa OSEK/VDX que nos puede beneficiar para un proyecto futuro. Además que no estas pendiente de las desiciones de una empresa con respecto a un producto (si soy defensor del software libre :))

Voy a buscar info sobre la arquitectura de memoria compartida para sistemas multiprocesador y luego la posteo.

Saludos.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 04 de Noviembre de 2006, 22:39:17
Si te entiendo , tambien podriamos ver el FreeRTOS.
EL asunto es la comodidad de tener el manejador de archivos ya hecho, je  :)
En fin si no se puede deberemos rehacerlo para otro RTOS, por ahi en modo preemptivo y nos consume menos memoria. :-/ :mrgreen: :-/
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Chaly29 en 05 de Noviembre de 2006, 05:40:38
Hola Zaphyrus, como aporte solo podría hagregar que en ves de usar el sistema de archivos FAT16 (que ya hace unos cuantos años a pasado a ser obsoleto) usaras el actual y mucho más util FAT32.

Un saludo.

Atte. CARLOS.
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 05 de Noviembre de 2006, 11:10:11
Hola Charly29, comenté el FAT16 porque Darukur ya lo tiene andando pero si lo debemos implementar de nuevo por cambio de RTOS seguro que vamos a pensar en hacerlo FAT32. Es lo mejor como decis porque si vamos a hacer algo complicado es mejor que lo hagamos completo  :)

Darukur no creo que cueste portarlo a otro RTOS, de última en las primeras etapas tomamos un PIC18 con una MMC y lo usamos tipo módulo como si fuera una disquetera y más adelante vemos portarlo al dsPIC.
Con respecto a los RTOS es atrayente hacerlo en forma preemtiva, acá dejo algunos comentarios sobre los sistemas operativos:


Bueno hay que tomar una decisión pero la debemos pensar bien.

Me estoy entusiasmando :-/

Saludos.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 05 de Noviembre de 2006, 11:46:15
Como prometí antes voy a hablar un poco de los métodos para compartir memorias en los sistemas con multiprocesadores.
Hay 3 métodos:


En este caso con 2 dsPIC vamos a tener la memoria distribuida o NORMA pero se puede hacer también con el sistema MASTER-SLAVE como dijo Darukur.

Saludos.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 05 de Noviembre de 2006, 12:36:19
Darukur, estuve mirando la página de Microchip y cuando pidas los PIC30 PDIP fijate que algun tenga DCI para este proyecto. el único que me convence es el dsPIC30F4013 que tiene DCI con 2K de RAM y es el más grande siendo PDIP.
Con respecto a los PIC33 también tené en cuenta eso, además tenemos un problema porque el encapsulado es TQFP y sabés los problemas que tuve con la PCB del proyecto que estoy haciendo. Pero no importa pedí algunos para este proyecto ya veremos como lo arreglamos.

¿Que hacemos con el DAC, miramos el que usaron en el MintyMP3?

¿Alguien sabe si hay algún dsPIC con USB? Si no hay se podría usar un 18F2550 para el manejo de la MMC y de pasada usar la conexión USB para bajar los Mp3 a la tarjeta.

Saludos.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 05 de Noviembre de 2006, 13:14:28
Estoy leyendo un poco de la información sobre MP3 y no encuentro nada de matemáticas ni algoritmos, lo único que encuentro son referencias a patentes. Habrá que estudiar el código fuente de MAD porque las MADLLD hasta donde pude ver es un código de demostración de como usar las MAD.

Saludos.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 05 de Noviembre de 2006, 13:36:08
Ohhh mama, esto va estar complicadito. Estuve leyendo un poco del código de MADLLD y de MAD y se pone dificil la cosa. También en:

http://www.mp3-tech.org/programmer/decoding.html

hay más código fuente de programas y en:

http://www.mp3-tech.org/programmer/docs/index.php

hay algunos paper que me voy a poner a leer ahora.

Tengo una preocupación, ¿nos alcanzará la RAM de los dsPIC para usarlas de buffer o vamos a tener que hacer algunos trucos?

Saludos.

Martín

Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 05 de Noviembre de 2006, 19:25:47
He estado leyendo algunos papers y el más interesante y que hacen optimizaciones en los algoritmos es este:

http://www.mp3-tech.org/programmer/docs/exjobb.pdf

Recomiendo que lo lea el que este interesado en el tema, está muy bien explicado y muestra los pasos que se deben seguir para la decodificación de Mp3.

También hacen una tabla del uso de la memoria de datos (RAM) y no quiero desilusionar a nadie pero después de todas las optimizaciones que hicieron utilizaron 6029 words (no bytes!!!) (pag. 48). Así que viendo los dsPIC él único que nos serviría 2 dsPIC30F6012A con 8192 bytes que incluye DCI pero mirando mejor los dsPIC33 está el dsPIC33FJ128GP306 que tiene 16384 byte de datos y tiene un rendimiento de 40 MIPS (este me gusta lástima que sea TQFP64 :?).

Lo bueno es que el decodificador trabaja con arrays y el funcionamiento es tipo pipeline. Por lo tanto se puede usar 2 dsPIC para hacer distintas tareas. Como buena noticia es que en el peor de los casos la potencia necesaria es de 20 MIPS (con punto flotante) siendo el archivo MP3 joint stereo a 48Khz y un bitrate de 320kbits/s, y quizás es posible realizarlo con un dsPIC pero tenemos la falencia de la memoria de datos.

Voy a leer algo más y luego voy  hacer un post con los pasos a seguir en la decodificación.

Saludos.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 05 de Noviembre de 2006, 21:53:39
El algoritmo Huffman es el utilizado en la codificación y decodificación en MP3. Como no tengo idea todavía de como se genera no voy a hablar al respecto.
A continuación pongo los pasos del proceso de decodificación de los frames(traducción del documento que puse antes):


Puff bueno este es el algoritmo en general de la decodificación de Mp3. Si les interesa la codificación pueden leer el documento que recomendé la última vez, esto es una parte de ese paper y está incompleto.

Quiero comentar también que todas las transformadas usan cosenos y el valor Pi. Hay que ver como se lleva todo esto de punto flotante a punto fijo, por suerte está este paper que habla de ello:

http://www.mp3-tech.org/programmer/docs/thesis_lai.pdf

Bueno voy a seguir de a poco con la investigación. Espero que les haya servido.

Saludos.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 06 de Noviembre de 2006, 08:18:11
Muy buena la info Zaphyrus, como comente, viste que los layer son totalmente dependientes?

Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 06 de Noviembre de 2006, 08:57:17
Cada layer es una transformación distinta, solo en algunos casos se necesitan 18 muestras de salida anteriores como en el IMDCT. Ahora otra dependencia de datos no me acuerdo porque estoy medio dormido.
Me hice un matete terrible, leí 5 papers y cada uno lo encara distinto por las optimizaciones. Usan tablas de búsqueda, aproximaciones con polinomios y algoritmos rápidos desarrollados por otra gente.
Lo que me preocupa más son los cosenos pero hay buenas optimizaciones en esos papers.

Saludos.

Martín :-/
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 06 de Noviembre de 2006, 11:30:11
Ya te cuento que por arriba de 48 Kbytes de memoria de programa o por encima de 30 MIPS estamos hablando de encapsulado SMD.
Igual es evidente que por ruidos va a tener que ser doble faz en SMD con un buen plano de masa.
EN PDIP esto no va a andar.
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 06 de Noviembre de 2006, 11:37:23
Si tenes razón, lo mejor sería usar el dsPIC33FJ128GP306 como comenté antes pero ¿de donde sacamos la fabricación del PCB? Acá en Mar del Plata no creo que haya nadie que las haga, las podemos hacer con plaquetas fotosensibles ya que tengo la insoladora pero las de fabricación nacional no alcanzan a esa resolución. Nos vamos a tener que gastar algún dinerillo en comprar plaquetas fotosensibles importadas o madarlas a hacer a Bs As.
Recién vengo de las casas de electrónica y otro problema que tengo es que no consigo el integrado 74AHC126 para poder programar los dsPIC de 3.3v con el ICD2 USB. ¿Podrás conseguir alguno?

Me olvidaba, si usamos el dsPIC33FJ128GP306 creo que le da la potencia suficiente para decodificar Mp3. Eso sí la interfaz para la MMC la vamos a tener que poner en otro PIC y no usar RTOS en el dsPIC.

Saludos.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 06 de Noviembre de 2006, 14:22:10
Ya veremos el tema PCB, te comento que lei los dos PDF del POST y casi se me quema un fuse en el cerebro.
Cuando pueda busco las carpetas de "procesamiento digital de señales" que habia un monton de FFT y MDCT y IMDCT.
En fin tenias razon aca hablan de 20 MIPS para descomprimir MPEG layer 3 (sumemosle unos mips para la FAT e igual alcanza)
Nos tenemos que reunir asi le saco el oxido al cerebro con respecto a filtros FIR y transformadas y demas.
Que verguenza!

Saludos
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 06 de Noviembre de 2006, 14:46:27
Darukur, me parece que vos me vas a tener que dar clases de MDCT y IMDCT porque a esa materia le esquivé la puerta y no la hice ya que para mí era optativa. Ya sabemos que no es tarde para aprender.
El PCB es todo un problema pero tomemos uno a la vez.
Con respecto a los 20 MIPS fijate que lo hacen con optimizaciones en detrimento de la calidad y que se debe superar un índice para ser un decodificador de precisión total (full-accurate decoder). Se define un decodificador de precisión total a aquel en donde el RMS (Root Mean Square) entre la referencia y la señal decodificada debe ser menos que (2^-15)/(sqrt(12)) realtivo a fondo de escala cuando se está decodificando un señal seno dada. Para una salida de 16bits la media RMS debe ser menos que 0.577 y la diferencia máxima absoluta no debe ser mayor a 4.
Por lo tanto, con respecto a los 20MIPS, creo que no vamos a poder usar un RTOS y no sé si se va a poder poner algunas rutinas para el manejo de la MMC. Hay que ver bien.
Estoy preocupado con el famoso Huffman ya que estas son un conjunto de tablas que no he podido encontrar todavía. No sé si esa información viene en el side information o hay que tenerlo en la memoria para procesar.
Si podes averiguá sobre el 74AHC126 sino no se como vamos a programar los dsPIC33.

Salutes.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 06 de Noviembre de 2006, 15:03:48
Tema compresion HuffMan, estas de parabienes.
Tengo un manual sobre algoritmos de compresion que le vengo esquivando de lo lindo.
Tiene como 600 paginas y es incomible, creo que te lo habia comentado.
En fin ahi tenemos todo acerca de este tipo de compresion en donde la longitud de la palabra en bits depende del indice de aparicion del mismo en los datos (la menor longitud a la palabra mas repetida y la mayor a la menos repetida)
= empecemos por tener micros, hacer placas probar lectura de wav y despues vemos el resto.
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 06 de Noviembre de 2006, 15:32:01
Listo, después a la tarde vemos el asunto de los dsPIC. ¿No sabés para cuando pueden estar en Mar del Plata los micros?
Yo no tengo ningún conector MMC así que también tengo que resolver esto.

Nos vemos a la tarde.

Salutes.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 06 de Noviembre de 2006, 19:41:25
Tincho, me parece que podríamos usar el PWM para generar el sonido como una primera prueba (espero que tenga 2 el micro para ambos canales)
Creo que el periodo deberia ser al menos 8 veces superior a la max frec de representacion.
Tambien para las primeras pruebas podriamos levantar un wav de baja calidad.
Los DSPIC33 van a tener que esperar, ya hicieron aca el pedido de micro a IBARS y no se cuando va a ser el proximo.

Salute
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: BrunoF en 06 de Noviembre de 2006, 21:35:28
Hola Darukur.
Gracias por pasarme el link a este hilo.
Si necesitan ayuda puedo hacerlo, pero no programo micros en C...solo ASM.

Saludos.
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 06 de Noviembre de 2006, 22:59:32
Hola BrunoF, gracias por la ayuda y bienvenido!!!. La verdad es que yo no tengo idea de los dsPIC ni en C ni en ASM pero nunca es tarde para aprender.
Al parecer, por lo que hablé a la tarde con Darukur, vamos a mezclar C con ASM. Con C vamos a manejar la estructura general y con ASM vamos a optimizar las rutinas de las transformadas y el algortimo Huffman. Ahora tenemos el problema de que no conseguimos los dsPIC pero mañana voy a hacer unos llamados a la Capital para ver si tienen en stock.
Hay que tener en mente que las transformadas se calculan con punto flotante y el dsPIC es de punto fijo así que hay que investigar la forma de hacer los cálculos sin perder exactitud. ¿Se complicará esto en ASM?

Marce (Darukur) está buena la idea de los PWM, no se me había ocurrido pero hay que tener en cuenta que no se debe desincronizar el flujo de bits. Para ellos en los paper usan una FIFO que se conecta con el DAC para optimizar el proceso. Si queres empezar con los wav para probar los PWM me parece bien. ¿Hay alguna rutina para reproducir wav?

Salutes.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 07 de Noviembre de 2006, 10:03:36
Mira el manejador de archivos esta hecho, solo hay que entender el contenido, mas que nada la cabecera que da info del bitrate, etc.
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 07 de Noviembre de 2006, 14:21:33
Listo, cuando me desocupe de hacer la PCB y el gabinete del proyecto me pongo a hacer una introducción sobre la codificación de Mp3 y como es el contenido de los archivos. Pero antes voy a repasar los papers para no errarle.
Con respecto a la PCB, Nocturno terminó de hacer la placa base del entrenador de PIC/dsPIC y ahora está haciendo la placa donde van los microcontroladores:

http://www.todopic.com.ar/foros/index.php?topic=14680.0

Me parece muy buena la idea, además hizo la placa por una sola cara y por lo tanto es más facil de fabricar.

Saludos.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 07 de Noviembre de 2006, 23:17:51
Dale lo espero.
Vamos a ver si levanto nuevamente el sitio y ponemos todos los progresos, fotos, codigo fuente y PCB.

Pero necesito ayuda, vos sos el WEBMAN!!
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 08 de Noviembre de 2006, 14:40:58
Tan WEBMAN no soy!!! Aunque estuve investigando el Dreanweaver al final lo abandoné porque no me gusta demasiado el diseño de páginas web. Todo lo que hice en internet se lo debo a google :mrgreen: , como ser blogspot donde tengo mi blog y googlepages donde está mi proyecto. Es muy sencillo hacer una página web con la ayuda de los diseñadores de google, por eso son lo que son.
Pero prometo hacer el esfuerzo :)

Salutes.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 08 de Noviembre de 2006, 17:08:05
¿Alguien conoce un buen libro de DSP que sea didáctico, llevadero y resumido? Por ahí estoy pidiendo mucho pero es que necesito toda la información rápido para este proyecto.

Salutes.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 08 de Noviembre de 2006, 22:56:33
Martin, no se si ni siquiera que carax baje pero te comento que del doc ese con links que me pasaste baje como 6 libros de Digital signal procesing y D.S.Procesors

Despues los empezamos a mirar, no se en que momento, vos sabes nuestros tiempos  :(
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 09 de Noviembre de 2006, 00:53:17
Si, tenes razón. Bajo tantas cosas que me olvido de todo lo que tengo, por ahí en mis 50 cds de "todo ebooks" hay algo pero quería saber de alguién que haya leido algún libro de DSP interesante.
Con respecto a los tiempos sabés que tengo mi PYME en casa y el inversor rondando a cada rato  :mrgreen:. Tengo que terminar el bendito gabinete para mañana y ensamblar la mecánica, por suerte Charly me va a dar una mano.

Salutes.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 09 de Noviembre de 2006, 01:11:49
Pufff ya encontré a la biblia sobre DSP:

Proakis - Digital Signal Processing - Principles, Algorithms & Applications

Libro de 1000 páginas, para imprimirlo y leerselo en una noche :)

Voy a ver si me preparo unos pochoclos y me siento a leerlo en la PC :)

Salutes.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 09 de Noviembre de 2006, 08:41:43
Che en ese doc baje no uno sino SEIS manuales de DSP!
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 09 de Noviembre de 2006, 21:26:27
Si los voy a mirar. ¿Qué pasó al final con el PWM?

Por suerte ya termino el gabinete y mañana ya estoy listo para agregar más info al proyecto. Voy a empezar de cero ya que lo que escribí sobre el decodificador quedó medio descolgado.

Saludos.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 09 de Noviembre de 2006, 22:27:05
Encontré nuevos enlaces con información:

http://www.psionics.demon.co.uk/mp3/mp3links.html
http://www.vlsiip.com/mp3eater.html
http://www.es.lth.se/home/tlt/dicp/2002/download.html

Cortesia de EdaBoard.

Saludos.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 10 de Noviembre de 2006, 09:11:43
Buenisim, despues lo miro.
El tema del PWM es asi:
Tiene 16 bits de resolucion maximo, que es dependiente de la relacion entre la frec del oscilador y la del timer que uses.
Se necesitan al menos 8 ciclos de PWM repetidos para asegurar un valor continuo para el ROC.
Si queremos 44100Hz para frecuencia de muestreo, necesitamos 352800Hz de freq de PWM con lo que la frec de Clock deberia ser para tener 16 bits Fclock=2^16*352800=23121100800, no da no?
Ademas 352800Hz tiene para 1bit  menos de 3uS de duracion la anchura del pulso, imaginate el tipo de capacitor que necesitas para que tome ese pulsito.

En fin, con el PWM se puede hacer formas de onda pero no para lo que queremos.
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 10 de Noviembre de 2006, 11:16:24
Ja 23GHz, ¿usamos nitrógeno líquido? :mrgreen:
Estuve mirando el DAC del MintyMP3 y usan el CS4340. Enlace:

http://web.media.mit.edu/~ladyada/make/minty/hardware.html

Salutes.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 10 de Noviembre de 2006, 14:39:58
Estoy dando vueltas por el foro de EdaBoard para ver si obtengo más información para el MP3 y acá encontré la forma de que una persona hace los algortimos para los DSP:

Citar
For instance, Porting MP3 Decoder on DSProcessor using assembly language.
(1)Floating Point C
(2)Discriminating tables,gobal variables,local variables,buffer from floating point c.
(3)Transforming 2/3 dimension variables/tables to one dimension array or point.
(4)Observing the values of table,gobal variable,local variable to define
integer/fraction precision using Q format.
(5)Using "printf/fprintf" watchs the precision to avoid overflow.
(6)Rearranging Q format.
(7)Transforming fixed point c to DSP assembly language.

Enlace:

http://www.edaboard.com/viewtopic.php?t=109517&highlight=mp3

¿Alguien sabe que es "Q format"?

Saludos.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 11 de Noviembre de 2006, 14:47:46
Me auto respondo 8)

Estuve investigando el motor DSP de los dsPIC y usa este formato de Q Format. Así que es importante que lo sepamos para el reproductor así le sacamos el jugo en assembler :)

Acá dejo una traducción que encontré en un PDF en internet llamado "Introduction to DSP" de la University of Hertfordshire:
Citar
Notación Punto Fijo:

Algunas veces llamado notación de punto fraccional o Q format, usa un punto binario implícito para representar fracciones binarias. Este punto siempre se mantiene en una locación fija. El rango dinámico de un procesador es el rango entre el número más pequeño y más grande que se puede representar.
En un procesador de 16 bits, el rango dinámico es 32767 a -32768. Tal pequeño rango dinámico puede facilmente crear overflow. Por ejemplo, 1000*1000 = 1000000, el cual es un overflow.
Sin embargo, si el rango numerico es limitado, o más precisamente escalado, de 1 a -1, una multiplicación nunca podría producir overflow. Por ejemplo, la multiplicación de 2 números fraccionarios dentro del rango de 1 a -1 debe siempre producir un resultado que es también una fracción. El resultado por lo tanto es confinado dentro del rango de 1 a -1.
Desafortunadamente, sumas sucesivas puede producir valores de overflow fuera del rango de 1 a -1. Este punto debe ser recordado cuando se realiza aritmetica de punto fijo.
El procesamiento de señales son sumas y multiplicaciones intensivas. Un overflow puede tener consecuencias serias (por ejemplo  recorte de una señal). Un sistema de punto fijo puede resolver este problema revisando el overflow después de cada operación matemática, o conociendo que la entradas y salidas de la operación son bien manejadas.

Notación Q de Punto Fijo:

El principio de la notación Q es la aplicación de un simple coeficiente de escala para convertir fracciones en enteros para que DSP de punto fijo pueda manejarlos. La letra Q significa "Cantidad de bits fracionales" (Quantity of fractional bits) y el número que sigue la Q indica el números de bits que son usados por la fracción. Esta divide el número en una región superior y una inferior de bits donde la región superior contiene el bit de signo y cualquier valor entero, y los bits inferiores contienen la fracción.
Cualquier formato Q es posible, pero Q15 es el más ampliamente usado en los DSP de 16 bits y Q31 es mas conmunmente usados en los DSP de 32 bits. En el formato Q15, un punto decimal imaginario es colocado entre los bits 15 y 16. El rango superior en este caso es un solo MSB (para los DSP de 16 bits) el cual es esencialmente un bit de signo, o bits 16-31 en un DSP de 32 bits. Los restantes 15 bits son usados para representar la parte fracionaria del número. Para convertir un entero en formato Q a un valor de punto flotante un coeficiente de escala es necesario. Si el número Q es 15, el coeficiente o resolución de la fracción será 2^-15 o 30.518e-6.

Rango dinámico en Q15:

El rango dinámico es el mismo para Q15 que para los enteros normales. Es el coeficiente de escala el que diferencia las 2 partes y por lo tanto se puede tener dificultades para saber el formato en uso. Como se mencionó anteriormente, para prevenir el overflow de las entradas y salidas puede llevarse a fracciones del rango de 1 a -1 simplemente aplicando el coeficiente de escala.

Representación numerica en Q15:

Escalar un número es simplemente:

Entero = Número_Fraccional_Q15 * 2^15


Rango dinámico:
Número                               Mayor       Menor
Número fracionario               0.999              -1
Entero escalado por Q15       32767       -32768



En otro post voy a seguir con las reglas del uso de este formato.

Saludos.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 11 de Noviembre de 2006, 16:49:13
Sigo con las reglas del uso del formato:

Citar
Reglas para las operaciones:

La mas importante regla para el uso del formato Q15 de punto fijo es evitar el uso de número mayores de 1 o menores de -1. Si multiplicamos 0.5 y 0.45 el resultado es otra fracción. Multiplicando el producto por 2 puede ser realizado usando 2 métodos. Un método es multiplicar primero una de las entradas por 2, si el resultado de la operación intermedia excede +/-1.0 tendremos un problema. Las entradas pueden ser primero escaladas para abajo y luego escaladas para arriba más tarde, pero esto está lejos de ser eficiente. Una alternativa al método es sumar el producto a si mismo.
Estas es una de las dificultades de usar operaciones de punto fijo. El programador debe pensar acerca de estos problemas y planear con anterioridad.
Otra importante regla es que todos los números deber ser escalados al mismo formato Q (Q15 en nuestro ejemplo), colocando el punto decimal en ambos operandos en el mismo lugar, antes que la suma o resta es realizada. Generalmente esto también es praticado en la multiplicación. Sin embargo, mezclar formatos Q no es deseado.

Suma en Q15:

Decimal               Q15                            Re-escalado Q15/32767
0.5+0.05=0.55     16384+1638=18022     0.55
0.5-0.05=0.45      16384-1638=14746      0.45

En la tabla de arriba vemos la suma en Q15. Los números 0.55 y 0.55 son cada uno escalados por 32767 (coeficiente Q15) y luego sumados. Dado que los números son escalados con el mismo formato Q, el punto decimal en ambos estará en el mismo lugar (bit 15). La suma es luego re-escalada para verificar el resultado.
En el segundo ejemplo vemos la resta.       

Multiplicación en Q15:

Cuando los números escalados son multiplicados, el coeficiente de escalado es multiplicado. Para compensar, un segundo factor de escala que pondrá los datos en la posición de bit correcta es usado. La muestra de la multiplicación en Q15 da una idea de cuan grande el número puede ser. Pero como podemos también ver, la división por el coeficiente Q15 escala el número de vuelta y da el resultado correcto.
Anticipando esto, la multiplicación sobre un DSP de 16 bits produce un resultado de 32 bits. En realidad, el resultado es empaquetado dentro de los bits superiores y viene con 2 bits de signo. El programador puede desplazar un bit hacia la izquierda antes de almacenar los bits superiores, los DSP estan actualmente optimizados para realizar esta operación y luego almacenar el dato.
Podemos ver como la multiplicación Q15*Q15 funciona. En particular cuando los coeficientes de escala son multiplicados el resultado es una nueva constante de escala con un valor de Q igual a la suma de las 2 constantes Q usadas en los operandos.

Dado A y B en el formato Q15, el resultado C=A*B es:

C=(A*2^15)*(B*2^15)=A*B*2^30
C=(A*Qx)*(B*Qy)=A*B*Qx+y

Es evidente que la salida no es mas un formato Q15. Para compensar esto, necesitamos preguntarnos donde está el nuevo punto decimal. Notando que 2^30 es lo mismo que decir Q30, sabemos que el punto decimal está en el bit 30 del resultado de 32 bits. Para regresar a Q15 (2^15) debemos multiplicar por 2^-15 (desplazamiento hacia la derecha por 15).
El formato Q de punto fijo tiene la ventaja de prevenir overflows pero introduce complicaciones para los progamadores de DSP.

Bueno espero que se haya entendido.

Saludos.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 12 de Noviembre de 2006, 16:16:51
Darukur, que te parece empezar con grabación PCM y lo usamos con el código que tenes para el FAT16. Es decir, grabamos algo, lo guardamos en la MMC y luego lo reproducimos. De esta forma cubrimos una de las características que tienen algunos reproductores de MP3 de grabar conversaciones.
Creo que es una buena manera de entrar en calor para lo que viene después.

Navegando llegué a esta página sobre experimentos con DSP. Con un simple microcontrolador Atmel ATtiny26 hace Delay, Echo, Pitch Conversion. Muy interesante:

http://elm-chan.org/works/vp/report.html

Saludos.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 13 de Noviembre de 2006, 08:51:33
Estuve leyendo lo que posteaste, muy bueno. Me quedo claro.
Sip, vamos a leer primero un WAV y mandarlo a un DAC casero.
Salute
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 13 de Noviembre de 2006, 18:05:56
Acá dejo algunos enlaces más sobre MP3:

http://datacompression.info/MP3.shtml
http://www.mpeg.org/MPEG/audio.html

Y en esta página están los test que se le realizan a los codificadores y decodificadores de MP3:

http://web.archive.org/web/20020413110354/privatewww.essex.ac.uk/~djmrob/mp3decoders/tests.html

Con respecto al wav hay que investigar como es el formato de archivo. Este paso lo podemos realizar en un PIC18 para ir adelantando.
¿El DAC casero que comentas es el R2R?

Salutes.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 14 de Noviembre de 2006, 08:57:56
Err, el R2R o el otro que no me acuerdo el nombre en donde cada resistencia es el doble de la anterior.
Obviamente el segundo depende de la precision de las resistencias.
Dale. Estoy entusiasmado.
PD: Que manera de chivar en el GYM!
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 14 de Noviembre de 2006, 12:54:53
Dale, lo hacemos con las resistencias y luego vemos si conseguimos algún DAC. Estuve leyendo un poco de Ogg/Vorbis el cual no está preparado para el mercado embedded, así que no sirve para reproductores portatiles salvo que tenga bastante potencia de cálculo.
Hay que empezar a planear el desarrollo del reproductor de wav, nos podemos juntar el fin de semana. Eso sí hay que encontrar info de los archivos wav.
Acá dejo un enlace al conversor R2R que tiene un estudio sobre los errores con repecto a la señal original:

http://www.nomad.ee/micros/r2rdac.html

Salutes.

Martín

PD: Con los días más calurosos el GYM va a estar terrible, vamos a tener que llevar botellas de agua de 1 lt.
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 14 de Noviembre de 2006, 14:38:55
Vos llevaras botellas de un litro, yo malla porque me empapo de la transpiracion  :D
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 14 de Noviembre de 2006, 14:48:10
 :D :D :D :D

Mirando el foro de dsPIC encontré una nota de aplicación sobre grabadora de sonidos digtal, es de Atmel pero puede ser interesante. Utilizan el PWM para reproducir los sonidos.
AVR 335 Digital Sound Recorder:

http://www.atmel.com/dyn/resources/prod_documents/doc1456.pdf

Actualización:
Acá encontré una librerías para el dsPIC30 con filtros y transformadas que nos pueden servir para el MP3:

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en023598

Salutes.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 14 de Noviembre de 2006, 16:03:10
Para trabajar con DPIC33:

(http://img156.imageshack.us/img156/1097/icspheader3bx5.png)

Sino en Edaboard todo el tema de manejo del clonico a 3V3:

http://www.edaboard.com/ftopic176893-0-asc-0.html
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 14 de Noviembre de 2006, 16:41:31
Espectacular!!!!!!  :-/  :-/  :-/

Y yo renegando que no encontraba el 74AHC126 para el ICD2-USB. Ahora la cuestión es ver si conseguimos ese integrado.

Saludos.

Martín

PD: ¿No se podrá pedir muestras a Maxim o nos tiene en la lista negra como Microchip?
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 14 de Noviembre de 2006, 17:21:57
PD: ¿No se podrá pedir muestras a Maxim o nos tiene en la lista negra como Microchip?

Vale la pena intentar, mañana me fijo. Hoy termine de "hermosear" el gabinete del ICD2 y le baje la cte de la Resistencia de USB que tiene led blanco que me perforaba el ojo.
Este finde hacemos asado y reunion.
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 14 de Noviembre de 2006, 17:51:35
Bueno, pero no te apures asi vemos si podemos pedir otros modelos. Creo haber visto por EdaBoard otros integrados útiles.

[OT] A mí el gabinete del ICD2 me quedó maso porque el invento de la varilla transparente para transportar la luz de los LED desde el PCB para afuera no me quedó alineada. Y sí, es el segundo gabinete que monto en menos de una semana, las manualidades no son mi fuerte. Acordate que ayer casi pierdo un ojo por las virutas de plástico que se me metieron gracias al torno.

Salutes.

Martín

PD: [OT] A...sa...dito, a...sa...dito, a...sa...dito!!!  :-/  :-/  :-/

[OT] = Otro tema
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Rulo en 14 de Noviembre de 2006, 18:55:14

      Por aca les dejo un documento de Word, el cual trata sobre los archivos WAV, este me fue de mucha utilidad para comprender el formato y generar un archivo wav (en aquel entonces con el 8051 y un CAD externo  :D).

       Bueno, espero les sirva para lo que quieren realizar.


                  Saludos  :mrgreen:
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 14 de Noviembre de 2006, 22:15:22
Rulo, muchísimas gracias!!! :)

Era lo que estábamos buscando!!!

Estamos empezando con algo igual a lo que vos hicistes para entrar en calentamiento para este lio que es el MP3. Todavía tenemos que conseguir los dsPIC33, hacer una placa con sócalo TQFP64/100 con un producto para insolar que se pone en una PCB común, conseguir el sócalo para MMC y conseguir la MMC. Sí, un montón pero por algo se empieza.

Esto empieza a tomar ímpetud. Estoy motivado :-)

Cuando haya algo de código lo ponemos en el hilo.

Saludos.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 15 de Noviembre de 2006, 08:19:02
Gracias Rulo por participar!
Ya se va sumando gente!
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 15 de Noviembre de 2006, 10:32:52
Estoy leyendo la hoja de datos del núcleo del DSP y he visto cosas como:

-Utilizar la instrucción REPEAT (18 veces) para realizar la división. Lo leí por arriba pero se ve que la división está implementada en hardware por la mitad.
-Dependencias RAW (Read After Write) que utilizan una instrucción de stall interna pero no lo optimizan resolviendo la dependencia de datos internamente.

Depués de leer esto me dieron unas ganar terribles de diseñar el núcleo del dsPIC en una FPGA pensando mejoras como resolver las RAW con realimentación de datos internas (se utilizan algunos comparadores y multiplexores) y mejorar la instrucción de división. Lástima que la programación de FPGA no dé de comer en Argentina.

Saludos.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 15 de Noviembre de 2006, 11:06:43
Darukur, como puse en el hilo de dsPIC en Argentina:

Citar
Llamé a Cika y tienen los siguientes dsPIC:

-dsPIC30F2010 a u$s 9.30
-dsPIC30F3013 a u$s 8.74

Sobre los PIC24 no tienen nada y como un bolas me olvidé de preguntar el encapsulado.

Fijate si podes llamar y preguntar por los encapsulador porque tengo intenciones de comprar el dsPIC30F3010 ya que el envio a Mar del Plata sale 7 pesos por Chevalier.

Actualización: Por lo que veo el dsPIC30F3010 tiene encapsulados 28/SOIC, 300mil, 28/SPDIP y 44/QFN. Esperemos que sea el SPDIP!!!

Saludos.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 15 de Noviembre de 2006, 15:07:24
Bueno, ya tengo unos cuantos items listos.
-La notebook con MPLAB7.40 y el C.
-El ICD2 que anda jamon.
-Fenolico base, protoboard, conectores, micro, teclado, etc.
-Pense ya en hacer la fuente switching para usarlo sin importar la tension de entrada.
-Voy a ver si me compro la SD.


Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 15 de Noviembre de 2006, 15:26:39
Esperame para comprar la MMC y el sócalo si lo conseguis (lo podemos pedir a Cika, mañana llamo de nuevo). Yo estuve buscando algún tecladito pero en Free Electrón no tienen voy a ver si hay en otro lado.
La fuente switching tengo ganas de hacerla para tener una fuente de laboratorio pero me parece que voy a seguir los pasos de Redpic que usó una de PC que me va a salir más barato.

Saludos.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 15 de Noviembre de 2006, 15:33:08
No, me entendiste mal.  :?
La idea es alimentarlo con pilas (1 o dos AAA) y de ahi convertir a la tension necesaria.
El zocalo va a se el de disquetera por ahora.
PD: cd4511 tengo uno solo para darte...  :(
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 15 de Noviembre de 2006, 15:53:05
¿Ahh ya queres hacer portatil la cosa? La hacemos total ya tenemos el inductómetro y el integrado para la switching sale $1,50.
Por los CD4511 no te hagas drama porque estuve mirando y no sé si me van a servir.

Salutes.

Martín

PD: Estoy renegando con el ICD2-USB que no hay forma de que entre en modo debugger. Ni con el 18F452 ni con 16F877A. ¿Será que lo estoy usando con el Salvo y pasa algo raro? Antes con el ICD2-RS232 me andaba bien. Después de tanto laburo para hacerlo no anda, me frustro!!! :x :(

Actualización: Ya lo solucioné al asunto del debugger, era la bendita perilla esa para ponerlo en alta impedancia a las patas de programación!!! :) :-/
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 16 de Noviembre de 2006, 16:54:40
Estoy leyendo un tutorial para refrescar Fourier y ver un poco de DSP. Este tutorial tiene 167 páginas (más que tutorial es un libro). Acá está el link para bajarlo:

http://rapidshare.com/files/3033376/concise_dsp_tutorial.rar.html

Este tutorial proviene de DSPedia y System View.

Saludos.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Nocturno en 16 de Noviembre de 2006, 18:43:27
Muy interesante el documento. Precísamente buscando información al respecto he encontrado la segunda edición del mismo aquí:

http://www.ise.canberra.edu.au/un5354/concise_dsp_tutorial_print.pdf
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 16 de Noviembre de 2006, 23:17:27
Nocturno, muchas gracias!!! :)

Justamente estoy buscando este tipo de tutoriales porque leerme un libro entero me da pereza y no tengo el tiempo para hacerlo.

Saludos.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 19 de Noviembre de 2006, 22:50:13
Bueno despues de las pruebas de fuente switching del finde (con raviolada incluida) quedo pendiente las notas de aplicacion del MC34063A.
Bueno aca esta: http://intusoft.com/onsemipdfs/AN920-D.pdf

Estuve probando con Ct de 1nF y L de 50uH aprox y el tema parece ser la saturacion del nucleo y lo mal bobinado que estaba  :D
Otra cosa es que queriamos pedirle 300mA y eso representaba 1400mA de pico para el lado de los 3 volts, con lo que el diametro del cable tambien no era suficiente y se agregaba una resistencia parasita importante.

Otro tema era que no estabamos midiendo la diferencia con carga / sin carga y en el segundo caso lo dejabamos sin la carga minima de mantenimiento.

En fin, hay q seguir probando pero esta andando muy bien ahora. De dos pilas NIMH (2.6 V) estamos obteniendo 5 volts 200mA suficiente para empezar...

Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 19 de Noviembre de 2006, 23:48:30
Acá se aplica el archi-conocido y muy mencionado por vos:

"Más vale horas de prueba y error que minutos de lectura de libro..."

Creo que el fin de semana cumplimos a raja-tabla el dicho pero nadie nos va a quitar la diversión.

Salutes.

Martín

Actualización: Que decir que la hoja de datos la tengo en disco rígido. Te la alcanzo en el pendrive la próxima todo lo que tengo de fuentes switching. La nota de aplicación AN954-D trae un ejemplo, esto me pasa por no llevar todo lo que tengo a tu casa.
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 21 de Noviembre de 2006, 01:06:33
Estuve leyendo algunas revistas de Circuit Cellar y encontré un reproductor de MP3 con el título "Digital Audio Player" en la revista "Circuit Cellar 194- Signal Processing Septiembre 2006.pdf". Lo hacen andar con un ARM 7 a 60Mhz y gastan 40K de Flash ROM y 40K de RAM. El sonido es calidad CD (16bits a 44.1 Khz) con un DAC externo TLV320DAC26 utilizando una tarjeta SD.
Creo que vamos a tener que conseguir el dsPIC33 más grande para el trabajo y no se si uno nos va a alcanzar.

Esto me parece un reto grandísimo. Es como matar mosquitos escupiendolos, necesitamos potencia, precisión y punteria.

Salutes.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: J1M en 21 de Noviembre de 2006, 20:52:20
Bueno aunque vosotros vais por otros lares, os pongo por aquí una página (a mi parecer bastante buena) con 3 o 4 tipos de reproductores de MP3 con PIC:

http://www.teuthis.com

Saludos!
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 21 de Noviembre de 2006, 23:08:34
Gracias J1M!!!

A la página no la conocía y está interesante. Tiene hasta los códigos fuentes, los voy a mirar para saber como manejan la MMC.
Por lo que veo usan el compilador CCS-C, habrá que adaptarlo al C30.

Saludos.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 23 de Noviembre de 2006, 15:56:29
Tincho, lo mejor que podemos hacer es usar directamente un codec para la salida de audio, sino tendriamos que usar 2 DAC de 16 bits, con mucho cableado externo.
Los DSPIC soporten el protocolo I2S que por ejemplo lo utiliza el estandar AC97.
http://www.analog.com/UploadedFiles/Data_Sheets/AD1888.pdf
Fijate lo que es el codec este, tiene captura a 16 bits en estereo y salidas de 20 bits de resolucion.
De ultima podemos ver algun mothercito que seguro tiene este micro.
Lo bueno es que el cableado externo es minimo (4 cables)
Salute

PD: El unico DSPIC30 en PDIP que tiene el codec es el DSPIC30F4013 y lo tenemos en el trabajo   :mrgreen:
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 23 de Noviembre de 2006, 17:19:57
Marce, el protocolo I2S lo utilizan en el reproductor de la revista "Circuit Cellar 194- Signal Processing Septiembre 2006.pdf" que comenté y creo que es la mejor solución como decis. Cuando vaya a las casas de computación pido si tienen mother rotas para ver que podemos sacar.
Que bueno lo del dsPIC30F4013 quizás ya le podamos meter mano :-)

Salutes.

Martín

PD: Quizás hay que ver las mother de Pentium I
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 24 de Noviembre de 2006, 14:51:30
Zaphyrus, Vector me consigue unos mothers con un CMI9739 que es un chip AC97 de CMedia.

http://www.thelostboy.info/files/datasheets/CMI9739%206CH%20Audio%20Codec%20SPEC_Ver12.pdf

Ya tenemos algo mas. :-/
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 24 de Noviembre de 2006, 15:44:49
Excelente!!!

¿Ya estuviste usando el dsPIC?¿Lo pudiste programar con tu ICD?

Saludos.

Actualización: Ese chip tiene 6 canales, espectacular :-/ . Muy buena la hoja de datos!!!
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 07 de Diciembre de 2006, 08:53:36
Bueno, voy a agregar algo de lo hecho ya que lo tenemos medio olvidado al post.
Hasta el momento ya armamos y probamos:
-2 Fuentes switching de 3V a 5V (con 2.4V ya funciona pero el MC34063 debe usarse a partir de 3V) asi que estoy armando otra fuente con el TL499
-Alquisicion a 44100Hz, procesamiento en vector de datos y salida a un DAC R2R de 8 bits (eco reberverancia,etc)
-Lectura/Esctitura de MMC
-Manejo de sistemas de archivos FAT16.

-Ahora seguiriamos con lectura de aun archivo WAV...

Saludos

PD: SI alguien quiere despues pongo alguna foto, esquema o codigo....
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 07 de Diciembre de 2006, 10:53:17
Doy fé que todo va como la seda, ayer acabo de ver los avances de Darukur y me quedé sorprendido.
Yo estoy ocupado y me apena no poder ayudarlo.

Saludos.

Martín
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Nocturno en 07 de Diciembre de 2006, 13:40:46
PD: SI alguien quiere despues pongo alguna foto, esquema o codigo....

Yo quieroooooo
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Sispic en 07 de Diciembre de 2006, 15:09:21
FOTOS , FOOTOOOSSS ¡¡¡¡
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 07 de Diciembre de 2006, 17:33:42
Zaphyrus me vas a tener q prestar la camarita asi subo alguna fotito.
Despues pongo el codigo de prueba del ADC-TABLA-DAC, el circuito lo tengo q pasar a EAGLE  :? el codigo de la MMC-FAT16
tengo que ver si puedo subirlo  :mrgreen: y si es asi si alguien quiere mejorarlo.... :mrgreen:
Saludos y gracias por su interes
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 07 de Diciembre de 2006, 17:50:02
Bueno aca subo el codigo de la MMC-FAT16...
Le agregue un LEEME.TXT explicadno que lo subo solo con fines educacionales, si van a querer hacer plata con eso por favor avisen y repartan  :D.
Esta Hecho en PICC18 + SALVO RTOS 3.2.3
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 07 de Diciembre de 2006, 17:56:13
Con respecto a un de las etapas del reproductor de Mp3 es que utiliza compresion HUFFMAN para los bloques de datos...
Estuve viendo y eso consume memoria y procesador a lo loco...
Con un analisis minimo se requieren 4Kbytes de memoria solo para el arbol y sus nodos, un verdadero merengue, me duele la cabeza, odio a Huffman por tenerla tan clara y yo no...  :D
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 07 de Diciembre de 2006, 21:30:33
Bueno aca pongo las pruebitas del ADC-TABLA-DAC con R2R.
Hay 3 casos:
-Generador de onda de frecuencia variable de a pasos (remuestreo de tabla)
-adquisicon de señal de un mic electret y salida con Reververancia.
-adquisicon de señal de un mic electret y salida con eco (mas muestras y menos frec de muestreo)

PD: Si alguien quiere agregar info para hacer de manera simple un DAC de mas resolucion o incluso estereo con algun conocimiento soy todo oidos  :-/
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 07 de Diciembre de 2006, 21:52:11
Darukur, el fin de semana te alcanzo la cámarita ya que la otra mas grande se la llevó mi hermana para Bs As. No va a tener mucha calidad pero algo es algo.

Saludos.
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Nocturno en 08 de Diciembre de 2006, 02:08:48
Magníficas aportaciones Darukur.

He mirado el código por encima sin pararme demasiado, entre otras cosas porque es la primera vez que veo algo de C18 y Salvo, pero no he encontrado la parte de adquisición de datos y posterior reproducción de la tabla DAC.

¿En qué fichero está?

Por cierto, me encantó cómo se consigue el eco: :mrgreen:
Código: [Seleccionar]
     DAC_MIX=(DAC_TABLA[(DAC_IDX-1)&0x3FF]-DAC_TABLA[DAC_IDX])/2;DAC_MIX+=DAC_ACTUAL;\
     DAC_TABLA[DAC_IDX]=(signed char)DAC_MIX;\
     DAC_OUT=-127+DAC_TABLA[DAC_IDX++];TMR0IF=0;\
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 08 de Diciembre de 2006, 14:41:56
Nocturno, el codigo con salvo RTOS+PICC18 no tiene nada aun para reproduccion de sonido.
Esta prueba esta separada en los ejemplos posteriores de R2R.
El ejemplo del eco es el 2do que probe, ya que toma dos muestras pasadas para sumarlas a la actual, con lo que se genera un sonido muy particular (mas alla de lo feo que suena un DAC R2R de 8 bits)  :mrgreen:
Para un eco simple se ubica con la muestra actual un porcentaje de la muestra mas vieja.

Te comento que para q compile el ejemplo de FAT16 necesitas corregir el path para donde tenes instalado el SALVO.

Lo del ejemplo del DAC es medio mamarrachin (hecho rapido para ver resultados), lo que si me he dado cuenta que la velocidad maxima que estipulan de adquisicion es menor a la que logra, quise sacar 40Khz de muestreo y no le da, por eso es que adquiero cuando me deja sino repite ultimo valor.
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 08 de Diciembre de 2006, 19:33:00
Estuve probando el TL499 de Texas... Es excelente con solo 1.5 volts de entrada ya puedo tener los 5 volts estables en la salida con hasta 100 mA de corriente, y esto en un encapsulado SOIC de 8 pines... excelente.
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 09 de Diciembre de 2006, 20:11:10
Marce (Darukur) como ya sabes estoy viajando para Buenos Aires mañana domingo a las 6 de la mañana. También que mi tarea va a estar lejos de la pasión que es la programación de sistemas embebidos y que me será imposible darte una mano con el reproductor de MP3 que con tantas ganas iniciamos.
Desde acá darte ánimos para que continues la tarea y que me sorprendas la próxima vez que nos veamos. Por supuesto entraré al foro cuando me sea posible pero ya no podré participar como antes porque en el traslado se ma hace imposible llevarme incluso una PC. Digamos que voy casi con lo puesto y mis herramientas electrónicas quedarán en Mar del Plata.

También pido perdón por anticipado a aquel que me escriba un privado o responda algún hilo en el que participo ya que estaré desconectado por lo menos 3 meses.

Aprovecho para agradecer a la comunidad del foro TodoPic por recibirme tan bien y dejarme participar.

¡Muchas gracias!

PD: Marce, ya sabés que si se me presenta algo que te interese por allá te estaré informando.
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Joaquín en 27 de Diciembre de 2006, 08:25:56
Hola a todos.

Llevaba años queriendo hacerme mi reproductor MP3 y el otro día di con vuestro proyecto.

Me sumo a él si me deciis dónde conseguir los dspic en España, supongo que Nocturno ya los tendrá   :)

Os dejo un link del formato wav, actualmente estoy trabajando en un proyecto, también de sonido y los wav los tocamos bastante así que lo que os pueda solucionar preguntármelo.
http://ccrma.stanford.edu/courses/422/projects/WaveFormat/
Tenía otro link más pero parece ser que ha dejado de funcionar :-(

¿Cómo teneís pensado el tema de los DAC? Yo tengo en casa un cs4344 (dac) y un cs5340 (adc), lo que no sé es cómo hacerlos funcionar, no me aclaro con el I2S ni sé si lo puedo hacer con el 18F2250.

Si necesitais algo del wav me lo deciis.

Saludos y feliz Navidad.
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 27 de Diciembre de 2006, 11:34:41
Los dspic tienen manejo de codec para los CS4334 y similares (protocolo I2S). Para hacerlo con un 18F creo q vas a pedalear un poco mas.
Pido disculpas por no poner mas cosas estoy un poco complicado, apenas si arme la interfase LCD-TECLADO para este diseño preliminar. Hace dias que lo miro al equipo y todavia no me puse a hacer el controlador para el RTOS del LCD ALFANUMERICO y el KEYBOARD.
Uso un LCD alfanumerico y no uno grafico ya que el desafio esta en el manejo de la MMC, el sistema de archivos, el manejo de las señales digitales y queria usar lo menos posible en eso (codigo y tiempo).
Saludos
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Milo en 08 de Enero de 2007, 05:38:54
Buennass,

Aprovecho para felicitar a todos el año nuevo, y desearles que sus proyectos se hagan realidad,

Los dspic, matasonklo2, los puedes pedir a microchip si esta en samples, te lo envian gratuitamente y tardan casi nada. Si no estan como samples siempre puedes pedirlos alguna tienda electrónica de tu ciudad, otra opción sería que los pidieses en algún distribuidor, aquí en España en primero en distribuir componentes de microchip fue sagitron, esta es su página http://www.sagitron.es/. Espero que te sirva la información.

Saludos a todos,
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: gusa en 09 de Enero de 2007, 18:36:11
Hola  :-/, he estado mirando un poco todos los post y hay varias cosas que no me quedan muy claras. ¿ Podiais poner algún esquema del circuito y algún diagrama de bloques de todo el conjunto? ¿ O alguna explicacion más o menos global de como funciona todo?


Es que en la universidad he empezado (más que empezar ya estoy terminando) a estudiar  los Dsp´s pero los de Texas ( y eso sí en ensamblador nada de C :() y me parece muy buena idea tratar de montar  este invento para al menos ver que lo que se estudia sirve para algo y no es sólo teoría.

Gracias y un saludo.
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 10 de Enero de 2007, 08:22:54
Todavia no he armado nada del reproductor con DSPIC, solo con PIC18.
Esto es porque no tengo el RTOS SALVO para esta version.
Despues tendria que pasar un esquematico de lo que tengo armado.
Igual del programa ejemplo de uso de la MMC con mirar las definiciones de puertos se saca, el conexionado de la MMC lo podes sacar del mismo foro.

Saludos
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Velvet_Revolver en 18 de Enero de 2007, 15:42:53
Buenas!!! Estube leyendo un poco lo del proyecto y la verdad q esta muy bueno! Me gusta la idea de poner el decodificador mp3 en el dspic en vez de tener un circuito aparte para decodificar...

Bueno, me sumo timidamente, porque de dsPIC todavia no caso mucho, pero bue... en lo q pueda ayudo...

Voy a ver si puedo leer y entender como cuernos se decodifica un Mp3  :D , informacion de esta en castallano??? estoy pidiendo mucho no??  :D

O bueno, por lo menos algo donde salga la estructura de un archivo MP3...

En lo que pueda ayudar... aca estoy!
Saludos
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 26 de Febrero de 2007, 08:24:04
Yo estaba recopilando la información pero me salió este trabajo en Zárate y no pude decir que no. Voy a ver si sigo poniendo información en español para no dejar que el hilo muera.

Saludos.
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 26 de Febrero de 2007, 10:53:25
Todavia no he armado nada del reproductor con DSPIC, solo con PIC18.
Esto es porque no tengo el RTOS SALVO para esta version.
Esto es una de las razones por la que no me puse mas con este hilo, priorice en el desarrollo de un RTOS para PIC/DSPIC.
Una vez que dicho desarrollo este estable se puede usar para el reproductor de MP3.

Saludos
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 27 de Febrero de 2007, 10:38:49
Y si es así. Si no tienes la herramienta solo debes crearla.

Es como los tiempo de Unix, "los verdaderos hombres de pelo en pecho escriben sus propios drivers"

Saludos.
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: javier.ar en 11 de Abril de 2008, 22:55:12
Hola, excepto q reproducir mp3 con DOS DsPic tenga una utilidad que no alcanzo a comprender, ¿no es mas barato, sencillo, etc. comprar un reproductor de mp3 por $100?. Por que no un proyecto innovador????, Por lo que veo, la gente de este foro es muy capaz, "no gasten polvora en chimangos"!!.
Saludos.
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: J1M en 12 de Abril de 2008, 03:28:26
Javier lo más importante no es 'la meta'... sino el camino que recorres hasta llegar a ella ;)

un saludo
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 15 de Abril de 2008, 23:05:49
Hola Javier:

El objetivo era investigar, aprender, entretenernos y "sacarle el jugo" a una arquitectura limitada. Si te interesa el tema un ruso logró correr un reproductor MP3 en un  dsPic33. Te dejo en enlace en el foro de Darukur donde lo publiqué:

Decodificador de MP3 con dsPIC33 basado en MAD con licencia GPL (http://www.sistemasembebidos.com.ar/forum/index.php?topic=162.0)

Los enlaces son:

Decodificador de MP3 con dsPIC33 basado en MAD (http://mcuee.blogspot.com/2007/12/gpled-dspic33-mp3-decoder-based-on-mad.html)


El proyecto fue abandonado porque yo no podía continuarlo por cuestiones laborales y Darukur tenía otras prioridades para hacerlo solo. Empecé a investigar de nuevo pero comencé a estudiar un posgrado y no tengo tiempo.

Saludos
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 24 de Abril de 2008, 00:55:39
Bueno, no pudimos pero estabamos bien enfocados (en la eleccion tecnologica por ejemplo de las librerias MAD).
Igual nos faltaba meternos en detalles que no comprendiamos bien como la optimizacion de las rutinas de descompresion en ASSEMBLER.
Abrazos.
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: arcadi en 30 de Enero de 2009, 14:59:51
¿No existe un chip que es un deco. de MP3?



http://www.musicdsp.org/index.php  -----> Todo sobre musica y señales de audio para DSPic

http://www.datasheetcatalog.net/es/datasheets_pdf/D/O/C/4/DOC4106.shtml  -----> no recuerdo si es este



Espero que os sirva de ayuda
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: arcadi en 30 de Enero de 2009, 15:07:29
Ya lo he encontrado!!!!!


http://www.techdesign.be/projects/020/020_kit_howto.htm  ----> toda la informacion de u MP3 portatil con un PIC 18LF452 I/L
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Darukur en 17 de Febrero de 2009, 20:08:02
Arcadi, la idea de este post era hacer un reproductor de mp3 donde el algoritmo de descompresion se haga in situ.
El proyecto que pasaste usa un decoder VS1002D-L, el PIC lo usa solo para manejo de archivos e interfase.

Saludos
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: Zaphyrus en 23 de Septiembre de 2009, 22:53:37
Si y la idea quedó muerta, esperemos que alguien tenga ganas de seguir. Las obligaciones nos han guiado por otro camino y es una lástima, el proyecto era interesante y prometedor.

Saludos!
Título: Re: Reproductor de Mp3 con dsPic
Publicado por: freddy en 29 de Septiembre de 2009, 18:25:10

saludos.

estoy trabajando en un proyecto donde necesito generar ondas senoidales hasta 16 khz, ruido, y audio. ya he desarrollado proyectos con el pic 18f, he pensado que una un diseño basado en un microcontrolador arm9 es una buena opcion, sea friendlyarm, olimex, pero tambien veo que es posible que un dspic lo haga. ademas este proyecto debe tener interfaz usb, lo cual tambien lo he trabajdo con el pic 18f. me gustaria saber su opinion, ya que tambien en el foro amigo de sistemas embebidos hay comentarios de darukur y zaphirus, con respecto a micros con arm7 pero no con arm9, con el cual podria portar un kernel de linux.

coordialmente

ritos.

uni