Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

11/11/2008 #141


Hola estoy diseñando un data logger con un PIC 18F4550. Este tiene un modulo Xbee RF de transferencia radiofrequencia y una targeta SD, y comunicacion via USB. Me encuentro con el problema que la targeta usa el protocolo SPI y el modulo RF el protocolo serie, hasta aqui bien. El problema esta en que el pin 1 del PIC es el Tx y SPIout a la vez con lo que tengo un conflicto entre le Xbee y la SD. He visto que hay otros protocolos para la SD, modo un bit, modo cuatro bits, etc... Alguien me puede dar información al respecto?
Saludos y gracias
11/11/2008 #142


Catjosep por eso no te preocupes es lo de menos...
lo que yo haria en tu caso dejo el pin ese para la salidad spi e implementaria el protocolo rs232 por software que anda muy bien... y seria menos complejo que ponerme a investicar como funcionan las tarjetas en otros protocolos...
fijate que te combiene pero me parece que de la forma que digo yo vas a ganar tiempo y mucho...
11/11/2008 #143


hola nutriax, acuerdate de probar la memoria con el winhex y prueba que el programa funciona bien.
voy a traer de conseguir el adaptador para la memoria sd, pero si tu puedes hazme el favor de probar el programa.
21/11/2008 #144

Avatar de Moyano Jonathan

yo estoy igual que nutriax , a mi me ha iniciado pero me falta lo de escritura / lectura para diciembre ya voy a estar desocupado para empezar a trabajar enserio
21/01/2009 #145


Problemas con el comando de inicialización para tarjetas SD
Estimados amigos,

Hace 2 años realice un proyecto de lectura y escritura de memorias SD teniendo buenos resultados. Lo probe con memorias kingston.
Sin embargo ahora resulta que ese proyecto no me esta funcionando con un tipo de memoria SD en especial.
Me funcionan con las SD kingston de lock blanco (el que permite bloquear la escritura) pero con ninguna de las que tienen lock amarillo, tampoco con las microSD de la misma marca Kingoston.

Y no puedo decir que estén falladas esas memorias ya que la PC si las reconoce y puedo leerlas y escribirlas desde ahi.

Quisiera que me puedan orientar a solucionar este problema que tengo con la comunicación con estas memorias SD. Detallaré el problema que tengo con estas memorias.
Específicamente el problema es con el comando de inicialización. El comando de reset si me funciona, la SD me devuelve un $01 (modo spi en idle) pero luego cuando envío el comando $41 de inicialización me responde $01 es decir como si no saliese del modo idle. Cuando reintento este comando mas de 6 veces deja de responder, obteniendo puras $ff.

He probado poniendo mas retardos, mandando otros comandos $77 (error en idle) , $55 (error comando ilegal), reintentando muchas veces pero no obtengo la respuesta deseada ($00)

Probe el comando $58 y me responde que si soporta todos los voltajes desde 2.5V hasta 3.6V, yo estoy trabajando con 3.3V.

Espero que me puedan brindar su ayuda, muchas gracias.

Mahatma.
21/01/2009 #146


hola primero, no tiene nada que ver un modelo de otro (y mucho mas siendo de la misma marca), yo he probado con un monton de memorias y anda perfecto (incluyendo distintas marcas)...
para jorgealexvilla ponete a leer este hilo y fijate que ya se hablo mucho del tema y no hay mas para hablar en todo caso para fat32 tendria que haber otro hilo...
nuevamente para mahatmajg:
probaste un ciruito fisico armado con una memoria que ande y el mismo circuito lo probaste con otra memoria y no anda? porque si no lo probaste asi y armaste otro circuito me juego la cabeza que tenes problemas de hardware...
es mas fijate si no tenes invertido el sdo con el sdi. y comentame como es el tema y postea el ciruito y si tenes fotos porque eso me suena problema de circuito
21/01/2009 #147


Problema con el comando de inicializacion
Si estoy hablando del mismo circuito. Con ese mismo circuito me funciona para unas memorias SD (hasta leo y escribo) y para otras memorias SD no paso del comando de inicializacion. Mi circuito consiste de un diodo zener para bajar la tension de 5V a 3.3V y dar asi el power. los pines de señal los manejo con divisor de tension con resistencias (de 5V del uc a 3.3V). Cabe señalar que para estas memorias que no me funcionan con el comando de inicializacion, si me funciona el comando de reset $40 y el comando de soporte de voltaje $58.

Creeme que he probado muchas cosas que se indican en este foro pero hasta ahorita ningun resultado, gracias por tu ayuda.
22/01/2009 #148


