Como construir tu propio MP3 teorico, claro

Iniciado por pakohuelva, 01 de Septiembre de 2005, 01:07:26 PM

Tema anterior - Siguiente tema

0 Usuarios y 1 Visitante están viendo este tema.

pakohuelva

Pues to que a mas de uno se le ha ocurrido contruirse un Mp3 voy a dar unas claves muy teoricas, mas que nada porque yo no me he hecho ninguno.

Prerequisitos:
-Tener mucho tiempo libre o muchas ganas de perderlo, se supone que yo estoy estuidando.
-Manejar medio decentemente el google y bien el ingles tecnico.

Pasos a seguir (CAPITULO 1):

1º Saber que es lo que quieres exactamente. Yo querria algo mas de lo que voy a poner pero tampoco tengo tanto tiempo como para sonder mas. Suponemos, pues, que queremos un reproductor de audio multiformato con almacenamiento en disco duro con pantalla decente en color

2º Identificar los componentes necesarios, a grandes rasgos un procesador, una pantalla, un disco duro, memoria flash y ram, controlador de consumo si fuera necesario, etc.

3º Patearse todo internet buscando lo que queremos sabiendo que podemos encontrar lo que buscamos en algunos fabricantes:
-Philips: desde resistencia hasta controladores para grabadoras de DVD
-Motorola/Freescale: circuitos logicos practicamente para todo
-Samsung: memroias, lcds, controladores, etc
-Sigmatel: controladores usb o "corazones" para Mp3
-Sigmadesings: decodificadores divx (codecs)
-etc

pakohuelva

Como ya he dicho no tengo tanto tiempo como para sondear mas asi que basicamente he mirado en sigmatel y en motorola.

El sigmatel 35XX http://www.sigmatel.com/products/stmp35xxpb.htm no me convence. Tenemos dos familias, el 3550/60 y la 3510/20. Ninguna de las dos es adecuada porque apenas reproducen Mp3 y WAV, supongo que es el que llevan H10, Zen y similares.

Pasamos a motorola, cocretamente a la division ColdFire, en esta hay muchisimos modelos y un sistema de busqueda francamente malo, mientras en webs como la de philips buscas a partir de unos minimos, aqui tienes que ir viendo modelo por modelo.

Tenemos que tener en cuenta que estamos buscando un procesador que pueda comunicarse con dispositivos IDE y USB y un bajo consumo como minimo, a partir de ahi si tiene control LCD, sonido, DAC/ADC, etc muchisimo mejor. Todo lo que no tenga integrado el procesador habra que ponerlo despues con el engorro que eso supone.

Pues como no tenia ganas de buscar mas he piyado el del X5 y, supongo, otros muchos. Se trata del SCF5250 y cuyas caracteristicas son:
Coldfire V2 processor core operating at 120 MHz
Enhanced Multiply-and Accumulate (EMAC)
8K-byte Direct Mapped Instruction Cache
128K-byte SRAM (Two 64K banks)
Operates from internal or external crystal oscillator
Supports 16-bit wide SDRAM memories
Debug module - background and real time
Two independent Universal Asynchronous Receiver and Transmitter(UARTs)
Two I2C modules
Queued Serial Peripheral Interface (QSPI) - Master Only
Digital audio transmitter (SPDIF) and two receivers compliant with IEC958 audio protocol
CD-ROM and CD-ROM XA block decoding and encoding function
Two independent 16-bit timers
System integration (PLL, Software watchdog)
Four-channel Direct Memory Access (DMA)
Six-Channel 12-bit Analog/Digital Converter (ADC)
IDE Interface or SmartMedia Interface
FLASH memory card Interface
General Purpose I/O
1.2V Core, 3.3V I/O
Su web esta: http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=SCF5250&nodeId=0162468rH3YTLC00M93109

Si os fijais en la documentacion ya nos dan documentos tales como la integracion con un controlador OTG Philips o como ralizar un reproductor Mp3.

Como minimo deberemos bajarnos el datashet, en el aparecera hasta el nombre del que hizo el diseño ;) http://www.freescale.com/files/platforms/doc/data_sheet/SCF5250.pdf Son 2.2 MB de PDF y 48 paginas.

Muy importante en los datashet tratandose de un elemento a bateria localizar el consumo, cosa mucho mas complicada de lo que parece.

