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

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

Desconectado motorista

  • PIC10
  • *
  • Mensajes: 11
Re: Comenzando con memorias SD/MMC. Librería a nivel hardware.
« Respuesta #240 en: 29 de Octubre de 2014, 12:01:38 »
Bueno, aunque sigo sin entender como puedo hacer en Hi-tech,
para almacenar variables en zona de programa
o estender la ram a la zona de EEPROM
et etc (si es que lo anterior se puede)

YA HE RESUELTO el problema. Al juntar la parte de la SD con el resto de programa que tenia ya realizado, me salia el error y no podia ver mas. "de repente" me he acordado que en este programa tambien he esprimentado por primera vez con la libreria Tones.c y tenia varias canciones .......con lo cual he borrado algunas y ......sin problema espacio disponible en RAM.


 :-/ :-/ :-/ :-/ :-/

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3116
    • Automation Media Lab
Re: Comenzando con memorias SD/MMC. Librería a nivel hardware.
« Respuesta #241 en: 09 de Noviembre de 2014, 02:01:21 »
Hola amigos!

Unas preguntas respecto al hardware PIC-SDcard.

¿ Porque en la mayoría de los diagramas mostrados se usan resistencias de pull-up sí el SPI es salida tottem pole ?

Entiendo que la memoria pondrá en alta impedancia el pin MISO cuando se deshabilite , ahí se podria ocupar pullup para no dejar flotando esa linea, pero en los otros pines ?

Segun entiendo en modo SDbus se usan , pero el control se pasa a modo SPI.

LA microSD que vamos a usar no se va a quitar hasta que se carguen nuevos datos,y para eso hay que apagar el equipo.

Estoy trabajando con pic a 3.3v y microSD.


P.D. En un proyecto anterior use un attiny85 que controlaba la sdcard directo.


Saludos!!

Desconectado motorista

  • PIC10
  • *
  • Mensajes: 11
Otro empujoncito, por favor...
« Respuesta #242 en: 13 de Noviembre de 2014, 04:38:12 »
Buenos dias,
Tras dos semanas desde que consegui que me compilara la libreria de suky en Hitech, he realizado algun avance, pero aun no puedo escribir en la SD por FAT.
He conseguido que lea y escriba bloques, si la direccion que le pongo es "alta".
He conseguido que me Inicie la FAT, sin errores, pero los datos leidos en BufferFAT, no son los correctos. Tras leerme este post entero, me descargue ayer una libreria adaptada de la de suky que pone de Grabriel j. barchuck, he ido viendola y copiando los trozos que veo segun avanzo (por no empezar de cero).
Segun la explicacion cuando el BufferFAT[0] !=0xEB, entonces se leee una direccion posterior que nos indica la diferencia entre el sector fisico y logico.
En mi caso este valor es 129 (81h) o 135(87h) en dos tarjetas que tengo.
La cuestion es que intentando leer el sector 0 en esa direccion me da error (return(0)).

Continuando veo que se ha modificado tambien la rutina de read_block y el codigo añadido es:
   // if(SDCARD_Modo == SDCARD_MODO_HC)
   //     Address = Address / BLOCK_SIZE;       
   /********************************************/
   
   /* Agregado por el Ing. Gabriel J. Baruchuk, en función del brasilero */
   UINT32_VAL   MMCSDAddress;
   
   if(SDCARD_Modo == SDCARD_MODO_NORMAL)
   {
     #byte sectorL = Address
     #byte sectorH = Address+1
     #byte sectorHL = Address+2
   
     MMCSDAddress.LB = 0;
     MMCSDAddress.HB = sectorL;
     MMCSDAddress.UB = sectorH;
     MMCSDAddress.MB = sectorHL;
   
     MMCSDAddress.Val <<= 1;
   
     MMCSDAddress.HB = MMCSDAddress.HB & 0xFE;
   }
   else
      MMCSDAddress = Address;
   /********************************************/

Esto me da error en la compilacion pues no reconoce el #byte.
Una ayudita de que hace lo anterior, para adaptarlo al Hi-tech?

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6743
    • Micros-Designs
Re: Comenzando con memorias SD/MMC. Librería a nivel hardware.
« Respuesta #243 en: 13 de Noviembre de 2014, 22:28:25 »
Hola AKENAFAB! Sinceramente no recuerdo, seguramente lo tome de algún esquemático de referencia.


Saludos
No contesto mensajes privados, las consultas en el foro

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3116
    • Automation Media Lab
