Convertir mp3 chino comun en mp3 on_the_go

Hola! soy un estudiante de Ing. en Sistemas de la UTN, tengo algunos conocimientos de electronica, por eso recurro a este medio para recibir asesoramiento de gente capacitada. Queria saber si existe la posibilidad de modificar un mp3 chino para que pueda funcionar como un mp3 on_the_go. Me imagino que lo primero que me van a responder es que no vale la pena... seguramente, pero en realidad lo quiero hacer por curiosidad y mas que nada por fines didacticos.
Mi idea es conectar mi celular (un Motorola V 555) con el reproductor de mp3 para que lea de este los temas. En mi celular tendria una aplicacion hecha en J2ME que manejaria la transferencia, a traves de la cual yo podria ver el directorio del reproductor mp3 (con sus carpetas y temas) y yo seleccionaria cual archivo mp3 quiero descargar. El problema es que no puedo conectar ambos directamente. Lo que estaba pensando seria como un USB-Bridge pero "tuneado" a la medida de este caso particular donde mi Motorola V 555 no es un USB Mass storage. Porque segun tengo entendido los puentes usb que vi que vendian (en Mercado Libre) es solo para realizar la transferencia entre dispositivos USB Mass storage y, ademas, solo se puede transferir "todo" el contenido de uno de los dispositivos desde el origen al destino. Quizas alguien me pueda brindar una idea de como hacer todo esto.
Espero sugerencias y que con su ayuda me encaminen en el tema. Saludos! Y Muchas Gracias!
 
Basicamente en la comunicacion USB entre dos dispositibos USB sin ningun intermediario o HOST.

Digamos que entre dos dispositivos uno se comporta como host y el otro como slave.

Si el protocolo USB era complicado este pone la guinda, ya ue ademas de que las dos maquinas deben identificarse,hablar quien se cobierte en host juegan con las tensiones de alimentacion.


Cada cacharrito tiene programado en su interior una especie de host con unos drivers genericos que el otro cacharrito debe poder gestionar.

El mundo USB es muy complejo.


http://www.usb.org/developers/onthego/
 
aaa.. tatata.. ahora si..

Fuerte y claro..

Típico ejemplo impresoras que se conectan a las cámaras directo para imprimir las fotos..

ok!..
 
Bueno, disculpen por no ser muy claro, la proxima vez tratare de no usar terminos sin explicar de que se tratan. La respuesta que dio tiopepe123 es muy clara, creo que no tengo nada mas que agregar. Me parece que por una respuesta que recibi en una lista que trata temas especificos de estos aparatos chinos, que no se puede modificar el aparato, o sea, se puede cambiar la conexion del mp3 para que sea "on the go" (ahora uso el termino porque tiopepe123 ya se tomo el trabajo de explicarlo... Gracias!) pero tambien habria que cambiar el "usb stack" (que significa pila usb, aunque no se lo que es), que es aparentemente un componente hardware que no se puede cambiar. Me parece que una solucion seria crear un dispositivo nuevo, que contengo un firmware que actue de intermediario entre estos dos dispositivos. Se puede hacer esto con un microcontrolador? me gustaria si pudieran asesorarme acerce cual es el indicado para usar en este caso porque la verdad que de microcontroladores no se nada. Agradezco el interes de todos y espero su respuesta. Muchas gracias!
 
Eso no se con que microcontrolador podrias hacerlo, al menos no podrias utilizar ningun pic que tenga usb porque los pic solamente pueden actuar como esclavo y tu necesitas algun usb que pueda funcionar como host.
 
Supongamos que yo lo unico que quiero hacer es un dispositivo con dos puertos usb comunes, donde yo conectaria mi celular y el reproductor mp3. Este dispositivo deberia actuar como un host para los dos (tanto celular como mp3) y oficiar de mediador durante la transferencia de un archivo. Cuando yo conecto el reproductor de mp3 a mi pc, en la pc hay un driver que me permite comunicarme con este, lo mismo pasa con el celular, tiene su propio driver. Se puede meter todo esto en un microcontrolador junto con un software para manejar la transferencia de archivos?
 
pic-man dijo:
Eso no se con que microcontrolador podrias hacerlo, al menos no podrias utilizar ningun pic que tenga usb porque los pic solamente pueden actuar como esclavo y tu necesitas algun usb que pueda funcionar como host.

Los nuevos PIC32 ya traen incorporado el USB "On the Go".

Un Saludo.
 
En realidad, ahora me doy cuenta de que no necesito usb "on the go " para conectar mi reproductor y mi celular. Necesitaria que el pic tenga al menos dos puertos usb comunes para enchufarlos a los dos. Que pic me podria servir que tenga estas caracteristicas? pero ademas, un pic tiene la capacidad para albergar un programa que maneje la comunicacion entre estos dos dispositivos? seria importante saber esto antes de que empiece a hacer algo. Muchas gracias!
 