Puesto que los coldfire son una familia de procesadores, ya podemos buscar el como programarlos y demas, paginas recomendadas:

Manual del programador: http://www.freescale.com/files/dsp/doc/ref_manual/CFPRM.pdf
Manual de usuario: http://www.freescale.com/files/netcomm/doc/ref_manual/COLDFIRE2UM.pdf
Otro manual, de nuestro chip en concreto: http://www.freescale.com/files/platforms/doc/user_guide/SCF5250_USERS_MANUAL.pdf

Al final de la pagina tenemos mas material necesario, especialmente para desarrollar aplicaciones y equipos con este integrado, a grandes rasgos, todos a la saca

EDITO: Se me olvidaba, no creais que os vais a arruinar, el integrado cuesta 9.34 dolares: pincha  AQUI
Si teneis alguna duda sobre las caracteristicas del coldfire intentare responderlas en la medida de lo posible

pakohuelva

Puesto que es la propia motorola la que nos dice que USB usar, ¿para que buscar mas?. Nos vamos a la web de philips y buscamos ese modelo de controlador para descubrir que es USB 1.1 (OTG), que casualidad, como el X5, jeje.

Como somos mas chulos que un 8, vamos a poner uno 2.0, pero vamos a asegurarnos de que es "compatible", mas que nada para no tener que plantearnos un nuevo diseño y que sea suficiente con usar el del antiguo pero con el chip nuevo.

Pues tenemos esto: http://www.semiconductors.philips.com/selectionguides/tables/47803.html y despues esto otro:
Para el 1362 (1.1): http://www.semiconductors.philips.com/pip/ISP1362EE_01.html
Para el 1761BE: http://www.semiconductors.philips.com/pip/ISP1761BE.html
Para el 1761ET: http://www.semiconductors.philips.com/pip/ISP1761ET.html

Habra que buscar la diferencia entre uno y otro pero aparentemente no hay mas que el encapsulado en el que se presentan, SOT425-1 para el BE y SOT857, pulsamos el enlace (la web de philips es una maravilla) y descubrimos lo siguiente:

plastic thin fine-pitch ball grid array package; 128 balls; body 9 x 9 x 0.8 mm para el SOT857-1 y plastic low profile quad flat package; 128 leads; body 14 x 20 x 1.4 mm para el SOT425-1.

Aqui hay que hacer una parada, que el integrado se presente en 128 balls quiere decir que hay que soldarlo a la placa, eso esta muy bien para la produccion en serie, pero si estamos desarrollando un prototipo es mejor el 128 leads, que no son otra cosa mas que 128 patillas.

Si nos bajamos las 158 paginas del datashet sabremos todo sobre este "cacharro".

Por cierto, no he nombrado antes pero es importante una de las caracteristicas del chip: Generic processor interface to most CPUs, such as: Hitachi ® SH-3 and SH-4, Philips XA, Intel ® StrongARM ® , NEC ® and Toshiba ® MIPS, Motorola ® DragonBallTM, and PowerPC ® Reduced Instruction Set Computer (RISC) processors. Esto quiere decir que no habra mayores problemas al conectarlo con el coldfire, en teoria, porque ahora toca leerse las especificaciones elecetricas de ambos integrados para ver si se pueden conectar directamente o si, por el contrario, hay que inteponer resitencias, transistores, etc.

Se me olvidaba, el coldfire debe funcionar tipicamente a 3.3 voltios y el Philips puede hacerlo a 3.3 o 1.8, de momento podriamos arreglarnosla con una bateria de 3.3.V

pakohuelva

Y de momento voy a parar aqui porque nisiquiera se si es resulta de algun interes esto y requiere de mas tiempo del que dispongo.

Lo proximo serian las meorias, 32MB que es el maximo que soporta el coldfire aunque hay formas de poner mas. Ya las tengo miradas pero de momento no redacto.

Estoy buscando pantallas OLED porque yo lo valgo, aqui un adelanto: http://www.kodak.com/eknec/PageQuerier.jhtml?pq-path=2/782/1473/1481/1486/1495&pq-locale=en_US
Son 2.2" para una resolucion de 521 x 218 y un tamaño esterno de 52.0 x 45.4 x 1.72 mm. Lamentablemente necesita 7V para funcionar, habra que mirar alternativas como estas (LCD): http://www.videologyinc.com/monitors-lenses-and-accessories/lcd-module-&-monitors.htm

