Micro SD y DS1305

Hola:

me estoy iniciando en el uso del protocolo SPI para el manejo de periféricos. En concreto me han propuesto controlar una micro SD y un RTC DS1305 con el compilador HI-TECH Picc 18.

En principio quiero desarrollar un programa muy sencillo. Por ejemplo, cuatro pulsadores: uno para leer de la micro SD, otro para escribir en micro SD, otro para leer del DS1305 y otro para escribir en DS1305.

Os agradecería muchísimo que me echáseis una mano con esto, pues me urge bastante.

Muchas gracias de antemano.
 
Lee los datasheets, el ds1305 es sencillo, si no me equivoco es el que usé en un proyecto.
La Sd es una tarea que tengo pendiente por falta de documentación, busca en el foro porque hay proyectos completos con pic. Por cierto que no se seguro si las micro SD soportan SPI
 
Hi-Tech...:unsure:

yo me encontre algo en ccs, ni siquiera lo he abierto.... puede que les sirva...
es para un mmc.card... y no recuerdo ni siquiera si lo baje de aqui del foro o de otra parte...
 

Adjuntos

  • PIC_CCS_C_MMC_card.zip
    1.8 KB · Visitas: 40
ok! muchas gracias aunque este proyecto creo que no me va a servir demasiado.

Alguien más me puede ayudar por favor?¿
 
Última edición:
En Hi tech lo he realizado pase la libreria quye habia hecho otra persona en otro foro, lo pase a Hi tech for PIC18... he hice un proyecto simple proyecta imagenes guardadas en la memoria SD y los pasa a un GLCD para visualizar...

Saludos te paso todo el proyecto y codigo....

XD:)
 

Adjuntos

  • P5.2.zip
    736.6 KB · Visitas: 30
  • IMG0107A.jpg
    IMG0107A.jpg
    86.5 KB · Visitas: 20
Hola george.manson.69:

Estoy comprobando el funcionamiento de la microSD con la librería que me has pasado y parece que funciona todo correctamente :). Sin embargo hay un detalle que no consigo comprender dentro de las subrutinas de lectura y escritura. Te remarco la línea en cuestión dentro de un recorte de la subrutina:


unsigned char SDCard_write_block(unsigned long Address,unsigned char *Buffer)
{

unsigned char Respuesta,ResTmp;
unsigned int i;

SDSelect();

// Se envia comando para escribir bloque de bytes.-

if(SDCard_send_command(CMD24,Address*512,&Respuesta)==0)
{
return(0);
}
else if(Respuesta!=0)
{
return(0);
}

.
.
.
.
.
.

En el envío del parámetro de la dirección del sector, ¿porqué se realiza esta operación?

Muchas gracias de antemano.

Saludos!!
 
Última edición:
Sí, eso lo sabía y parece que tiene algo que ver, aunque no tengo claro si es esa la única razón de peso. En las hojas de características no viene especificado nada de como se organiza la memoria en sectores, sí es sabido que cada bloque contiene 512 bytes pero es complicado saber como se ha de almacenar sin más datos...
 
Por lo que se (poco) si pasas de formato puedes poner en cada sector lo que quieras (512bytes) si no o que tienes que hacer es un formato fat u otro conocido para que sea legible en un PC.
Me suena que están disponibles todas las librerías FAT para los PIC.
 
Hola George, no he logrado hacer funcionar tu ejemplo, el error que me da es el siguiente Error: undefined identifier "LATE0", estoy utilizando MPLAB v8.73 con HI TECH PIC18 v9.64,

¿me podrias ayudar por favor :(?

Por cierto soy nuevo en este tipo de programación probablemente es configuración del LMPAB

Gracias!
 
Hola Chesco!!, Utilizo el PIC18F4550, que es el que viene configurado en el proyecto, ¿a eso te referias?

Por cierto ya lo pude compilar, tuve que desinstalar el mplab por completo e instale otra version, y ademas tuve que poner referencias de los siguientes includes en archivos que desconocian algunas funciones del spi.

#include<spi.h>
#include<spi_read.c>
#include<spi_writ.c>
#include<spi_open.c>


........................
Pero ahora me arroja esto y no se si este correcto (lo de color rojo)

Advisory[1233] Employing 18F4550 errata work-arounds:
Advisory[1234] * Corrupted fast interrupt shadow registers

Memory Summary:
Program space used 1B4Ah ( 6986) of 8000h bytes ( 21.3%)
Data space used 47h ( 71) of 400h bytes ( 6.9%)
EEPROM space used 0h ( 0) of 100h bytes ( 0.0%)
ID Location space used 0h ( 0) of 8h nibbles ( 0.0%)
Configuration bits used 7h ( 7) of 7h words (100.0%)

Running this compiler in PRO mode, with Omniscient Code Generation enabled,
often produces code which is 60% smaller and at least 400% faster than in
Lite mode. The HI-TECH C PRO compiler output for this code could be
3865 bytes smaller and run 4 times faster.
See http://microchip.htsoft.com/portal/pic18_pro
for more information.

Loaded C:\PIC C\SD_GLCD\_salida\MCC.cof.

********** Build successful! **********
 
Última edición:
Atrás
Arriba