Autor Tema: Leer / Escribir memoria SD  (Leído 19523 veces)

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

Desconectado mendop

  • PIC10
  • *
  • Mensajes: 15
Leer / Escribir memoria SD
« en: 04 de Septiembre de 2005, 19:10:00 »
Gente, una pregunta ... es posible leer o incluso escribir una memoria del tipo SD (como las que usan algunas camaras digitales) con pics?? Sonrisa

Siempre preguntas raras ...

Ariel

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
RE: Leer / Escribir memoria SD
« Respuesta #1 en: 05 de Septiembre de 2005, 06:36:00 »
Sip, es posible, mira lo que acaba de sacar Microchip, q me han alegrado el dia!!! Muchas risasRebotado

Mass Storage Class Firmware
The firmware implements a Secure Digital (SD) card/ multimedia card (MMC) based USB-based Mass Storage Drive. When plugged into the USB port, the firmware enumerates the SD card as a removable disk drive and allows the user to exercise all standard features of a disk drive. The user can write, read, edit and delete files on the MSD just like any other removable disk media.

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2124&param=en024412

Eso es para el compilador C18, despues tienes otra opcion para CCS, aunq para este compilador aún no he visto ninguna libreria para SD, sino para MMC (q el protocolo de comunicacion es ligeramente distinto creo!) ... a ver si saco tiempo de algun lado y puedo adaptar la libreria de C18 a CCS q tiene muyyyy buena pinta ^^ ... te dejo este link para una libreria MMC
http://www.microchipc.com/sourcecode/#mmc
Creo recordar q en los foros de CCS habia algo, te dejo el link x si quieres exar un ojo.
http://www.ccsinfo.com/forum/

Saludos!

Desconectado sanpic

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 430
RE: Leer / Escribir memoria SD
« Respuesta #2 en: 05 de Septiembre de 2005, 12:53:00 »
Hola amigos.
Los compiladores de Mikroelectronika ,   incorporan librerias para memorias  MMC y SD .

Lenguaje Basic
http://www.mikroelektronika.co.yu/english/product/compilers/mikrobasic/examples.htm


Lenguaje C
http://www.mikroelektronika.co.yu/english/product/compilers/mikroc/builtin.htm






IF you_know = true THEN                                 
     share_it
ENDIF

Desconectado mendop

  • PIC10
  • *
  • Mensajes: 15
RE: Leer / Escribir memoria SD
« Respuesta #3 en: 06 de Septiembre de 2005, 09:10:00 »
No he podido aun hacerme de un par de minutos para revisar la informacion, espero hacerlo hoy, por lo demas, les cuento que la idea es hacer un teclado donde cada empleado de la empresa ingresa un codigo al llegar y retirarse, y el teclado tiene 2 funciones principales, registra el ingreso y lo guarda en la SD o lo envia por una salida rs232, dependiendo de su configuracion. De esta manera no me hace falta tener una PC permanentemente dedicada a validar los ingresos y puedo optar por guardarlos en la SD y revisarlos luego con un simple lector

Espero sugerencias o ideas, contado asi no parece muy complicado, veremos si soy capaz de llevarlo a cabo, contando con la ayuda de uds.


Desconectado altopascio

  • PIC10
  • *
  • Mensajes: 1
RE: Leer / Escribir memoria SD
« Respuesta #4 en: 20 de Marzo de 2006, 18:01:00 »
Hola Amigos

Estoy trabajando con este ensamblador y la ultima version la numero 5

Lenguaje C
http://www.mikroelektronika.co.yu/english/product/compilers/mikroc/builtin.htm

pero no he logrado iniciar las memorias SD, tengo una memoria marca kingston de 128MB que no me inicializa, ni una de 32MB., pero con una de marca Secure digital de 256MB inicializa bien pero no puedo escribir ni leer en ningun sector.

Alguno me podria dar una mano con esto?

Flash