jokerman

Chapó, y eso que solo estaba mirando tu primer mensaje. Plas plas, ahora veo el resto.

Tu que estudias? A mí me resulta todo de mucho interés, pero ahora como que no hay tiempo para tomárselo en serio, y creo que poco a poco este post ira cayendo al pozo del olvido (algún día volvere para rescatarlo)

Un vez más, chapó 8)

jokerman

Pues te voy a tirar más de la lengua. De la parte de programación, que? Por lo que veo, se programa todo en C sin mayor problema (con el mplabs por ejemplo), pero como fríes el chip con el firmware? Supongo que habrá que meter el chip en algún cacharro y freírlo con el programa, la pregunta es... dicho cacharro es generico para los chips, o depende del chip?

Un saludo, ah y cuánto más me hables de la parte de programación mejor, que la parte electrónica, ya esta dominada ;)

obarriel

8O  Interesantisimo. He fijado el post.

Voy a intentar aparentar que entiendo  :lol: : desde el punto de vista de hardware no has mencionado el conversor digital-analogico que ha de dar el señal a los auriculares o al line out y quizá también amplificar.  ¿Hace falta también?... en las especificaciones del procesador no veo que ya vaya incorporado.

Un saludo y gracias por compartir toda esta información
Reproductores:  Sonys: X1060,S205F, S639, S545, E465, A846, HD5, HD3 y HD1, Philips HDD1830, Samsung YH-820, Olympus m:robe 500, Sansa Clip Zip, Iriver B100, MPMan F10
Auriculares: Westone UM3x
No uses mp para lo que se puede preguntar en el foro.

pakohuelva

Pues si no aparece, ahora mismo estoy en linux y no tengo eso a mano, habria que utilizar una de sus salidas, bien las de proposito general, bien las SPDIF para conectarlo con un DAC que, seguramente, habria que conectar con un amplificador. En realidad faltan muchisimas cosas porque quizas para conectar la pantalla necesites un seguidore de tension, o un dac o cualqueir tipo de dispositivo y asi para cada componente mayoritario.