Re: Comenzando con memorias SD/MMC. Librería a nivel hardware.
« Respuesta #244 en: 13 de Noviembre de 2014, 23:50:09 »
Gracias Suky!

Parece que se ocupa mas cuando hay varios dispositivos en el bus y si la tarjeta se extrae e inserta varias veces.
Tambien entendi en una nota de aplicacion que la tarjeta podria habilitar sus propias pull ups dependiendo el modo, creo que en SD mas no en spi.

Solo deje pull up en CS y en MISO.

Saludos!

Desconectado motorista

  • PIC10
  • *
  • Mensajes: 11
Re: Comenzando con memorias SD/MMC. Librería a nivel hardware.
« Respuesta #245 en: 17 de Noviembre de 2014, 04:55:48 »
 :-/ :-/ :-/ :-/ :-/
Solucionado y FUNCIONANDO TODO.
Con la libreria de Grabriel j. barchuck ya me ha funcionado todo.
Por cierto Todo esto:
     #byte sectorL = Address
     #byte sectorH = Address+1
     #byte sectorHL = Address+2
   
     MMCSDAddress.LB = 0;
     MMCSDAddress.HB = sectorL;
     MMCSDAddress.UB = sectorH;
     MMCSDAddress.MB = sectorHL;
   
     MMCSDAddress.Val <<= 1;
   
     MMCSDAddress.HB = MMCSDAddress.HB & 0xFE;

Es igual a

MMCSDAddress.HB =Address*512

Desconectado nano18F

  • PIC10
  • *
  • Mensajes: 2
Re: Comenzando con memorias SD/MMC. Librería a nivel hardware.
« Respuesta #246 en: 17 de Marzo de 2015, 16:56:05 »
He probado esta libreria con las ultimas modificaciones de Grabriel j. barchuck, pero me he encontrado con una limitante muy importante, no permite crear mas de 512 archivos en un directorio. Quizas no muchos se van a topar con esta limitante pero yo necesitaba crear mas de 512 archivos dentro de una misma carpeta y no se puede. Caso similar en el directorio raiz no se pueden crear mas de 256 archivos.

Lo dejo de conocimientos publico.

Saludos

Desconectado jvb57

  • PIC10
  • *
  • Mensajes: 8
Re: Comenzando con memorias SD/MMC. Librería a nivel hardware.
« Respuesta #247 en: 31 de Marzo de 2015, 09:10:22 »
Hola Muchachos...
Soy nuevo en TodoPic, tenganme paciencia !!
Resulta que hace como un año hice un desarrollo que incluia el manejo de una memoria microSD a la que pude acceder, escribir, todo OK.
La misma esta controlada con un SPI simulado desde un PIC18, labure bastante para ajustar tiempos y funciona bastante bien !!

Ahora me doy con que una de las placas que fabricamos no le funciona la memoria, mido todos los pines del SPI se ven todos normales (sospechando que sea problema de hard).
Sigo analizando y me don con que la memoria me responde bien al CMD0 es decir que reconoce el SPI y resetea OK.
Pero cunado le mando el comando de inicializacion me respodne 0xC1 y si sigo insistiendo va variando la respuesta como si estuviese en flush o algo asi...

Midiendo veo que al segundo comando, en el 2do o 3er clock que le mando (antes de reconocer el comando) me responde algo en el pin DO... cosa mas que ilógica...
ME lei cuanto doc encontre al respecto uy no logro entender que sucede.
Parece que la memoria hubiese entrado en algun estado de bloqueo o algo asi...

A alguno le paso algo parecido que me pueda ayudar ??
Espero comentarios, gracias !!!

Desconectado micronet3

  • PIC16
  • ***
  • Mensajes: 230
Re:Comenzando con memorias SD/MMC. Librería a nivel hardware.
« Respuesta #248 en: 04 de Enero de 2017, 17:31:37 »
saludos.
una consulta, estoy utilizando la libreria de suky  y modificada por Ing. Gabriel J. Baruchuk en el compilador CCS, mi intencion es simularlo en proteus, descargue estos archivos y lo compile y sale todo normal, pero cuando habilito  #define SDCARD_DEBUG  , ya no compila y me sale lo siguiente que no reconoce a la variable MMCSDAddress, no se a que se debera este problema, a ver si alguien me hecha una manito, he intentado arreglarlo pero hasta ahora no doy con el problema
error.png
*error.png
(38.56 kB . 739x463 - visto 108 veces)