Desconectado pantera

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 215
Re: Leer / Escribir memoria SD
« Respuesta #5 en: 26 de Junio de 2006, 00:13:39 »
Hola. El tema que por ahora me ocupa es este las tagetas MMC o las SD, Seria genial poder almacenar tanta informacion ya que seria una buena aplicacion para dispositivos portatiles, DATALOGGER. Pero bueno por el momento de la informacion que he visto es que es mas sencillo, hechar a jalar las targetas MMC,  por que trabajan bajo el protocolo SPI.

De los links mas interesantes que he encontrado es el mismo que pone J1M y pongo este que un colega me paso espero les funcione, sin embargo no puedo poner el http: ya que quitaron el link, esta roto.

http://www.microchipc.com/sourcecode/#mmc          En la parte de hasta abajo


Por otra parte, alguien a provado la libreria que tiene el PCW se llama,  mmc_spi.c



De antemano espero que podamos realizar algo
==============================================================================
Pantera[move][move][/move][/move]Argentina nos saco del mundial !!!!![move][move][move][move][move][/move][/move][/move][/move]Bien jugado Mexico !!!!!!![/move]

La música es sinónimo de libertad, de tocar lo que quieras y como quieras, siempre que sea bueno y tenga pasión, que la música sea el alimento del amor y del alma.

        :-)El Rock es Cultura :-)

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Re: Leer / Escribir memoria SD
« Respuesta #6 en: 26 de Junio de 2006, 02:48:01 »
pantera has visto esto que se colgó en el foro?
http://www.todopic.com.ar/foros/index.php?topic=11990.0
saludos!

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: Leer / Escribir memoria SD
« Respuesta #7 en: 07 de Noviembre de 2006, 06:37:06 »
Una pregunta la ¿¿libreria MMC_SPI.c sirve para las tarjetas SD???
BitPIC

Desconectado uppicc

  • PIC10
  • *
  • Mensajes: 26
Re: Leer / Escribir memoria SD
« Respuesta #8 en: 07 de Noviembre de 2006, 12:44:49 »
prueba aver si te sirve este codigo y el esquema lo hice  CCS y me ha funcionado con varias SD las marcas que estan en el archivo probadas

Desconectado uppicc

  • PIC10
  • *
  • Mensajes: 26
Re: Leer / Escribir memoria SD
« Respuesta #9 en: 07 de Noviembre de 2006, 12:47:07 »
perdo falta los archivos hay van

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: Leer / Escribir memoria SD
« Respuesta #10 en: 07 de Noviembre de 2006, 13:01:31 »
Hola UPpicc!

El codigo que posteaste (no lo vi todavia) utiliza el sistema FAT32?
Gracias! :mrgreen:
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado uppicc

  • PIC10
  • *
  • Mensajes: 26
Re: Leer / Escribir memoria SD
« Respuesta #11 en: 07 de Noviembre de 2006, 15:57:17 »
no solo escribe y lee bytes

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: Leer / Escribir memoria SD
« Respuesta #12 en: 07 de Noviembre de 2006, 18:40:51 »
Gracias uppic, lo probare aunque todavio no he hecho el circuito. ¿la librerira mmc_spi.c es la misma que viene en el CCS verdad?

¿Que opinais de los chips DOSonChip? lo digo porque habia pensado que era una solucion facil, lo unico malo es que el circuito tendra un chip mas.

un saludo. :-/
BitPIC

Desconectado uppicc

  • PIC10
  • *
  • Mensajes: 26
Re: Leer / Escribir memoria SD
« Respuesta #13 en: 08 de Noviembre de 2006, 16:24:12 »
si no tienes tiempo ni ganas de hacerte tu propio sistema de archivo, esta muy bien y maneja hasta fat32 sin un precio excesivo

Desconectado cardavamajar

  • PIC10
  • *
  • Mensajes: 2
Re: Leer / Escribir memoria SD
« Respuesta #14 en: 02 de Mayo de 2009, 09:45:36 »
Hola a todos, les escribo en busca de ayuda

Me encuentro relizando un proyecto el cual tiene como parate uso de una mmc con fat para crear un archivo .txt, estoy programando en c18, es mi primer programa en c18 pero tengo bastante experiencia en assembler y picbasic por lo que tengo problemas que parecen faciles