Hola! que modelo de PIC puedo utilizar para este proposito? no necesariamente tiene que ser un PIC con usb "on the go", en realidad, estaba pensando mejor en usar un PIC que tuviera puertos USB comunes. Pero la verdad es que no tengo experiencia en el manejo de PIC como para tomar esa decision. Otra cuestion, es que quizas la capacidad de procesamiento de un PIC (o mas bien, la memoria del programa que brinda) no sea suficiente para lo que quiero hacer. Porque la idea es hacer un host USB entre el celular y el reproductor MP3 que tendria que funcionar como una PC (es una forma de decir, nunca va a ser como una PC) a la que se conectan estos aparatos y mediar durante la transferencia de los archivos. Un PIC tiene la capacidad para hacer todo esto?
 
Disculpa por repetir la pregunta! entonces, lo que se podria hacer seria conectar el PIC (que ya tiene un puerto USB) con otro dispositivo (mediante E/S como cualquier periferico) que a su vez tenga un USB. Se puede hacer esto?
 
Este se mira como un topico muy pero muy interesante.

Como yo lo veo, si deberia ser posible usar in PIC como intermediario entre 2 dispositivos USB. Solo que como ya lo mencionaron por ahi, no es posible usar el periferico USB que viene en algunos PIC (tal como el PIC18F4550) para esa funcion, ya que esos perifericos unicamente pueden actuar como "guest" o esclavo, como los llaman por ahi.

Pero eso no quiere decir que un PIC no pueda actuar como "host", claro que no. Solo hay que dotarlo del periferico adecuado para esa funcion. Existen en el mercado controladores USB que pueden ser usados para desempeñar las funciones de un host USB, amplificadorando las capacidades de cualquier microcontrolador, incluido un PIC.

Tales perifericos podrian proveerte uno o quizas mas puertos USB del tipo "upstream" (o sea, los que van al host). Y podrian ser conectados al MCU a traves de alguna interfase estandar, tal como I2C o SPI. Esos perifericos podrian o no implementar algunas funcionalidades USB de alto nivel de forma automatica, pero como un minimo, deberian proveerte la capa fisica (circuitos electronicos carateristicos del USB tales como drivers de linea) y la capa de enlace (poder efectuar la codificacion propia de la linea, efectuar la tecnica del bit "stuffing" asi como el calculo automatico del CRC16).

Lo malo es que aunque la solucion se mira sencilla a simple vista, realmente no lo es... Yo me lo pensaria mucho antes de embarcarme a un proyecto de tal magnitud, pero tampoco quiere decir que sea imposible. Recordemos que el que persevera alcanza.

Sin embargo eria necesario implementar la pila de protocolos USB por uno mismo (conocida tambien como "USB stack" que es el conjunto de rutinas de software que gestionan el USB). A menos claro, que la consigas en forma de libreria... pero entonces alguien mas deberia haber hecho un trabajo similar antes y haberlo publicado.

A lo mejor habra una nota de aplicacion de Microchip al respecto?

Pero ahi no termina todo, aun hara falta hacer las cosas a un nivel o "capa" todavia superior. En el caso del mp3 player, habria que hacer uso de la "USB Mass Storage Specification", que es el estandar que gobierna tambien a las memorias Flash USB (Pen Drive), para poder enumerar el mp3 y accesar su contenido.

En el caso del celular, habria que ver si se apega a alguna especifiacion... lamentablemente no tengo ni la menor idea de si hay un estandar USB que los regule.

Y no quero sonar aburrido, pero lamentablemente la cosa aun no se termina ahi: todavia hace falta implementar un software para manejo de sistemas de archivos, que en los mp3 comunmente es FAT16 o bien FAT32... por ahi tambien se nos complican las cosas, porque cuando pides datos al mp3, de el obtendras puros datos de su sistema de archivos FAT... es decir, no le puedes pedir el archivo "mi cancion.mp3" y el gustoso te lo dara... sino mas bien deberas buscar en los descriptores FAT en cual(es) cluster(s) se encuentra el archivo y tomarlo tu mismo, para luego transferirlo (ni idea de como) al celular.

Y como el turron que va sobre el pastel, deberas agregar una interfase de usuario (una pantalla LCD y un teclado quiza?) para que el usuario interactue con el dispositivo y pueda elegir que archivos transferir.

Digo todo esto con el buen animo de informaciónrmar y ayudar :) por favor no me lo tomen a mal ^_^

Saludos.
 