Por cierto que otra OLED que he visto sigue siendo de 7V (pedazo de resolucion que dan en 2")

jokerman, no me he leido la parte de programacion y no se exactamente como va, yo he programado otros controladores y no es muy diferente de un programa en C, eso si, me temo que al ser este un procesador generico que no especifico como el sigmatel, habria que programar los algoritmos para descomprimir los formatos.

En cuanto lo que comentas es lo mas sencillo, el procesador lleva una rom y una ram, ambas ampliables, mediante la UART (puerto serie normalmente) lo conectas al PC y a partir de ahi, con el programa que te suministra motorola, pasas el software al dispositivo.

Supongo que tu duda vendra por aquello de las roms de solo escritura, sin embargo hace mucho que son eprom, o borrables, es tan sencillo como usar un comando para escribirlas y otro para borrarlas.

Aun asi habria que mirarse muy bien las especificaciones del chip para saber si hay que hacer toda la decodificacion por software.

Por cierto, estudio informatica de sistemas

pakohuelva

Bueno, voy a seguir un poco a mi bola con esto mas que nada porque al salir el nuevo ipod nano me he pasado por algunos fabricantes de memoria a ver como estaba la cosa.

Fabricantes de memoria, asi de cabeza se me ocurren elpida, hynix, samsung y micron, supongo que habra alguno mas, pero eso suelen ser los que se ven mas.

Aunque nuestro reproductor iba a estar basado en disco duro, puesto que ha salido el nuevo apple voy a poner algo de informacion de memoria flash.

Hay que tener en cuenta que la memoria siempre se configura en bits y por tanto hay que dividirla entre 8 para darnos el valor en bytes de la memoria. Dicho de otra manera, los modulos de 16Gb son 2GB, los de 8Gb 1GB y los de 4Gb 512MB. Por desgracia los modulos de 2GB solo estan en cantidades de prueba y de la mano de Samsung, Micron tiene modulos de 1GB en produccion, como Sansung e Hynix los tiene todavia en desarrollo.

Resumiendo, comercialmente hablando lo mas grande que podemos encontrar son modulos de 1GB, el tamaño de estos modulos es de unos 20x12mm y 0.15 de alto (caso de Micron).

Alguna informacion concreta:

Micron 1GB (MT29F8G08FABWP), tiene una alimentacion de 3.3V y 48 pines para las dimensiones 20x12x0.15. Su precio es de unos 97$ para cantidades considerables (unas 400 minimo). Tienes unos tiempos de 25us para lectura y 30ns para la escritura. PDF: http://download.micron.com/pdf/datasheets/flash/nand/2gb_nand_m29b.pdf WEB: http://www.micron.com/products/nand/massstorage/part.aspx?part=MT29F8G08FABWP

Hynix: Enlazo la pagina: http://www.hynix.com/datasheet/eng/flash/details/flash_11_HY27UH088G2M.jsp Este fabricante tiene una serie de con alimentacion reducida que puede ser interesante.

Samsung 1GB (K9W8G08U1M), similares caracteristicas que el Micron en cuanto a tamaño y alimentacion asi como velocidades/tiempos de escritura y lectura. La web de Samsung para memorias flash es esta: http://www.samsung.com/Products/Semiconductor/Flash/index.htm PDF: http://www.samsung.com/Products/Semiconductor/Flash/NAND/8Gbit/K9W8G08U1M/ds_k9xxg08uxm_rev09.pdf PRECIO: 46.50$ para 960 unidades

gabriel2828

Acabo de leer este post y simplemente hay que reflotarlo en honor a este pezado fiera de pakohuelva. Enhorabuena, tío
¿Realmente creéis que sería posible hacerse uno?


No contesto a privados pidiendo consejo sobre qué reproductor elegir, para eso está el foro. Espero que lo entendáis.

obarriel

Jokerman debería ser quien contestara esta pregunta...
Reproductores:  Sonys: X1060,S205F, S639, S545, E465, A846, HD5, HD3 y HD1, Philips HDD1830, Samsung YH-820, Olympus m:robe 500, Sansa Clip Zip, Iriver B100, MPMan F10
Auriculares: Westone UM3x
No uses mp para lo que se puede preguntar en el foro.

ragnor

 :dios:
Cielo santo, este post necesita reflotar urgentemente.
Impresionante, poco más que decir.
Sinceramente, no veo tan descabellado hacerse uno propio, teniendo algunas nociones de electrónica, programación y diseño en general.

¿Os apuntáis a hacer uno, teórico, pero concretizando algo más?

El reproductor de nuestros sueños...
...............もう独りで歩けない...............

jokerman


        Venga mañana renuevo el post con más info.

Saludos

outlaws

Jamas crei ver en un foro español un planteamiento de este estilo! un diez tiu!

Particularmente lo veo excesivamente ambicioso, yo empezaria por intentar reproducir un mp3 sin lcd y a partir de ahi ir avanzar poquito a poco, no obstante es completamente viable (eso si, tenemos que tener en cuenta que no posees una maquina de soldadura por ola para los terminales con alas de gaviota correcto y los pasivos tipo flat-chip que supongo usaras, y tambien mencionar el diametro de los taladros). Hecho todo esto y supuesto que tengamos nuestro cacharrito montado, solo habria que programarlo, que no es tan facil como poner un cout, por no contar con la pasta que puede costar un interfaz Jtag-Debugger o similar (que supongo usaras para depuraciones). ¿No sería mejor buscar un codigo abierto en foros guiris, elegir micro en funcion de este y adaptarlo a nosotros?

Enfin, me encanta tu locura, si quieres ayuda puedes contar conmigo, eso si, cuando acaben los examenes, ya tengo bastante aprendiendo a programar el microcontrolador MSP430 de TI como para ponerme a aprender otras chalauras jeje.

PD: Por fin murio mi MP4 (por no decir baratija audible) de origen chino y esta tarde pedi por fin mi Meizu!!!, lo he desmontado y aqui estan la lista de componentes:

La flash es de samsung, modelo K9K8G08U0M-PCB0,la radio es un philips TEA5767 (y es lo que mas calidad tenia de este cacharrito), el chip es un atj2085w

Haber si logramos hacer algo medianamente serio entre todos!  :risa:



outlaws

Mierda, acabo de resucitar el puto mp4 antiwo ... kien me mandaria a buscar el firmware x internet! x na ... menos mal que ya me compre el otro!  :D (lo he arreglado justo a tiempo para mi meizu!  :risa: )