Lecto-grabador de tarjetas MMC, SD, MicroSD con PIC16F877A
| #41 Archivos .txt en la sd |
|
bluetoothman
|
Hola amigos.
Acerca de la parafernalia que se necesita, la mejor guìa que pude hallar, y que además está en Español, está en el siguiente link: http://homepages.mty.itesm.mx/al778081/ Espero que les sirva, acerca del código en C o similar para PIC no podría ayudarles, ya que trabajo micros de Motorola. |
|||||||||||
|
|
||||||||||||
| #42 |
| #43 no puedo comunicarme con la SD! |
|
serchy
|
Hola amigos, aver si me pueden dar una mano con esto de las SD! hace rato que estoy intentando la comunicación sin éxito, hice un programa simple que grabe el bloque de 512 bytes con datos cualquiera. una cosa mas, cuando se escriba la sd, como puedo hacer para verla en la PC? se genera un archivo sin extension, o que? muchas gracias, ahi va el codigo
la verdad que no se donde esta el error, por favor, si me pueden ayudar se los agradeceria! GRACIAS! |
|||||||||||
|
|
||||||||||||
| #44 |
|
hawpic
|
Hola Sergio! como lo llevas?
Yo estoy en lo mismo, debemos ser los unicos que estamos intentandolo en asm. Yo lo hago con un PIC16F690 asi que no tenemos muchas diferencias. Dices que no te funciona pero tienes escrito semejante tocho de codigo? Ufff.. has comprobado primero que manejas bien el SPI? yo compre una memoria 25LC040 por unos cincuenta centimos y comprobe que funcionaba bien mi codigo SPI para asegurarme Despues ya sabiendo que eso funciona yo haria la inicializacion paso por paso.. le he estado echando un ojo a tu codigo y he encontrado un par de cosillas, te comento: cuando mandas un comando, por ejemplo CMD0, envias los bytes correspondientes y luego llamas a sd_respuesta para leer R1, no? pues bien.. R1 esta compuesto por tres bytes: FFxxFF y tu solo haces una lectura asi que lees solamente FF (con hacer dos ya es suficiente). Te recomiendo coger un osciloscopio y ver todas las respuestas de la tarjeta, veras como es asi. cuando leas el segundo byte (xx en FFxxFF) tienes que comprobar que es lo que esperabas. despues de mandar CMD0 deberias obtener como respuesta FF01FF -tarjeta en idle-, sin embargo tu lees, almacenas en R1 y no compruebas el valor.. eso no deberia darte muchos problemas. despues la gente manda el comando CMD1 pero los d e la SD card association en sus documentos recomiendan mandar ACMD41 (precedido del CMD55 por ser un aplication command). En cualquiera de los casos tu envias el comando y recibes otro response R1, pero esta vez tienes que leer FF00FF, asi que tendras que hacerte un loop hasta que te llegue eso y no el FF01FF que te llegara mientras la tarjeta siga en modo idle.. Hala, creo que tienes un poquico de faena, animo! Si no me he explicado bien o no entiendes algo pregunta cuanto quieras! Un saludo |
|||||||||||
|
|
||||||||||||
| #45 |
|
bluetoothman
|
Alguien sabe como hacerlo en el assembler, pero con micros de Motorola?
|
|||||||||||
|
|
||||||||||||
| #46 una manito... |
|
serchy
|
hawpic, muchas gracias por tu guia! la verdad q estaba un poco perdido.
al funcionamiento del protocolo SPI del pic, yo lo he probado con "proteus" (programa de simulacion que recomiendo) y funciona bien. La verdad que no sabia que la respuesta de la SD fuese de tal forma, pues en todos lados dicen que es un solo byte de respuesta. por eso no le di importancia a la comprobacion en el codigo Ahora con tu ayuda, manos a la obra nuevamente..! dos preguntitas, la configuracion que hice para el puerto SPI es correcta? (CKP=1 CKE=0 SMP=0) una cosa mas, luego de escribir la tarjeta, hay alguna forma de ver esos datos en la PC? bluetoothman ni idea de micros motorola, pero sigue intentando que se de personas que lo hicieron funcionar... mas precisamente en mi facultad, un proyecto final se basaba en parte a la comunicacion SD - micro Motorola Saludos! |
|||||||||||
|
|
||||||||||||
| #47 |
|
DriX
|
|
|||||||||||
|
|
||||||||||||
| #48 |
|
hawpic
|
De nada serchy, pa eso estamos aqui
Lo del funcionamiento del SPI simulado con proteus me parece bien, pero supongo que tambien te habrá pasado que alguna vez una simulacion es buenisima pero luego llegas, montas y misteriosamente no funciona. Por eso te recomiendo que lo compruebes primero pa por si acaso. Lo de la respuesta de la SD.. Sabes que hay diferentes tipos de respuestas segun el comando que envies, no? en los que tu envias recibes un response R1, que es cierto que todos dicen que es un byte de respuesta, pero te animo a que leas tres bytes despues de enviar un comando y lo veas con tu osciloscopio. El primer byte leido sera FF, el segundo R1 y el tercero FF (este ultimo si quieres ni lo leas, pero antes del R1 siempre leeras FF) Tus preguntas.. La configuración para el puerto SPI.. Pues veras, acabo de probar con tu configuracion (CKP=1 CKE=0 SMP=0) y funciona, pero te recomiendo mejor usar esta: CKP=0 CKE=1 SMP=0, si ves las formas de onda con el osciloscopio veras que se ven mucho mejor. He visto codigo de gente aqui que usa tu configuracion, yo la mia la saque de un codigo de microchip. Asi que eso a tu gusto, parece ser que funciona igual de bien de las dos formas, eso si, si lo miras con un osciloscopio la mia es mucho mas clara Tu otra pregunta.. si señor, claro que hay forma! Lo de darle formato de texto parece bastante chungo asi en principio (para mi eso aun esta muy lejano.. Supongo que ya habras buscado mucha informacion y tal pero pa por si acaso te recomiendo mirarte esto: www.cs.ucr.edu/~amitra/sdcard/Additional/sdcard_appnote_foust.pdf y esto: http://www.sdcard.org/about/memory_card/pls/Simplified_Physical_Layer_Spec.pdf Hala, si tienes tiempo libre ya tienes en que ocuparlo |
|||||||||||
|
|
||||||||||||
| #49 |
|
serchy
|
Hola a todos, muchachos, ya logre inicializar la !·"$%!·$!"·$ tarejta :D no lo hice antes xq en mi cuidad se quedaron sin PIC ni 877 ni 876 y al que yo tenia lo queme insertandolo mal en el programador
Paso a contarles el problema que tengo, cuando intento escribir la tarjeta, mando el comando 24 como es debido, recibo respuesta 0x00 de la tarjeta.. todo ok mando el byte de comiezo de escritura 0xFE el token de 512 bytes de datos (en escritura el tamaño debe ser ese siempre), los 2 bytes de CRC, y luego ocurre algo extraño, la tarjeta se la pasa mandando 0x00 mande lo que mande... como que se queda tildada ahi... agradeceria su respuesta... ahora voy a intentar enviar los datos mas rápido, pues creo que se trata de un problema de tiempo... alguna novedad, posteo nuevamente, y GRACIAS a todos sus aportes y a hawpic! |
|||||||||||
|
|
||||||||||||
| #50 |
|
hawpic
|
Que hay de nuevo serchy? me alegra ver que no has desistido
Lo primero.. eso de los 2 bytes de CRC.. me temo que es una vez que hayas enviado ya los 512 que quieres guardar en la tarjeta. Te digo como lo hice yo: -CMD24 -leo R1 con 00 -mando el token FE -mando dos bytes x256 veces =512bytes (mando dos en cada iteracion para usar solo una variable contador) -mando dos dummy bytes de CRC -leo el response: xxx00101? => data accepted -si no espero 1 mseg y vuelvo a leer el response y asi hasta que es correcto o tengo un timeout -CMD13 para leer el registro status y ver si esta todo en orden De todas formas antes de esto un briconsejo Animo, ya te queda poco! Si alguien esta interesado en mi codigo no tiene mas que pedirlo! Un saludo a todos |
|||||||||||
|
|
||||||||||||
|
| Temas de interés | |
|---|---|
| enviar mensajes de texto sin usar el teclado del celular. | |
| Enviar video en vivo por internet | |
| Enviar comandos por RS232 en visual basic | |
| Enviar comunicacion via RS232 a servidor | |
| Contador de pulsos unido al microcontrolador DLP-245PB | |
| Foros de Electronica |
| ||
Cuestiones Elementales de Electrónica ||
Fuentes de alimentacion ||
Circuitos de radio ||
Diseño de circuitos en general || || Sistemas de Audio: Preamplificadores, Ecualizadores || Amplificadores || Reparación || Discusión || || Microcontroladores y sistemas embebidos || Circuitos logicos combinacionales y secuenciales || Interfaces y Programacion || Dudas en general || Sistemas de Video || PC Hardware || Telematica y comunicaciones || Tecnologias moviles || Software Electronico || Robotica, Domotica y Mecatronica || Autotrónica || Automatizacion, Electronica industrial y de Potencia || Documentacion, circuitos y esquemas || Donde Las Ideas Convergen... || Tutoriales y Manuales || Proyectos Prácticos || |
Site Map
© Foros de Electrónica
Comunidad Internacional de Electrónicos
Powered by phpBB © 2001, 2005 phpBB Group
Acerca de || Política de privacidad
Generada en = 0.14587 segundos, Consultas = 13
© Foros de Electrónica
Comunidad Internacional de Electrónicos
Powered by phpBB © 2001, 2005 phpBB Group
Acerca de || Política de privacidad
Generada en = 0.14587 segundos, Consultas = 13


