Autor Tema: Memorias SD  (Leído 11515 veces)

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

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Memorias SD
« en: 05 de Noviembre de 2006, 08:31:12 »
Hola a todos, hace tiempo que no pasaba por aqui por los estudios.

Para el proyecto de final de carrera estoy haciendo un dispositivo con comunicacion USB y que almacena datos en una memoria SD mediante archivos FAT16 y FAT32, todo ello controlado desde un PIC18F252. La comunicacion USB la hagao a traves de un chip de FTDI y la de la targeta con un chip llamado DOSonChip, que te permite gestionar los archivos FAT.

Hasta aqui no hay problemas, el problema que tengo es el siguiente: Quiero que cuando conecte el USB al PC lo de detecte como si fuese un dispositivo de almacenamiento extraible, como los Pen Drive, los lectores de memoria SD, los CD, los DVD, etc. O sea que mi intencion es que cuando conecte el dispositivo al PC lo detecte y me cree un directorio para que desde windows pueda manipular los archivos de la memoria SD como si se tratase de uno de estos dispositivos.

Eso es lo que no se hacer, ni si quiera se por donde cogerlo. No se si tendria que hacer que el PIC simulase un dispositivo de estos, si hay que enviar algun tipo de comando al PC para que lo haga el, ..... ni idea.

Alguien sabe como hacerlo?????????????????? 

P.D.:
- Para la gente interesada en controlar memorias SD:

Os recomiendo que hecheis un vistazo a la pagina de DOSonChip porque te ahorra toda la faena y espacio de memoria que ocupa hacer una libreria para gestionar archivos FAT.

- Para la gente interesada en controlar Pen drives, dispositivos de almacenamiento masivo USB, memoria camaras fotograficas con USB, etc:

Miraros la pagina de FTDI porque han sacado otro chip USB llamado Vinculum que te permite hacer maravillas gestionando dispositivos de estos con archivos de formato FAT16 y FAT32.


Espero que esta informacion ayude a alguien y que alguien pueda ayudarme a mi. :-)

Un saludo a todos.
BitPIC

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: Memorias SD
« Respuesta #1 en: 06 de Noviembre de 2006, 00:31:34 »
muy interesante tu proyecto amigo, lamentablemente esoty en pañales en lo q respecta al USB y no te puedo ayudar, pero quiero aprender tambien, gracias por tu colaboracion, estoy seguro q en el foro te podran ayudar. :-/ exitos con tu proyecto
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado Darukur

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 464
    • Informacion, recursos y ejemplos para desarrollos con microcontroladores
Re: Memorias SD
« Respuesta #2 en: 06 de Noviembre de 2006, 11:39:35 »
Tal vez lo puedas hacer tambien con un 18F2550 que maneja USB y lo presentas como un dispositivo de almacenamiento masivo y gestionas ahi mismo el manejo de archivos en modo autonomo.

Saludos.
El que no sabe lo que busca no entiende lo que encuentra.
Mi Pagina Web:  http://www.sistemasembebidos.com.ar
Mi foro:             http://www.sistemasembebidos.com.ar/foro/

Desconectado Zaphyrus

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 323
    • Mi blog: Es cuestión de actitud
"¿Lo quiere rápido, barato, o bien hecho? Puede elegir dos de las tres cosas." Arthur C. Clarke.
Mi Proyecto Final de Carrera-Microprocesador RISC de 16 bits en HDL: http://martin.calveira.googlepages.com/home
Mi página web o blog: http://es-cuestion-de-actitud.blogspot.com/
Martín Calveira - Zárate - Argentina

Deimos

  • Visitante
Re: Memorias SD
« Respuesta #4 en: 06 de Noviembre de 2006, 12:30:44 »
No se si con esto respondo a tu pregunta pero ahí va:

Podrías hacer que el pc cuando se conecte al pic, le mande una trama indicándole que hay un dispositivo nuevo en la red. El pic reconoce la trama y le envia un identificador al pc, para que desde ese momento el pic sepa a que dirección ha de enviar, y si recibe desde esa dirección que sepa de quien se trata. Todo esto suponiendo que el sistema es master(pic)-slave(pc), donde el master sabe cuantos slaves tiene colgando de el y la dirección de cada uno.

