Autor Tema: Comenzando con memorias SD/MMC. Librería a nivel hardware.  (Leído 123886 veces)

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

Desconectado samshiel_pic

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 777
    • Electrónica·Ingenia
Re: Comenzando con memorias SD/MMC. Librería a nivel hardware.
« Respuesta #135 en: 06 de Diciembre de 2010, 13:37:42 »
Hola chicos llevo bastante tiempo intentando inicializar la MMC y no lo consigo. Tengo una duda y es la siguiente:

  • Estoy trabajando con el PIC18F25K20 por que es el único que tengo ahora mismo que trabaja a +3,3v pero el mirando en el datasheet no veo que pueda trabajar a 48MHz, es más con un cristal de 16MHz usando el PLL llega a 64MHz. Luego estoy pensando que ¿puede ser que la diferencia de velocidad del PIC afecte a la velocidad del SPI para la MMC?

Lo digo por esto(de UCONTROL Suky  ;-)):
Citar
Re: Manejo de Memoria SD con CCS-Librería nivel Hardware + FAT16.-
« Respuesta #74 : Enero 22, 2010, 08:26:49 »   

Hola a todos, estamos haciendo un sistema de adquisicion de datos y consiste presisamente en almacenarlos en una SD, estube chequeando sus programas y no se por que no me funciona. El cristal que estoy utilizando es de 12 Mhz y modifico la division del PLL del SPI para que en lugar de que la divida por 16 la divide por 4, tiene algo que ver eso? es que no pude conseguir un cristal de 48 MHz, o tengo que realizar alguna otra modificación?


Re: Manejo de Memoria SD con CCS-Librería nivel Hardware + FAT16.-
« Respuesta #75 : Enero 22, 2010, 10:34:29 »   

  Podes colocarle cualquier cristal externo hasta 20MHz, luego tienes que configurar el PLL para que trabaje a 48MHz. Revisa por aquí al respecto.

Luego para cambiarle a división por 4 en la velocidad SPI deberías implementar otra forma la adaptación de tensiones, mmm... no se si funcionará adecuadamente con los resistores.

Un saludo.

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Comenzando con memorias SD/MMC. Librería a nivel hardware.
« Respuesta #136 en: 06 de Diciembre de 2010, 13:43:33 »
Si usas el PLL debes leer las especificaciones de cual es la máxima velocidad del Clock SPI posible, ronda entre los 10 MHz, me parece  :? Igual, prueba inicializando a una velocidad bien baja, y luego aumenta la velocidad. Es cosa de ir probando  :undecided:


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

Desconectado fededecba

  • PIC10
  • *
  • Mensajes: 2
Re: Comenzando con memorias SD/MMC. Librería a nivel hardware.
« Respuesta #137 en: 12 de Febrero de 2011, 17:55:22 »
Hola Suki  y a todos,
estoy utilizando la libreria recientemente bajada desde la pág, y no pude hacer funcionar mi SD en el PCB que hice.

El tema es que estoy tratando de debuguear para ver en que estoy fallando y me salta un error durante la compilación (MPLAB+CCS):

En la línea 74 del archivo SDCardSPI.c dice

Código: [Seleccionar]
printf("Repeticiones para respuesta de CmdXX: %u; Respuesta recibida:%u\r\n",i,ResTmp.Val);
Y en la compilación me tira el error
Código: [Seleccionar]
*** Error 114 "D:\Temp\Fede\LIB_SD_FAT16\SDCardSPI.c" Line 74(91,94): Printf format type is invalid  ::

Revisando un poco, la definición de la función es correcta, ya que ResTmp.Val es UINT8...

Alguien me podría dar una mano con esto ? Gracias de antemano

Por cierto, en que estado de desarrollo esta esta librería ? Es 100% funcional ?

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Comenzando con memorias SD/MMC. Librería a nivel hardware.
« Respuesta #138 en: 12 de Febrero de 2011, 18:10:23 »
Ya ni me acuerdo, pero i no era de 16-bits? si es el caso tienes que colocar lu.


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

Desconectado fededecba

  • PIC10
  • *
  • Mensajes: 2