Para grabar en la sd mmc con un pic 18f452, yo fui a www.microchip.com y me encontre con la an1045, me baje los archivos y los instale, posteriormente actualice el mplab y procedí a programar con el ejemplo, y me encontré con la sorpresa que no compila, no me reconoce las funciones como FSInit(), pero me conoce FSInit, y cuando uso FSInit() me sale el error con el linker que no puede encontrar la función, yo agregue todas las librerías al directorio y no funciona, que puedo hacer

Lo que me sale en el compilador es lo siguiente

______________________________________________________________________________________________________________________________________

Debug build of project `D:\SD_MMC\borrar\ver c18.mcp' started.
Preprocessor symbol `__DEBUG' is defined.
Sat May 02 06:06:02 2009
----------------------------------------------------------------------
Make: The target "D:\SD_MMC\borrar\ver c18.o" is out of date.
Executing: "C:\MCC18\bin\mcc18.exe" -p=18F452 /i"D:\SD_MMC\borrar" -I"C:\MCC18\h" "ver c18.c" -fo="ver c18.o" -D__DEBUG -Ls
D:\SD_MMC\borrar\ver c18.c:16:Warning [2054] suspicious pointer conversion
D:\SD_MMC\borrar\ver c18.c:20:Warning [2052] unexpected return value
D:\SD_MMC\borrar\ver c18.c:22:Warning [2054] suspicious pointer conversion
D:\SD_MMC\borrar\ver c18.c:22:Error [1131] type mismatch in assignment
D:\SD_MMC\borrar\ver c18.c:27:Warning [2052] unexpected return value
D:\SD_MMC\borrar\ver c18.c:31:Error [1105] symbol 'bfrSize' has not been defined
D:\SD_MMC\borrar\ver c18.c:33:Error [1146] type mismatch in argument 4
D:\SD_MMC\borrar\ver c18.c:34:Error [1105] symbol 'bfrSize' has not been defined
D:\SD_MMC\borrar\ver c18.c:34:Error [1146] type mismatch in argument 4
D:\SD_MMC\borrar\ver c18.c:37:Error [1146] type mismatch in argument 1
Halting build on first failure as requested.
----------------------------------------------------------------------
Debug build of project `D:\SD_MMC\borrar\ver c18.mcp' failed.
Preprocessor symbol `__DEBUG' is defined.
Sat May 02 06:06:07 2009
----------------------------------------------------------------------
BUILD FAILED

______________________________________________________________________________________________________________________________________

y el codigo que estoy usando es

 ______________________________________________________________________________________________________________________________________

#include "p18f452.h"
#include "FSIO.h"
#include "SD-SPI.h"
#include "FSconfig.h"
#include "salloc.h"

#define bfrsize 5

void main (void)
{
    FSFILE *pOldFile, pNewFile;
    char myData[20];
    char bfr [6];
    int bytesRead, bytesWritten;
    char newFile[] = "newfile.txt";
    char writeArg = "w";
    // Must initialize the FAT16/FAT32 library. It also initializes SPI and other related pins.
    if( !FSInit() )
    // Failed to initialize FAT16 ? do something?
        return 1; // Card not present or wrong format
    // Create a new file
    pNewFile = FSfopen (newFile, writeArg);
    // Open an existing file to read
    pOldFile = FSfopenpgm ("myfile.txt", "r");
    if ( pOldFile == NULL )
    // Either file is not present or card is not present
        return 1;
    // Read 10 bytes of data from the file.
    bytesRead = FSfread((void*)myData, 10, 1, pOldFile);
    // read bfrSize (5) items (of size 1 byte). returns items count
    bytesRead = FSfread( (void *)bfr, 1, bfrSize, pOldFile );
    // Write those fifteen bytes to the new file
    bytesWritten = FSfwrite ((void *) myData, 10, 1, pNewFile);
    bytesWritten = FSfwrite ((void *) bfr, 1, bfrSize, pNewFile);
    // After processing, close the file.
    FSfclose( pOldFile );
    FSfclose (pNewFile);
    //Delete the old file
    FSremovepgm ("myfile.txt");
}
______________________________________________________________________________________________________________________________________

Realmente no se que hacer

Por su ayuda anticipo mis agradecimientos