Por cierto, el DOSonChip realmente es un buen integrado, pero aun es muy caro, y para series industriales no sale a cuenta. Es más barato gestionarlo con un micro aunque mucho más complicado evidentemente. De todos modos, el DOSonCHIP no te soluciona el problema del FAT16 o FAT32. Este integrado traduce un carro que viene de la SD por un puerto SPI, y lo pasa a RS232, a I2C o a SPI, además de tener una entrada para un RTC.

Mírate  el CD17Bxx, es un DOSonCHIP como el que comentas. El tema del DOSonCHIP ya fue tratado en el foro. Usa el buscador del foro.

En definitiva, la SD va con un puerto SPI. Todo lo que le pongas de más.........quizás solo te encarece el resultado.

Salud!!!!

Desconectado Darukur

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 464
    • Informacion, recursos y ejemplos para desarrollos con microcontroladores
Re: Memorias SD
« Respuesta #5 en: 06 de Noviembre de 2006, 14:12:16 »
Sip.
Evidentemente todo lo que te cueste por el lado del codigo renegas una sola vez.
Despues es ganancia por cada aparato que armes si te ahorras estos dispositivos.
El que no sabe lo que busca no entiende lo que encuentra.
Mi Pagina Web:  http://www.sistemasembebidos.com.ar
Mi foro:             http://www.sistemasembebidos.com.ar/foro/

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: Memorias SD
« Respuesta #6 en: 06 de Noviembre de 2006, 19:15:02 »
Muchas gracias a todos por contestar.

Empece con un 18f4550 y utilizaba el USB del PIC para comunicar, lo que pasa es que las librerias del USB ocupaban bastante espacio de memoria y decidi poner un FTDI, porque tambien tengo una pantalla grafica LCD en color que la libreria ocupa un poco tambien.

Luego me meti con las SD y en principio mi intencion era hacerme yo las librerias para gestionar el FAT pero, despues de leer mucha informacion, llegue a la conclusion de que (igual estoy equivocado no lo se..) dependiendo del tamaño de la memoria de la tarjeta, del tipo de FAT y del sistema operativo con que se le haya dado formato a la tarjeta se podia complicar mucho la cosa. Entonces decidi utilizar el DosonChip para centrarme en la aplicacion y dejar esas cosas para cuando hubiese mas tiempo. Tambien me descargue unas librerias que circulaban por el foro y ocupaban mucho espacio de memoria del PIC.

Estoy un poco confuso, porque la verdad es que me gustaria hacer todo desde el PIC. pero no se si en 4 meses de tiempo (que es lo que tengo de plazo) me dara tiempo a desarrollar todas las librerias, hacer la aplicacion y toda la documentacion que conlleva el proyecto final de carrera.

Alguna sujerencia??? Alguien tiene librerias para FAT???? Alguna palabra de aliento para no deprimirme???? ejjeje

Gracias.
« Última modificación: 06 de Noviembre de 2006, 19:35:00 por bitpic »
BitPIC

Desconectado Darukur

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 464
    • Informacion, recursos y ejemplos para desarrollos con microcontroladores
Re: Memorias SD
« Respuesta #7 en: 06 de Noviembre de 2006, 19:34:10 »
Te comento mi experiencia.
Si el micro tiene que hacer muchas cosas a la vez (y cumplir con todas) no te va a servir el modelo de manejadores de MMC/FAT16 por monotarea (hasta no concluir no hace otra cosa a menos que sea por interrupcion).
De eso vas a conseguir seguramente implementaciones de CSS o por internet hay tambien.
Hacerlo con C y maquinas de estados u otros modelos se hace muuuy complicado con lo que la opcion mas lógica es usar un RTOS (pero evidentemente come un poco mas de micro).
Te cuento que con un PIC 18F2620 a 40 Mhz trabajo la MMC en modo SPI a 10Mbits (medio al pedo ya que se ralentiza igual por el procesamiento del micro)
En fin, no me acuerdo bien pero logro aproximadamente 27Kbytes en lectura RAW y 18Kbytes en escritura RAW para archivos FAT16.

Salute

El que no sabe lo que busca no entiende lo que encuentra.
Mi Pagina Web:  http://www.sistemasembebidos.com.ar
Mi foro:             http://www.sistemasembebidos.com.ar/foro/

Desconectado Zaphyrus

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 323
    • Mi blog: Es cuestión de actitud