Re: Comenzando con memorias SD/MMC. Librería a nivel hardware.
« Respuesta #139 en: 12 de Febrero de 2011, 18:13:01 »
Ya ni me acuerdo, pero i no era de 16-bits? si es el caso tienes que colocar lu.


Saludos!

Jaj, tenías razon ! Gracias, yo me habia encerrado la cabeza con ResTmp.Val...

Desconectado Vicerall

  • PIC10
  • *
  • Mensajes: 1
Re: Comenzando con memorias SD/MMC. Librería a nivel hardware.
« Respuesta #140 en: 21 de Febrero de 2011, 12:55:14 »
SUKY GRACIAS POR COMPARTIR LA LIBRERIA ES UN GRAN APORTE A LA COMUNIDAD.

MI CONSULTA ES LA SIGUIENTE.

INTENTE CAMBIAR EL TAMAÑO DEL BLOQUE 512 A LA MITAD 256. DONDE DEFINES ESTE.
PERO EL ASUNTO ES QUE AL DESIGNARLE ESTE NUEVO TAMAÑO LA FUNCION SDCard_write_block(), NO RESPONDE BIEN.

HAY UNA PARTE DEL CODIGO QUE NO PUEDO ENCONTRAR PARA HACER LA MODIFICACION QUIZAS ESA SEA LA FALLA.
Código: [Seleccionar]
int inicializacion_mmc()
  {
    OUTPUT_HIGH(PIN_C2);
    for(i=0; i<16; i++)
      {
        SPI_WRITE(0xFF);
      }
    OUTPUT_LOW(PIN_C2);
      {
        SPI_WRITE(0xFF);
      } 
    i = 0; 
    do
      {     
        SPI_WRITE(0x41);         // Envia comando hasta que de la respuesta y hasta que se cumpla el tiempo
        SPI_WRITE(0x00);
        SPI_WRITE(0x00);
        SPI_WRITE(0x00);
        SPI_WRITE(0x00);
        SPI_WRITE(0xFF);            // Secuencia del comando CMD1
        i= i + 1;
      }
    while(i<250 && mmc_respuesta(0x00)==1);
    if(i==250)
      {
        return 1;                // si se supera el tiempo de respuesta no se ha inicializado bien la targeta
      }
    OUTPUT_HIGH(PIN_C2);
    for(i=0; i<16; i++)          // Alguno cloks para estabilizar la comunicación
      {
        SPI_WRITE(0xFF);
      }
    OUTPUT_LOW(PIN_C2);
    for(i=0; i<16; i++)
      {
        SPI_WRITE(0XFF);
      } 
    SPI_WRITE(0x50);
    SPI_WRITE(0x00);
    SPI_WRITE(0x00);
    SPI_WRITE(0x02);// AQUI SE DEFINE 0X200 O 512<-------------------- [b]AQUI[/b]
    SPI_WRITE(0x00);
    SPI_WRITE(0xFF);              // Comando CMD16 para configurarlo de 512 bytes
    if(mmc_respuesta(0x00)==1)
      {
        return 1;                // se ha inicializado incorrectamente
      }
        OUTPUT_HIGH(PIN_C2);
        return 0;                // se ha inicializado correctamente
  }

ESTOY USANDO LA ULTIMA VERSION DE LA LIBRERIA EN CCS, SOLAMENTE LA LIBRERIAS SD, NO ESTOY OCUPANDO EL FAT16, YA QUE NO ME ERA NECESARIO PARA LA IMPLEMENTACION.

DE ANTEMANO AGRADEZCO LA RESPUESTA

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Comenzando con memorias SD/MMC. Librería a nivel hardware.
« Respuesta #141 en: 21 de Febrero de 2011, 12:58:31 »
Primero que nada dale una leída a la reglas del foro, no se debe escribir todo en mayuscula.  ;-)

Para la operación de escritura, el único largo de bloque válido es 512, si se coloca cualquier otro valor causará un error de escritura.


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

Desconectado javierexe22

  • PIC10
  • *
  • Mensajes: 20