Muchas gracias por tu respuesta f_point. La verdad que me hacia falta una vision asi. Porque mi idea surgio mas que nada como algo muy entusiasta pero sin saber realmente (debido a que no conozco al detalle toda la implementacion del usb) todo el esfuerzo que significaba. Todavia sigo interesado pero lo veo un poco lejos. Lo que realmente se me complica es como encarar un diseño (me refiero al diseño del hardware) para un dispositivo de este tipo. Ya que mis conocimientos de electronica son mas bien básicos. Con respecto al controlador host USB al que hacia referencia f_point, estuve mirando una pagina (aunque debe haber muchas mas) que tiene este tipo de dispositivos, pero realmente me cuesta un poco saber cual seria el mas apropiado para este caso. Aca les dejo el link para que al que le interese lo pueda ver (http://www.cypress.com/products/index.jsp?gid=9&fid=10&category=All&).
Espero poder publicar alguna novedad por este medio a la brevedad. Saludos!
 
He visto (aunque solo brevemente) los dispositivos propuestos tanto por onetoleo como por tiopepe123. Y quiza todavia pueda ofrecer algo de guia, pero solo superficialmente.

El caso del MAX3421E es el de un controlador host USB relativamente basico segun puedo apreciar. Con el probablemente deberas de realizar una buena parte del protocolo a nivel superior (como la enumeracion y obtensión de descriptores, asi como la del control de las transferencias). Eso supondria un trabajo mayor a nivel de software, pues hay un set relativamente amplio de funcionalidad que hay que implementar uno mismo todavia.
Eso no quiere decir que MAX3421E sea inutil, por el contrario, es muy util, pues reduce en gran medida mucho trabajo de por si, tal como la temporizacion y sincronizacion del bus USB, a tal grado que la temporizacion del bus deja de ser preocupacion para el microcontrolador principal.

El caso de los controladores USB de cypress parece ser del tipo de controlador host USB mas completo, donde gran cantidad de funciones del host pueden ser manejadas automaticamente por el mismo dispositivo, tal como la enumeracion y la negociacion automatica de transferencias. Sin embargo este controlador es mas complejo por si mismo, y por lo tanto mas dificil de aprender a usar. A cambio, te facilitaria la implementacion del USB, claro esta.

La eleccion tuya onetoleo (si eliges uno de estos), dependera de cuanto rendimiento quieras del sistema, y que tan automatico quieres que sea (el segundo apunta a ser mas automatico y mas eficiente, pues posee procesador interno). Y, por supuesto, de cuanto dinero quieras invertir en el (una vez mas, seguramente el segundo sea mas caro, aunque no lo constate yo mismo).

Dejando el costo monetario aparte, tu decision podria basarse tambien en la complejidad que desees manipular, siendo el caso del controlador cypress la que es tentativamente mas simple (ojo: eso no es una garantia, de hecho podria ser mas complejo, aunque lo dudo). Si la viabilidad de tu proyecto es la que te preocupa, puedo asegurarte que con ambos controladores podrias lograr el mismo fin, aunque por caminos diferentes.

Si me lo preguntas a mi, yo probablemente eligiria un controlador basico como el de MAXIM, pues aprenderia mucho mas en el camino acerca del USB (basicamente me lo obligaria). Ten en cuenta que probablemente sea el camino mas dificil, pero tambien el mas fructifero. Mas sin embargo tomate la libertad de decidir tu mismo - tu sabras mejor las metas que persigues.

Ademas, aparte de esos modelos hay muchos otros. Trata la manera de considerar controladores host USB adicionales si gustas.

En cuanto al diseño del circuito no te preocupes mucho, las mismas hojas tecnicas de los ICs proveen a menudo diagramas de conexion basicos que puedes aprovechar (y modificar) para tus necesidades. Normalmente las conexiones para esta clase de ICs de aplicacion especificos estan normalizadas, es decir, las cosas normalmente solo se conectan de una o pocas formas diferentes. Ademas, las mismas modificaciones posibles a la forma de conexion vienen detalladas en los mismos documentos.

El verdadero reto de este proyecto es mas bien la base de software (en este caso firmware) que debera incluir el PIC, ya que es de caracter sumamente extenso.

Posiblemente hasta aqui puedan llegar mis consejos, pues lo que sigue mas adelante ya elude lo que hasta ahora se del USB. Realmente poco se de la implementacion del USB del lado del host, pues unicamente he escrito firmware del lado del guest (cliente) y un poco de software aplicativo del lado del host (PC) naturalmente (De ahi que conozco uno que otro concepto de USB).

Buena suerte onetoleo. Recuerda: El que persevera, alcanza.
 
Aunque seguramente ya lo conozcan, hago el comentario de que hay un sitio oficial que trata de los aspectos tecnicos de la tecnologia USB:

http://www.usb.org/developers

Este link conduce al area de desarrolladores de la USB-IF, donde podran encontrar la documentacion oficial concerniente al USB. Aqui encontraran documentos importantes, tal como la especificacion oficial del USB 2.0, la cual es la piedra angular sobre la que se basan todas las tecnoligias correlacionadas y por tanto es de caracter fundamental conocer si no bien todo, al menos una parte moderada de su contenido a la hora de elaborar soluciones basadas en USB.

Aqui tambien podran encontrar las especificaciones adicionales de las clases de dispositivos:

http://www.usb.org/developers/devclass_docs

Desde alli tendran acceso a especificaciones de clases de dispositivos especificos, tal como la Mass Storage Specification, que como mencione anteriormente, abarca entre otras cosas a las memorias flash (Pen Drive). Esto ultimo podria ser util a la hora de accesar archivos contenidos en un mp3.

Saludos.
 
Atrás
Arriba