yo otra cosa que probaria es revisar el codigo porque cuando la inicialisas muchos esperan 2 byte de respuestas y en realidad tenes que esperar como maximo 20 porque dentro de esos te responde con el byte de ok, no se si me explico...
26/01/2009 #149


Problemas con inicializacion SD
Si he probado mandando varios $FF despues del comando de inicializacion, mas de 100, pero no me retorna el valor esperado que es $00. Quiero aprovechar para preguntar si es que es necesaria que la frecuencia de clock del spi sea de 400KHz o 312KHz como he visto en algunas contribuciones?, yo estoy usando un uc con crystal de 16MHz y he probado con prescaler de 64 (250Khz) y con prescaler de 32 (500KHz) y sigo con el problema, quiero saber si es que eso podria estar ocasionando mi problema. Recuerdo que mi hardware y firmware estan funcionando para unas memorias SD y para otras no.

Gracias por vuestra atensión.

Mahatma.
22/02/2009 #150


Hola tengo un problema he estado en el proyecto del lector gravador de SD, pero tengo un problema, por ahora lo que nos dejaron es inicalizar la memoria SD con SPI, bueno hemos estado leyendo un poco de esto y los comandos para realizar esto son el comando 0 y el comando 1, en terminos de pic debe ser 40 y 41, cuando intento inicializar la sd, segun si la inicializar pero ahora cuando no tiene SD hace exactamente lo mismo, es por eso que no se si esta respondiendo bien aqui esta mi codigo, espero que me ayuden por favor, es que como probamos y si enviaban los comando bien pensamos que ya estaba bien pero se me ocurrio comprobarlo quitandole la memoria al adaptador y respodnia de la misma forma saludos
Archivos Adjuntos
Tipo de Archivo: c examen2_870.c (2,4 KB (Kilobytes), 133 visitas)
10/03/2009 #151


jaiser dijo:
Saludos, yo tambien estoy trabajando con las memorias mmc y he logrado inicializarla un poco diferente y tambien escribe los datos aunque no todavia en fat.

Este archivo contiene la simulacion y el programa en ccs asi como el .hex. Esta libreria usa pines diferentes a los predeterminados para protocolo spi pero funcionan y tambien brinda mayor flexibilidad porque se puede escoger que pines del pic usar

Hola Jaiser,

he intentado probar el programa que colgaste, pero al intentar compilar me da un error en el archivo mmc_spi.c, "expecting an identifier". Sabes porque puede ser? Estoy intentando crear un programa que me permita leer y escribir una tarjeta SD, con un PIC18F4620 y no logro hacerlo . Agradecería que alguien pudiera ayudarme.

Muchas gracias.
Saludos

Gracias. Un saludo!
17/03/2009 #152


PIC con memoria SD
Pues ya logre comunicar el PIC con la SD, inicializo y escribo perfectemante gracias a algunas modificaciones del programa de Paloky, pero estoy tratando de mandarle datos al PIC via RS232 y cuando le complemento esto a mi programa con esta interface ya no funciona, si alguien sabe que puede ser le agradeceria su apoyo.

Pues aqui les mando mi programa que es una modificacion del de paloky:

Saludos!
Archivos Adjuntos
Tipo de Archivo: c prueba1_my_sd_pic_119.c (8,3 KB (Kilobytes), 338 visitas)
17/03/2009 #153

Avatar de Moyano Jonathan

Ahora kike81 , una pregunta pongamosle que tenga un pic con más Ram como el pic18f2550 como hago para poder leer el sector completo , es decir los 512 bytes en ves de 192?
19/03/2009 #154


eso no lo he hecho pero creo que con mas RAM vas a poder agregar mas sectores(del 1 hasta el 8).
Eso lo voy a probar la proxima semana, checalo y me dices que tal te fue.
08/04/2009 #155


Comunicación SD/PIC18f2550
Holas a todos he estado leyendo bastante sobre este tema, en mi caso tengo una duda para la escritura y lectura de la trajeta, por lo he visto que para el tamañp del bloque se usa esto:

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

puts("Write block\n\r");

OUTPUT_LOW(PIN_C2);

SPI_WRITE(0x58);
SPI_WRITE(HIGH(varh));
SPI_WRITE(LOW(varh));
SPI_WRITE(HIGH(varl));
SPI_WRITE(0x00);
SPI_WRITE(0xFF);

no entinedo bien que hace este pedazo de codigo creo k esta usando CCS y yo uso el C18.

Agradeceria mucho me ayuden
El codigo que llevo es el que adjunto.
Archivos Adjuntos
Tipo de Archivo: c ttv1_110.c (3,0 KB (Kilobytes), 97 visitas)
14/04/2009 #156


