• Miércoles 20 de Noviembre de 2024, 18:23

Autor Tema:  Lecto - Grabador De Tarjetas Mmc , Sd, Y Micro Sd  (Leído 3079 veces)

NANO1985

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Lecto - Grabador De Tarjetas Mmc , Sd, Y Micro Sd
« en: Martes 12 de Junio de 2007, 16:20 »
0
Hola!!!! quiero hacer una aporte a toda la comunidad electronica... y de paso poder complementar con otra informacion para lograr que este circuito llegue a la plenitud de su desarrollo. el mismo consta de un microcontrolador PIC16F877A con un oscilador de 20Mhz (luego voy a explicar porque el de 20)... un par de resistencias para "ajustar" los niveles de tension que manejan las tarjetas SD,MicroSD y MMC (2.7 a 3.3 v) a los niveles de la lógica TTL de la arquitectura del PIC, las diversas memorias que existen en el mercado, desde el punto de vista técnico, pueden trabajar mediante dos protocolos serie distintos: el protocolo MultiMediaCard propiamente dicho, y el protocolo SPI. El primero de los protocolos es el más potente  ya que permite más operaciones que el segundo, pero por otro lado, el segundo es más fácil de implementar si se dispone de una interfaz SPI  (en este caso mediante el modulo MSSP interno del pic) y es suficiente para la mayoría de aplicaciones. la tarjeta se comunica mediante Comandos del operador o Controlador, respondiendo en cada caso cada una de las peticiones del mismo. Yo por el momento logré paso a paso lo siguiente:

(1) seleccionar el modulo MSSP del pic para que funcione de modo maestro,... se utilizan para configurarlo solo 2 registros principales el SSPSTAT y el SSPCON1.
(2) mediante el 2 registro se selecciona el clock del modulo SPI, son 4 posibilidades distintas de frecuencias,... 1- Fosc/64 \\\ 2-Fosc/16 \\\ 3-Fosc/4 \\\ 4- Fosc=timer2/2
(3) en este caso tenemos que utilizar indefectiblemente un cristal de 20Mhz para que al seleccionar el divisor de frecuencia de clock a 64 (opcion1 item anterior) logremos obtener una frecuencia de clock de aproximadamente 312Khz... (frecuencia necesaria para inicializar la memoria)...
(4) luego debemos setear el tipo de polaridad del clock, momento en quese va a muestrear la entrada y ... haciendo CKP=1 CKE=0 SDI(SMP)=0 ...(son bits de los registros nombrados anteriormente)
(5) finalmente ya hemos inicializado el modulo del micro activandolo poniendo a "1" el bit SSPEN

ahora sigue la secuencia de pasos inalterables:

los son pasos muy precisos y específicos... cada comando entrega una respuesta de parte de la tarjeta.
a continuacion se detalla la cadena de cada comando a enviar y que se debe esperar de parte de la tarjeta.

CMD0--- cadena a enviar: 0x40,0x00,0x00,0x00,0x00,0x95 esperar respuesta: 0x01 (significa tarjeta en modo idle).
CMD41--- cadena a enviar: 0x41,0x00,0x00,0x00,0x00, 0xXX. Como la tarjeta ya esta en modo SPI el CRC (0xXX) puede tomar cualquier valor. se aconseja cargarle 0xFF. esperar respuesta 0x00 (significa tarjeta lista!!!! )
CMD55--- ESTE COMANDO NO ES UTILIZA PARA TARJETAS KINGSTON... SI TU TARJETA NO ES DE ESTA MARCA DEBERÁS ENVIARLE ESTE COMANDO. cadena a enviar: 0x77,0x00,0x00,0x00,0x00, 0xXX Y ESPERAR UN 0X00 DE RESPUESTA.
CMD58--- este comando es muy importante ya que se le "pregunta" a la tarjeta si está posibilitada a funcionar con una tension de alimentacion de 3.3v. cadena a enviar 0x7A,0x00,0x00,0x00,0x00, 0xXX. esperar respuesta 0x00 (significa que todo va OK!!!!)

luego de haber terminado la inicializacion, la tarjeta ya estla lista para realizar operaciones de lecto-escritura... pero lamentablemente acá se me recomplicó la cuestión.... hace una semana que estoy intentando escribirle algo y se vé que algun moco me estoy mandando o saltié algun paso,...porque no me responde nada cuando peticiono la escritura mediante el comando 24... nosé la verdad... voy a seguir intentando,.... y si hay progreso voy a seguir publicando más info...

si alguien está interesado en este proyecto no duden en intentar... por cualquier duda de hard o soft comunicate conmigo

vamos!!!! vamos!!!! pongansé las pilas e investiguen en este tema!!!!!! que está muy GROSSOOOO!!!

(tengo mucha informacion al respecto como para compartir sin problema)

NANO1985

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Lecto - Grabador De Tarjetas Mmc , Sd, Y Micro Sd
« Respuesta #1 en: Miércoles 13 de Junio de 2007, 02:01 »
0
acá les mando una fotos sobre el proyecto ....como verán todavia está en pañales ...pero seguimos probando....

apropósito.... alguien tiene programas de ejemplo en assembler sobre el modulo SPI del PIC16F87X??... porque se me hace que me estoy mandando unos mocos ... en las rutinas que envia los comandos......
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

mariokarma

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Lecto - Grabador De Tarjetas Mmc , Sd, Y Micro Sd
« Respuesta #2 en: Domingo 17 de Junio de 2007, 03:25 »
0
aca tenes un ejemplo, lo utilizan para escribir en el display de un nokia, interesante tu proyecto

h**p://foro.aiec.fisica.ull.es/viewtopic.php?p=143&sid=837db2a1a4c4595422f85bfaf79eb86c#top

lalo_soft

  • Miembro MUY activo
  • ***
  • Mensajes: 469
    • Ver Perfil
Re: Lecto - Grabador De Tarjetas Mmc , Sd, Y Micro Sd
« Respuesta #3 en: Miércoles 20 de Junio de 2007, 01:55 »
0
¿Tiene implementado FAT16/32 para exportar los datos al PC?  :huh:

lalo_soft

  • Miembro MUY activo
  • ***
  • Mensajes: 469
    • Ver Perfil
Re: Lecto - Grabador De Tarjetas Mmc , Sd, Y Micro Sd
« Respuesta #4 en: Viernes 6 de Julio de 2007, 17:20 »
0
Ya que estan mostrando juguetitos. Aqui mi implementacion de un reproductor MP3 basado en micros ARM SAM7 ,leyendo el archivos *.mp3 desde una SD formateada en FAT16 el programa lo hice en C++ con tecnologia POO (programacion orientada a objeto).La memoria SD esta con un clk de 1Mhz, y la data mp3 es enviada a 2Mhz ,el cpu core esta a 49.5MHz.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.