Re: Comenzando con memorias SD/MMC. Librería a nivel hardware.
« Respuesta #142 en: 06 de Mayo de 2011, 14:06:29 »
Hola amigos, quiero empezar a experimentar con las Memorias SD usando la librería que desarrollo suky, pero me surge un problema de hardware, resulta que quiero usar una placa entrenadora con un 18F4550, y en la misma ya tengo conectado el pin RC7/RX/DT/SDO a un dispositivo, por lo tanto no tengo acceso a SDO. Dado que el CCS proporciona control software del SPI y de la USART. Creen puedo definir o asignarle otro pin a SDO sin tener problemas mayores?
Tengo entendido que el modulo se podría configurar usando: #Use_SPI(DI=PIN_B0, DO=PIN_C5, CLK=PIN_B1,BITS=8)

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Comenzando con memorias SD/MMC. Librería a nivel hardware.
« Respuesta #143 en: 06 de Mayo de 2011, 14:36:40 »
En ese caso no utilizas el módulo MSSP del microcontrolador, sino que la comunicación se realiza por software. No creo que genere ningún problema, pero se reduce notablemente la velocidad en la comunicación SPI.


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

Desconectado javierexe22

  • PIC10
  • *
  • Mensajes: 20
Re: Comenzando con memorias SD/MMC. Librería a nivel hardware.
« Respuesta #144 en: 06 de Mayo de 2011, 16:14:55 »
En ese caso no utilizas el módulo MSSP del microcontrolador, sino que la comunicación se realiza por software. No creo que genere ningún problema, pero se reduce notablemente la velocidad en la comunicación SPI.


Saludos!

Ufa... bueno, tendré que probar para ver si se ajusta a mis necesidades. Gracias por la pronta respuesta, muy buen trabajo el que realizaste.

Saludos

Desconectado Agustina

  • PIC16
  • ***
  • Mensajes: 113
Re: Comenzando con memorias SD/MMC. Librería a nivel hardware.
« Respuesta #145 en: 02 de Agosto de 2011, 12:05:20 »
Hola Sucky, la verdad que muy bueno tu aporte.

Te ago una consulta. Esoty probando con una memoria SD duracell de 4GB (SDHC). Probe con tu libreria y con la de CCS y ninguna me funciona.

Esta conectada al puerto SPI por hardware, todo a 3.3.

El pic que uso es un 18F2680 a 20mhz.

si tienes alguna sugerencia sera bienvenida!

gracias!

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Comenzando con memorias SD/MMC. Librería a nivel hardware.
« Respuesta #146 en: 02 de Agosto de 2011, 12:08:13 »
Las SDHC soportan SPI ? Me parece que no, como máximo siempre se trabajó con memorias hasta 2Gb



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

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: Comenzando con memorias SD/MMC. Librería a nivel hardware.
« Respuesta #147 en: 03 de Agosto de 2011, 10:18:26 »
Lo soportan, pero tienen requerimientos distintos en la inicialización.
Es decir, se inicializan de forma ligeramente diferente a como se hace con las tarjetas de baja capacidad.
Otra cosa que no se es si CCS implementa dicha posiblidad.
Este diagrama puede ser de ayuda:

Diagrama SD/MMC

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Comenzando con memorias SD/MMC. Librería a nivel hardware.
« Respuesta #148 en: 03 de Agosto de 2011, 13:12:05 »
Lo soportan, pero tienen requerimientos distintos en la inicialización.
Es decir, se inicializan de forma ligeramente diferente a como se hace con las tarjetas de baja capacidad.
Otra cosa que no se es si CCS implementa dicha posiblidad.
Este diagrama puede ser de ayuda:

Diagrama SD/MMC

El enlace me re-dirige a yahoo.com.ar  :shock:
No contesto mensajes privados, las consultas en el foro

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Comenzando con memorias SD/MMC. Librería a nivel hardware.
« Respuesta #149 en: 03 de Agosto de 2011, 13:26:49 »
A mi también, copie el enlace a otra solapa y funciono. Es un diagrama de flujo de como deberia ser la inicialización para detectar todos los tipos de tarjetas.

Saludos !