TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: German Quintas en 11 de Mayo de 2006, 20:20:40
-
Despues de mucho buscar encontré una libreria para el manejo de tarjetas SD en FAT16. Salió publicado en la revista Circuit Cellar para un micro ARM.
Me tomé la libertad de modificarlo para un PIC.
Yo estoy usando un 18F6722, pero cualquier PIC con 1024 de RAM y SPI funcionará ok.
Los archivos están en rapidshare: http://rapidshare.de/files/19805520/ByDiego.zip.html o adjuntos al mensaje por si alguien tiene problemas de bajarlo de rapidshare
El compilador usado es el PCWH de CCS, version 3.245.
El archivo main.c tiene ejemplos para leer y escribir datos en la tarjeta. Los ejemplos son para un archivo .txt en el directorio raíz, si bien con un poco de investigación se pueden hacer más cosas.
Si todos lo probamos podemos dar con una buena libreria que nos servirá a todos, puesto que las SD son muy económicas y con gran capacidad.
Saludos y espero noticias
-
Hola
He estado trabajando con memorias MMC en las cuales he podido escribir en cuaquier sector de la memoria.
Sin embargo ahora tengo un nuevo reto. El cual es poder crear un fichero TXT escribir en los cluster debidos para poder especificar el tamaño del archivo, Donde comienzo a escribir y todas esas cosas.
Sin embargo Realmente tengo muy pocos conosimientos de esto. Alguien podria ayudarme a aterrizar un poco de por donde comenzar.
Gracias
-
Te comento por arriba despues agregare mas:
El sector cero SIEMPRE contiene la informacion del disco y su sistema de archivos.
En el se contiene como importante:
-Texto del tipo de sist de archivos.
-Info de bytes por sector
-Info de sectores por cluster
-Info del sector de arranque
-Info de la max cantidad de directorios en el ROOT
-Info de la cantidad de sectores por FAT.
-
Con esta info del MBR (Master boot record) se arman los sgtes registros:
-Sector de arranque de datos de directorio
-Sector de arranque de datos de archivos
Todos los sistemas de archivos FAT utilizan dos tablas:
-La tabla de directorios: por cada sector se pueden almacenar 16 entradas de archivos o directorios.
EN cada entrada se almacena el tamaño del archivo, el cluster inicial (tabla de FAT), el nombre, etc.
-La tabla de FAT: Es una tabla que hace referencia al uso de los clusters del disco. Cada cluster indica si es el ultimo o cual es el siguiente a leer.
Entonces para crear o leer un archivo se debe leer en la tabla de directorios el "nombre" deseado en cada "entry".
Una vez encontrado el entry deseado se busca en el cual es el primer cluster.
Se va a la tabla de FAT al cluster indicado y se levanta la posicion logica dentro del disco.
Si se extiende mas de 512 bytes se debe ir a la tabla de FAT para buscar cual es el siguiente cluster.
-
Para realizar el manejo de sistema de archivos te recomiendo realizar capas:
-Capa de manejo de la MMC en modo SPI como un lector de sectores de memoria de 512 bytes.
-Capa de bajo nivel de FAT16: Serian 4 tareas muy importantes:
*Tomar datos de un Filenumber GET_FROM_FILENUM
*Alterar datos en un Filenumber SET_IN_FILENUM
*Adquirir posicion de proximo cluster GET_NEXT_CLUSTER
*Capturar un proximo cluster SET_NEXT_CLUSTER
-Capa de alto nivel de FAT16
*Montado de FAT 16 y adquisicion de datos
*Tarea de apertura/creacion/renombrado/cierre de archivos y directorios
*Tarea de lectoescritura de un archivo abierto