Autor Tema: LECTO-GRABADOR de tarjetas MMC , SD, MicroSD con pic 16F877A  (Leído 64165 veces)

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

Desconectado Ducky

  • PIC10
  • *
  • Mensajes: 18
Re: LECTO-GRABADOR de tarjetas MMC , SD, MicroSD con pic 16F877A
« Respuesta #105 en: 27 de Julio de 2009, 14:07:42 »
Hola!
buenop la verdad yo soy nuevo, y buenop hace poco empeze a trabajar con la MMC y el pic 16f876A, eh conseguido escribir y leer, pero tengo que estar asignando el bloque que quiero leer o escribir, alguien me podria decir como hacerle para escribir de manera continua, osea k no me limite a escribir o leer solo 512 bits sino k escriba por toda la memoria de manera continua. agradeceria mucho su ayuda.  :(
け.:. Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas .:. け

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: LECTO-GRABADOR de tarjetas MMC , SD, MicroSD con pic 16F877A
« Respuesta #106 en: 27 de Julio de 2009, 14:50:23 »
Hola Ducky, no podes escribir en forma continua, es decir solo podes leer/escribir de a 512 bytes.

Saludos !

Desconectado Ducky

  • PIC10
  • *
  • Mensajes: 18
Re: LECTO-GRABADOR de tarjetas MMC , SD, MicroSD con pic 16F877A
« Respuesta #107 en: 27 de Julio de 2009, 20:12:21 »
Hola RICHI777!!!  :)
gracias por responder, ok te comento yo logre escribir bloques de 1024 o bien en 2 bloques de manera continua, pero no consegui escribir en los demas era por eso mi pregunta pero buenop, hay algun modo de saber que el bloque en el que se este trabajando esta lleno para que brinque de manera automatica al siguiente bloque a escribir???
け.:. Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas .:. け

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: LECTO-GRABADOR de tarjetas MMC , SD, MicroSD con pic 16F877A
« Respuesta #108 en: 27 de Julio de 2009, 20:49:26 »
No se en las tarjetas MMC, pero en las SD están los comandos CMD18/CMD25 que permiten la lectura/escritura de múltiples bloques, y para terminar se envía el comando stop (CMD12).
hay algun modo de saber que el bloque en el que se este trabajando esta lleno para que brinque de manera automatica al siguiente bloque a escribir???
Esto no lo entiendo, porque tu deberías tener el control de cuantos bytes se han enviado como para saber si ya se ha llenado el sector  :mrgreen:

Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Ducky

  • PIC10
  • *
  • Mensajes: 18
Re: LECTO-GRABADOR de tarjetas MMC , SD, MicroSD con pic 16F877A
« Respuesta #109 en: 28 de Julio de 2009, 01:48:40 »
ummm que rayos,  :shock: nose si me puedan ayudar a implementar la escritura continua de bloques,o bien saber si termino de escribir los 512bytes para que pase a escribir al siguiente bloque, este es mi codigo de escritura para la MMC, guarda en la memroia lo que llega por RS232. la verdad ya llevo algun rato dandome de topes porque no consigo guardar en varios bloques sin tener k asignarlos manualmente, desearia que se asignaran de manera automatica en cuanto se llene el bloque actual. suky comenta que con el CMD18/CMD25 es probable que se pueda pero no tengo idea decomo implementarlos. :?

int mmc_write_block(unsigned long block_number)
{
    unsigned long varh,varl;

   varl=((block_number&0x003F)<<9);
   varh=((block_number&0xFFC0)>>7);

     OUTPUT_LOW(PIN_C2); // set SS = 0 (on)

   SPI_WRITE(0x58); // send mmc write block 58
   SPI_WRITE(make8(varh,1));
   SPI_WRITE(make8(varh,0));
   SPI_WRITE(make8(varl,1));
   SPI_WRITE(0x00); // always zero as mulitples of 512
   SPI_WRITE(0xFF); // checksum is no longer required but we always send 0xFF

   if((mmc_response(0x00))==1) return 1;
 
   SPI_WRITE(0xFE); // send data token

   printf("Listo para recibir datos\r\n");

do
{
   dato=getch();
   if(dato!=0x00)
   {
      if(dato=='Z') // si es Z sal para llamar subrutina Leer
      {
         goto next;
      }
      else
      {
        SPI_WRITE(dato); // escribiendo en memoria lo que llega por RS232
      }
   }

}while(TRUE);

Next:

   SPI_WRITE(0xFF); // dummy CRC
   SPI_WRITE(0xFF);

   if((SPI_READ(0xFF)&0x0F)!=0x05) return 1;

   OUTPUT_HIGH(PIN_C2); // set SS = 1 (off)

return 0;
}



Gracias: Saludos
け.:. Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas .:. け

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: LECTO-GRABADOR de tarjetas MMC , SD, MicroSD con pic 16F877A
« Respuesta #110 en: 28 de Julio de 2009, 12:48:11 »
Para comenzar con la escritura debes enviar 0x59 | dirección de 32-bits | 0xFF y para enviar stop 0x4C|0x00|0x00|0x00|0x00|0xFF
Lee el siguiente pdf, es para sd card pero puede ayudarte a comprender que se envía y recibe según el comando.

Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado NANO1985

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
    • Desarrollos Tecnologicos - Tucuman - Argentina