Re: Memorias SD
« Respuesta #8 en: 06 de Noviembre de 2006, 23:22:33 »
Hola Bitpic, si tenes los integrados que manejan USB y la FAT yo creo que tenes que aprovechar esa ventaja. En la vida real los jefes ven todo como ganancias de las cuales dependen del tiempo de desarrollo del proyecto y la salida al mercado. En mi proyecto final de carrera hice incapié en este detalle, te pongo la tabla que usé en la presentación:

Tiempo hacia el mercado    Ventas potenciales
Primero en el mercado        100%
3 meses más tarde        73%
6 meses más tarde        53%
9 meses más tarde        32%
12 meses más tarde        9%

Fuente: International Business Strategies, Inc 2003

Si el producto se encarece por el uso de los integrados especializados no importa le agregas un plus al precio final o lo tomas como un pérdida hasta que implementes el USB y el FAT en el PIC, en donde sacas el nuevo producto (recomendado que tenga algunas mejoras) pero ya ganaste el mercado. Mi experiencia fue todo lo contrario, para ahorrar en insumos le puse muchas horas/hombre y al final terminé gastando más de lo que hubiese gastado si empezaba con mi proposición inicial y tardando más del doble. Los insumos no importan cuando se hace investigación y desarrollo ya que se recuperan en la venta.

El tiempo es dinero!!!

Yo te diría que te centres en lo que te falta y dejes ya como terminado el asunto del USB y de la MMC/FAT. Cuatro meses se  pasan volando y podes ir avanzando con el informe del proyecto.

Para el FT232 creo haber visto en su página web información para el Mass Storage para USB y su correspondiente driver.

Saludos.

Martín
« Última modificación: 06 de Noviembre de 2006, 23:25:55 por Zaphyrus »
"¿Lo quiere rápido, barato, o bien hecho? Puede elegir dos de las tres cosas." Arthur C. Clarke.
Mi Proyecto Final de Carrera-Microprocesador RISC de 16 bits en HDL: http://martin.calveira.googlepages.com/home
Mi página web o blog: http://es-cuestion-de-actitud.blogspot.com/
Martín Calveira - Zárate - Argentina

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: Memorias SD
« Respuesta #9 en: 07 de Noviembre de 2006, 05:49:48 »
Gracias Zaphyrus, necesitaba palabras de aliento jejejejeje

Igualmente he encontrado en el CCS una libreria para controlar memorias MMC/SD, no implementan la FAT pero es un gran paso. Creo que el proyecto lo llevare por dos lados, uno con los chips FTDI y DosonChip y por otro lado intentare implementarlo desde el PIC. Si me da tiempo bien, y si no pues habre aprendido algo sobre FAT.

En cuanto a lo del Mass Storage Device de los FTDI me lo mirare a ver si encuentro informacion. ¿Si configuro el USB como Mass Storage Device, cuando lo conecte al PC me saldra directamente como un dispositivo de almacenamiento como los CD, Pen drive y dispositivos de este tipo?

Un saludo
BitPIC

Desconectado Darukur

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 464
    • Informacion, recursos y ejemplos para desarrollos con microcontroladores
Re: Memorias SD
« Respuesta #10 en: 07 de Noviembre de 2006, 10:02:08 »
 :x Zaphyrus siempre con un punto de vista diferente al mio!!
No, en joda. Tenes razon, a mi me quedo lo que me dijiste de tiempo vs dinero y de cuanto vale tu tiempo.
Por ejemplo si te vas a poner a pintar una pared pensa cuanto vale 1 hora de tu tiempo vs cuanto le pagas a un pintor (y ensima no queda un mamarracho).
Igual lo que digo tambien es valido, si no estas hablando de un producto que compite en tiempo de salida al mercado, lo que te puedas ahorrar de gasto fijo siempre es mejor aunque gastes mas tiempo en el desarrollo.

Saludos.
El que no sabe lo que busca no entiende lo que encuentra.
Mi Pagina Web:  http://www.sistemasembebidos.com.ar
Mi foro:             http://www.sistemasembebidos.com.ar/foro/

Desconectado Zaphyrus

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 323
    • Mi blog: Es cuestión de actitud
Re: Memorias SD
« Respuesta #11 en: 07 de Noviembre de 2006, 11:03:30 »
Bitpic:

Con respecto al mass storage todo indica que funciona como decis. Acá te dejo los enlaces para los drivers del FT232:

http://www.ftdichip.com/FTDrivers.htm
http://www.ftdichip.com/Drivers/VCP.htm
http://www.ftdichip.com/Drivers/D2XX.htm