Con respecto al programa de platanit087 una de las soluciones se podria usar un pin para detectar si la tarjeta esta insertada en el zocalo el mismo trae un pin.

Los zocalos que vienen y que yo he comprado viene con 10 pines dentro de la cual esta el pin que se usa para detectar la tarjeta cuando se inserta y los zocalos de 12 pines tiene un pin la cual te indica si esta bloqueada o no

Aca les dejo las conexiones del zocalo de la tarjeta y un integrado para la interfase
Archivos Adjuntos
Tipo de Archivo: pdf los_pines_del_zocalo_donde_se_inserta_la_tarjeta_mmc_512.pdf (27,1 KB (Kilobytes), 397 visitas)
16/04/2009 #157


Buenas;

estoy probando de inicializar una SD, pero no funciona...
pido si alguien me puede repasar el codigo, ya que hace cosas muy extrañas.

He tenido que meter unos delay_ms porque se me quedaba colgada en un bucle
cuando enviaba un valor por SPI.

Muchas gracias
Archivos Adjuntos
Tipo de Archivo: c proba_mmc2_288.c (3,3 KB (Kilobytes), 133 visitas)
16/04/2009 #158


Programa PIC-SD
te mando lo que yo hice, es una modificacion del codigo de Paloki, espero te sirva.

Usa el programa Hexplorer para revisar que este escribiendo en la SD.

saludos y suerte
Archivos Adjuntos
Tipo de Archivo: c prueba1_my_sd_pic_181.c (8,1 KB (Kilobytes), 242 visitas)
20/04/2009 #159


aqui mando la conexion de la SD con el PIC

Suerte!
Archivos Adjuntos
Tipo de Archivo: doc ayuda_p_foroelect_168.doc (93,5 KB (Kilobytes), 338 visitas)
25/04/2009 #160


Hola

Bueno, casi no he aportado en foros, pero ahora veo que es de mucha utilidad esto, mi proyecto es de la facultad, y se trata de la SD, se supone que lo que debe hacer es leer datos de un archivo y escribirlo a la SD, ese archivo sera de audio para luego reproducrilo, hasta ahortia solo llevo la inicializacion de la SD, asi como lectura y escritura y como veo en este foro nadie ha posteado bien como es este proceso o puesto algo que funcione al 100% o si les ha funcionado no lo han puesto, pero recopilando toda la información que han puesto ha sido de gran utilidad para poder llegar a lo que he llegado, bueno como este foro practicamente lo ven muchas personas aun no puedo poner todo el codigo por que la verdad es que tengo la teoria que alguno de mis compañeros del grupo se chacalearon el codigo que habia puesto, bueno pero no hay que ser envidios, si alguien esta interesado en el desarrollo aqui posteare cuando sean vacaciones o sea como en junio, todo el proceso de esto de la SD, y si alguien tiene problemas pues les dejo mi correo de hotmail para que se contacte con migo, como les digo no es por ser envidiodo pero pues es por cuidar el proyecto.

Uso el PIC16F877A con un critsal de 4 MHZ, a mi me funciono, al principio del post el gran creador de este tema muy interesante puso que afuerzas era con uno de 20Mhz, no se a que se debe, ademas uso la SD de ScanDisk de 1 GB, esto no se que tanto varie conforme a otras marcas, me recomendaron hacerlo con esa marca y ese tamaño, otra cosa que pude apreciar es que muchas veces los algoritmos o el proceso de escritura y lectura es un poco tediosa, en realidad lo es, pero los algoritmos que viene en algunas paginas sirven mucho solo el pequeño detalle es que varian en pocas cosas o practicamente en nada, esto lleva a hacer algo asi de prueba y error y cambiarle pequeñas cosas que aun que no se vea el cambio puede funcionar.

Mi correo de hotmail es reymar_44@hotmail

Bueno aprovechando este choro que les puse , necesito preguntarle a los experto de este tema, una duda hacerca de la lectura escritura leei que para acceder al sector 2, necesitamos poner algo asi.

spi_write(0x58) ;
spi_write(0x00) ;
spi_write(0x00) ;
spi_write(0x02) ;
spi_write(0x00) ;
spi_write(0xFF) ;

esto si funciona pero para acceder a otro sector he intentado hacer esto para acceder al sector 3


spi_write(0x58) ;
spi_write(0x00) ;
spi_write(0x00) ;
spi_write(0x03) ;
spi_write(0x00) ;
spi_write(0xFF) ;

peron no funciona, alguien me explicar paso a paso sobre los agrumentos de este

saludos
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.