Re: LECTO-GRABADOR de tarjetas MMC , SD, MicroSD con pic 16F877A
« Respuesta #111 en: 28 de Julio de 2009, 13:10:43 »
Para comenzar con la escritura debes enviar 0x59 | dirección de 32-bits | 0xFF y para enviar stop 0x4C|0x00|0x00|0x00|0x00|0xFF
Lee el siguiente pdf, es para sd card pero puede ayudarte a comprender que se envía y recibe según el comando.

Saludos!

que buenos recuerdos me trae ese manual de sandisk... me acuerdo cuando inicializada ,escribía y leia en la SD... y todo en lenguaje ensamblador... que buen manual.- te lo recomiendo Ducky
Saludos  8)
"La inquebrantable voluntad de vencer"
"hay dos cosas infinitas... El universo y la Estupidez humana" Albert Einstein
 "El sabio actua sin anhelos, permanece sosegado,... así no es afectado por el resultado de sus acciones sean éstas el triunfo o el fracaso"
- UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL TUCUMAN -

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: LECTO-GRABADOR de tarjetas MMC , SD, MicroSD con pic 16F877A
« Respuesta #112 en: 28 de Julio de 2009, 13:22:49 »
Hola independiente de que escribas con el comando de multi bloques, el comando de escritura te deberia funconar para cualquier bloque, mirando el codigo no podrias primero recibir en un buffer los 512 bytes del RS-232 y luego cuando se complete mandar a escribir ?

Saludos !

Desconectado Ducky

  • PIC10
  • *
  • Mensajes: 18
Re: LECTO-GRABADOR de tarjetas MMC , SD, MicroSD con pic 16F877A
« Respuesta #113 en: 28 de Julio de 2009, 14:36:19 »
Hola!! gracias a todos por echarme la mano con esto, OK hechare un vistaso al PDF muchas gracias, y RICHI777, umm io creo ke sip se podria llenar un buffer o algo pero aun toy algo chavito  :D y ps si toy batallando algo para la realizacion de este proyecto.
en si mi proyecto consiste en guardar 'X' cantidad de datos en la MMC durante un día, los datos que seran guardados son cadenas variables por ejemplo: (13.7V>41 0C 0E FB >41 0D 2A >41 05 87 > y puede ir omitiendo o agregando cosas), intente aplicar un contador pero el contador ocasiona que se pasme toda la operación ya que no consigue realizar el conteo de manera exitosa. ahora la PC no va a estar precente al momento de guardar, es por eso que quiero que automaticamente se este asignando el bloque de escritura. 

Gracias.
Saludos!!!
け.:. Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas .:. け

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: LECTO-GRABADOR de tarjetas MMC , SD, MicroSD con pic 16F877A
« Respuesta #114 en: 28 de Julio de 2009, 16:07:37 »
Hola, mucho no entiendo como escribis, si usas CCS porque no usas el sistema de archivo y asi lo que grabes lo podes leer directamente desde una PC.

Saludos !


Desconectado fidodido18

  • PIC18
  • ****
  • Mensajes: 312
Re: LECTO-GRABADOR de tarjetas MMC , SD, MicroSD con pic 16F877A
« Respuesta #115 en: 29 de Julio de 2009, 13:35:28 »
Hola a todos, he estado buscando por todo el foro y depronto se me escapo y no he visto la libreria para CCS para lectura y escritura en una SD....
Alguien me podria ayudar a encontrarla, es para hacer pruebas con unas imagenes...

gracias...

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: LECTO-GRABADOR de tarjetas MMC , SD, MicroSD con pic 16F877A
« Respuesta #116 en: 29 de Julio de 2009, 19:38:24 »
Hola a todos, he estado buscando por todo el foro y depronto se me escapo y no he visto la libreria para CCS para lectura y escritura en una SD....
Alguien me podria ayudar a encontrarla, es para hacer pruebas con unas imagenes...

gracias...
Esta en PICC/Drivers/mmc_spi.c  :mrgreen:

Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Ducky

  • PIC10
  • *
  • Mensajes: 18
Re: LECTO-GRABADOR de tarjetas MMC , SD, MicroSD con pic 16F877A
« Respuesta #117 en: 10 de Agosto de 2009, 22:04:02 »
Hola
estoy grabando los datos que transmite una bascula, espero me puedan dar opciones, lo que estoy haciendo es agregar un contador (para que sea automaticola asignacion de bloques), el cual se suma 1 para avanzar entre bloques mismo que se sumara al recibir X caracter que yo design, ahora lo que sucede es que funciona bien los primeros 3 bloques despues se queda como en un ciclo infinito y no respeta la funcion de escritura. espro que me puedan ayudar o dar opciones, gracias.

saludos! 
け.:. Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas .:. け

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: LECTO-GRABADOR de tarjetas MMC , SD, MicroSD con pic 16F877A
« Respuesta #118 en: 10 de Agosto de 2009, 22:07:43 »
Muéstranos el código sino lo veo difícil de encontrar algún problema  :mrgreen:

Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Ducky

  • PIC10
  • *
  • Mensajes: 18
Re: LECTO-GRABADOR de tarjetas MMC , SD, MicroSD con pic 16F877A
« Respuesta #119 en: 10 de Agosto de 2009, 22:19:53 »
Ok!!

Aqui dejo mi programa adjunto en un .txt, lo estoy programando en CCS C

Gracias!!!
け.:. Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas .:. け


 

anything