Lo del mass storage lo ví por algún lado pero ahora no me acuerdo. Si lo encuentro lo agrego al post.

Darukur, lo que decís es verdad. Hay que tratar de tener un gasto de investigación y desarrollo y luego amortizarlo en las ventas porque si haces bien las cosas lo único que te queda después es vender y vender :)
Lo del tiempo vs dinero lo aprendí en carne propia y aún lo sigo viviendo (bendito proyecto no veo la hora de terminarlo).

Saludos.

Martín

« Última modificación: 07 de Noviembre de 2006, 11:37:31 por Zaphyrus »
"¿Lo quiere rápido, barato, o bien hecho? Puede elegir dos de las tres cosas." Arthur C. Clarke.
Mi Proyecto Final de Carrera-Microprocesador RISC de 16 bits en HDL: http://martin.calveira.googlepages.com/home
Mi página web o blog: http://es-cuestion-de-actitud.blogspot.com/
Martín Calveira - Zárate - Argentina

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: Memorias SD
« Respuesta #12 en: 07 de Noviembre de 2006, 12:07:05 »
Muchas gracias por la ayuda.

En cuanto a los drivers ya los tengo funcionando en mi PC, la parte de comunciacion del USB con el FTDI me funciona perfectamente, el problema que tengo es que no se como hacer lo de la Mass Storage Device. Lo unico que he conseguido es la comunicacion por USB del PIC con el PC.

FTDI ha sacado los nuevos chips Vinculum, que podria ser que hiciesen esto pero no lo tengo muy claro, deje de mirarlos porque dependiendo de la aplicacion que querias hacer habia que cambiar el firmware del chip Vinculum y no me parecia buena idea. Tampoco me quedo muy claro que se pudiese hacer lo del Mass Storage Device.

Gracias.

Un saludo
BitPIC

Desconectado Zaphyrus

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 323
    • Mi blog: Es cuestión de actitud
Re: Memorias SD
« Respuesta #13 en: 07 de Noviembre de 2006, 12:43:55 »
Si, los chips Vinculum hacen justamente eso:

http://www.vinculum.com/
http://www.ftdichip.com/

La noticia está en la misma página web.

Acá te dejo información de los PICs como mass storage:

http://www.electro-tech-online.com/electronic-projects-design-ideas-reviews/24495-usb-rs232-conversion.html
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2124&param=en022613&page=wwwFullSpeedUSB
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2124&param=en024412

En este foro hablan de usar el Lpc2148 para mass storage y no el de Ftdi:

http://www.embeddedrelated.com/groups/lpc2000/show/12355.php
http://www.embeddedrelated.com/groups/lpc2000/show/12316.php

Quizás me estaba equivocando cuando te decía que había visto el FT232 con el driver de mass storage. Pido mil perdones!!! :)

Saludos.

Martín


"¿Lo quiere rápido, barato, o bien hecho? Puede elegir dos de las tres cosas." Arthur C. Clarke.
Mi Proyecto Final de Carrera-Microprocesador RISC de 16 bits en HDL: http://martin.calveira.googlepages.com/home
Mi página web o blog: http://es-cuestion-de-actitud.blogspot.com/
Martín Calveira - Zárate - Argentina

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re: Memorias SD
« Respuesta #14 en: 07 de Noviembre de 2006, 15:14:01 »
Que tal a todos, este tema es bastante interesante. Desafortunadamente yo no tengo experiencia en el uso de USB, pero es un tema que estoy comenzando a estudiar. Lo que puedo recomendar es la nota de aplicacion de micrchip, que efectivamente hace lo que tu necesitas un dispositivo de mass storage usando un microcontrolador y una memoria SD.
El link de la nota de aplicacion es:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en024394

Otra cosa que te puedo recomendar es el nuevo libro de Jan Axelson (esta mujer vaya que si es inteligente), USB MASS STORAGE. Lo puedes comprar en amazon o mas info en www.lvr.com

Jan Axelson tambien tiene su famoso libro de USB COMPLETE, este es un excelente libro para aquellos que queremos empezar con esto del USB.

Con lo que respecta al chip de FTDI, este no puede ser usado como dispositivo de mass storage, porque el chip es un convertidor USB to serial y los device drivers estan hechos para este proposito. Claro a menos que FTDI o alguien por ahi tenga conocimientos del desarrollo de device drivers e implemente el device driver.

Espero haber contibuido un poco a esto.


 

anything