TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: RedPic en 21 de Marzo de 2014, 05:57:49

Título: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: RedPic en 21 de Marzo de 2014, 05:57:49
Como decía en el post ¿Alguien ha usado la Flash, vía SPI de Micron, M25P16? (http://www.todopic.com.ar/foros/index.php?topic=42306.0) estoy hasta el gorro del SPI, ya voy destilando vinagre por las orejas y no veo qué solución tomar.

Veréis, el caso es que utilizo las tarjetas uSD de 1 Gb de toda la vida, no las HC, no, sino las normales. Las tengo de todas las marcas, desde las chinas sin nombre ni apellidos hasta las Kingston, Samsung y/o Transcend.

Las utilizo sin hacer uso de ningún tipo de formateo FAT, sino a pelo, direcciono los bloques de 512 bytes y leo y/o escribo a discreción, no voy a necesitar que éstas después sean leídas o escritas desde un PC, solo es a través del PIC (un 24FJ256GA110) que se van a escribir o leer. Utilizo el driver de CCS C 5.01 llamado mmc_spi.c

El caso es que unas tarjetas, por lo demás absolutamente idénticas en cuando a cualidades técnicas y prestaciones, las lee y escribe perfectamente y otras no hay manera haga lo que haga. Las mas perras, las mas baratas, las chinas que se compran a un euro la tonelada las lee y escribe perfectamente pero las de marca, las buenas,  las Kingston o Transcend no hay manera. Ni poniendo o quitando pull-ups, ni subiendo o bajando los baudios, ni ...

... Las que van van perfectas, no fallan nunca, las que no van no van ni para delante ni para atrás y no hay manera  :?

Ya no se me ocurre qué más mirar, qué más buscar, que más inventar, qué más imaginar.

¿Tiene alguno de ustedes, amables contertulios, algún consejo que darme?    
Título: Re: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: MGLSOFT en 21 de Marzo de 2014, 08:05:09
No tendrás que darle formato antes a esas ultimas malditas ?? :shock: :shock:
Título: Re: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: RedPic en 21 de Marzo de 2014, 08:17:22
No tendrás que darle formato antes a esas ultimas malditas ?? :shock: :shock:

No, Marcos, no me hace falta. Formatear es a alto nivel, poner MBR y FAT y cosas de esas, yo solo necesito leer o escribir una dirección, bueno un bloque mínimo de acceso que son 512 bytes, empezando en 0x00000000, 0x00000100, 0x00000200 ... etc. para eso no hace falta formateo alguno.
Título: Re: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: stk500 en 21 de Marzo de 2014, 14:04:36
Que tal amigo Diego,
he invstigado un poco tu caso, y no eres el unico, yo tambien luche con varias y solo me iban las baratas,
pero quizas este link te ayude de algo
http://www.picprojects.net/sdcard_demo/index.html

Tomaste un par de copa de vino Diego :rolleyes:
Título: Re: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: MGLSOFT en 21 de Marzo de 2014, 14:21:27
Prueba la librería que te pongo adjunta, viene con la versión 5.020
Las rutinas arregladas que muestra la pagina de STK ni figuran en esa librería... :shock: :shock:
Título: Re: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: alperez en 21 de Marzo de 2014, 14:27:11
Yo he intentado probar una micro SD sin éxito, es de marca, simplemente, no contesta.

Me podrías pasar un enlace de esas chinas que sí que sabes que funciona?

No necesito mucha capacidad, sólo quiero que funcione.

Gracias.
Título: Re: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: RICHI777 en 21 de Marzo de 2014, 16:07:25
Lamentablemente muchas tarjetas son chinas y clonan las marcas, no cumplen ni a trompadas las especificaciones. Es un tema muy complejo.

Saludos !
Título: Re: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: ppyote en 21 de Marzo de 2014, 16:28:30
Que ventajas hay en trabajar las sd en fat16/32 frente a como lo hace Redpic?
Yo estoy intentando reproducir wav y no se muy bien como hacerlo, sí leer en bloques usando la librería de suky o probar con la librería fat16.c
Título: Re: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: MerLiNz en 21 de Marzo de 2014, 16:35:09
no es ventaja y/o inconveniente, el tema esta en que si no utilizas fat el pc no reconoce el formato, te dira que esta "vacia" al insertarla. El simplemente quiere hacer que funcione en su pic y asi podra hacerlo, la ventaja seria que no se tiene que meter en movida de FAT ninguna.
Título: Re: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: RICHI777 en 21 de Marzo de 2014, 16:42:30
no es ventaja y/o inconveniente, el tema esta en que si no utilizas fat el pc no reconoce el formato, te dira que esta "vacia" al insertarla. El simplemente quiere hacer que funcione en su pic y asi podra hacerlo, la ventaja seria que no se tiene que meter en movida de FAT ninguna.

Entendí bien de que esta hablando, lo que comente antes es que las tarjetas deben respetar un protocolo de comunicación estandar y muchas tarjetas truchas no lo respetan. Es por eso que a veces no se puede comunicar con ellas.

Saludos !
Título: Re: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: BrunoF en 21 de Marzo de 2014, 16:58:59
Diego,

entiendo tu miseria y bronca. Hace años estuve renegando con esto. A mi me pasó exáctamente lo opuesto: escribí código basándome en la especificación de SanDisk, y las únicas que me funcionan son las Kingston. Las SanDisk no hay manera de lograr leer siquiera bien los primeros 512 bytes. Envía información de lo más loca. Me gustaría poder ayudarte pero sinceramente a mi este tema me pudo. No encontré explicación ni motivo aparente por el cual las tarjetas se han comportado de manera tan distinta.
Título: Re: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: RICHI777 en 21 de Marzo de 2014, 17:06:32
Diego,

entiendo tu miseria y bronca. Hace años estuve renegando con esto. A mi me pasó exáctamente lo opuesto: escribí código basándome en la especificación de SanDisk, y las únicas que me funcionan son las Kingston. Las SanDisk no hay manera de lograr leer siquiera bien los primeros 512 bytes. Envía información de lo más loca. Me gustaría poder ayudarte pero sinceramente a mi este tema me pudo. No encontré explicación ni motivo aparente por el cual las tarjetas se han comportado de manera tan distinta.

+1

Yo también desistí ...
Título: Re: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: ppyote en 21 de Marzo de 2014, 18:55:41
no es ventaja y/o inconveniente, el tema esta en que si no utilizas fat el pc no reconoce el formato, te dira que esta "vacia" al insertarla. El simplemente quiere hacer que funcione en su pic y asi podra hacerlo, la ventaja seria que no se tiene que meter en movida de FAT ninguna.
ok entendido, muchas gracias por la aclaración MerLiNz
Título: Re: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: Nocturno en 22 de Marzo de 2014, 02:41:18
Diego,

entiendo tu miseria y bronca.



+1

Yo también desistí ...

 :shock: :shock: :shock:
¡Qué sorpresa!. No me imaginaba que lidiar con las SD fuera tan caótico.
Mi única experiencia ha sido con tarjetas baratas y funcionaron bien, pero no sabía que al cambiarlas por tarjetas de marca me encontraría problemas.
De todas formas, de alguna forma se podrá resolver, porque en los dispositivos electrónicos comerciales sí que funcionan bien. Algo se nos está escapando...
Título: Re: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: RICHI777 en 22 de Marzo de 2014, 12:32:53
Diego,

entiendo tu miseria y bronca.



+1

Yo también desistí ...

 :shock: :shock: :shock:
¡Qué sorpresa!. No me imaginaba que lidiar con las SD fuera tan caótico.
Mi única experiencia ha sido con tarjetas baratas y funcionaron bien, pero no sabía que al cambiarlas por tarjetas de marca me encontraría problemas.
De todas formas, de alguna forma se podrá resolver, porque en los dispositivos electrónicos comerciales sí que funcionan bien. Algo se nos está escapando...

Hola Nocturno, no es que sea difícil lidiar. Dependiendo del tipo de tarjeta y sus características no es difícil lidiar con ellas. Ahora cuando usas tarjetas de dudosa procedencia ahí empiezan los problemas. Los aparatos electrónicos masivos que usan estas tarjetas ( celulares, cámaras, etc )  no compran las mismas en ebay o mercado libre las compran a los grandes fabricantes y se garantizan que sean originales. Nosotros compramos donde las podemos conseguir y es muy difícil de saber su procedencia. Trabajo en una multinacional y hemos visto como los chinos o otros países han clonado hasta las etiquetas ! obvio que la calidad del producto era una porquería.
Un usuario de este foro me paso una serie de tarjetas para ver si podía adaptar el file system que había desarrollado pero fue imposible, ni mi notebook las podía reconocer ... Y las mismas tenían etiquetas de marca, obvio eran falsas ( en argentina le decimos truchas )

Saludos !




Título: Re: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: BrunoF en 22 de Marzo de 2014, 12:34:11
Destacaría que me parece que en cualquier computador, cámara, cel, etc. el modo en el que se usan las tarjetas es el modo SD. No el SPI, ya que el SD es mucho más rápido.

Saludos.
Título: Re: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: RedPic en 22 de Marzo de 2014, 15:12:49
Destacaría que me parece que en cualquier computador, cámara, cel, etc. el modo en el que se usan las tarjetas es el modo SD. No el SPI, ya que el SD es mucho más rápido.

Saludos.

Ahí, ahí es donde yo quiero llegar. Me gustaría conocer ese modo SD, no el SPI, a ver si así puedo leer "todas" las tarjetas, como dice Manolo, los otros dispositivos, móviles o cámaras, no presentan problemas cuando les ponemos una tarjeta que hemos comprado por ahí.

He encontrado sólo un documento que habla de este "modo SD" y es de SanDisK, no se si será el mismo del que nos hablas tú Bruno.

Os dejo un enlace al PDF por si queréis darle un vistazo:

ProdManualSDCardv1.9.pdf (http://publi.garcia-cuervo.net/ProdManualSDCardv1.9.pdf)

Nota: Curiosamente son las tarjetas de "marca" las que no soy capaz de leer, ni las Trascend ni las Kingston, a menos que como decís sean "clónicas" chinas y no tengan nada que ver con las originales. Aunque como decíamos más arriba, si las pongo en mi cámara no presentan problema alguno  :shock: :5]
Título: Re: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: BrunoF en 22 de Marzo de 2014, 15:31:53
Destacaría que me parece que en cualquier computador, cámara, cel, etc. el modo en el que se usan las tarjetas es el modo SD. No el SPI, ya que el SD es mucho más rápido.

Saludos.

Ahí, ahí es donde yo quiero llegar. Me gustaría conocer ese modo SD, no el SPI, a ver si así puedo leer "todas" las tarjetas, como dice Manolo, los otros dispositivos, móviles o cámaras, no presentan problemas cuando les ponemos una tarjeta que hemos comprado por ahí.

Sí Diego, no presentan problemas porque TODOS los dispositivos comerciales usan el modo SD, no el modo SPI, ya que para empezar el modo SD envía 4 bits(1 nibble) a la vez serialmente, mientras el SPI envía sólo 1 bit por vez. Entonces el modo SD es aproximadamente 4 veces más rápido.

He encontrado sólo un documento que habla de este "modo SD" y es de SanDisK, no se si será el mismo del que nos hablas tú Bruno.

Os dejo un enlace al PDF por si queréis darle un vistazo:

ProdManualSDCardv1.9.pdf (http://publi.garcia-cuervo.net/ProdManualSDCardv1.9.pdf)

Sí. Ese modo SD del que hablan es exáctamente del que yo también hablo, ya que ese documento que has publicado es el cual he leído infinidad de veces para primero programar parte de una librería para las memorias, y luego intentando encontrar el motivo por el cual una memoria marca SanDisk no podía ser leída correctamente.

El mejor modo es el modo SD, sin lugar a dudas. Puede que todas las memorias cumplan a rajatabla la especificación del modo SD, pero no del SPI, y sea lo que nos ha traido tantos dolores de cabeza.
Título: Re: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: alperez en 22 de Marzo de 2014, 15:37:04
Una vez leí que esa información no es de libre difusión, que no es open source vamos.
Otra cosa es que se encuentre.
Los comandos son los mismos pero se utiliza el SPI

A ver si alguien tiene guardado por algun sitio un enlace de los chinos de ebay de alguna tarjeta penca que sepa que funcione y me lo pasa.
Título: Re: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: alperez en 22 de Marzo de 2014, 15:46:57
Aqui puede haber algo

https://www.sdcard.org/downloads/pls/simplified_specs/part1_410.pdf (https://www.sdcard.org/downloads/pls/simplified_specs/part1_410.pdf)

Apartado 3.6.1 SD Bus Protocol
Título: Re: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: MGLSOFT en 22 de Marzo de 2014, 17:33:25
Me parece que diste en el clavo AlPerez !!
Título: Re: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: Nocturno en 23 de Marzo de 2014, 03:17:47
Aquí hay un código para STM32 que creo que no va con SPI:
https://code.google.com/p/stm32radio/source/browse/trunk/stm32radio/drivers/sdcard.c?r=187

Aquí hay alguien que consigue hacerlo funcionar:
http://www.coocox.org/forum/topic.php?id=4144

Y aquí un ejemplo de fat sin SPI:
https://docs.google.com/file/d/0B7OY5pub_GfIcU1XTDFDRlptZDg/edit
Título: Re: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: Suky en 23 de Marzo de 2014, 15:24:14
Destacaría que me parece que en cualquier computador, cámara, cel, etc. el modo en el que se usan las tarjetas es el modo SD. No el SPI, ya que el SD es mucho más rápido.

Saludos.

Me parece que el tema pasa por ahí. Nosotros venimos trabajando con ARM en modo SD (http://www.chibios.org/dokuwiki/doku.php) y no hemos tenido problemas. Hemos usado varias memorias, pero como no tuvimos inconveniente no nos fijamos de que tipo son, sino las que teníamos a mano...  :roll:

Luego cuando hice la librería FAT16 use dos tipos Sandisk y kingston, con eso las probé y listo. Pero muchos usuario tenían problemas difíciles de identificar con diferentes tipos de marcas.


Saludos!
Título: [SOLUCIONADO] ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: RedPic en 01 de Abril de 2014, 05:02:25
[***SOLUCIONADO***]

Siempre es bueno tener buenos amigos, gracias a todos por vuestras propuestas, opiniones y consejos. Sirva este post para rendirle homenaje a nuestro querido amigo Manolo Nocturno que ha sido quien al final me dio el consejo definitivo.

Resulta que buscando en San Google dimos con la sempiterna página de la Wikipedia Secure Digital (http://es.wikipedia.org/wiki/Secure_Digital) y en ella está la frase clave ... "Las tarjetas de baja velocidad soportan tasas de transferencia de 0 a 400 kbit/s y modo de trasferencia un-bit SD"  :shock:

Resulta, de nuevo, que sea cual sea la velocidad que soporta una tarjeta micro SD, dependiendo de su Class 2, 4, 6, 10, UHS Class1 y Class 3, soportarán distintas velocidades de transferencia en los modo SD nativos, SD Bus y SDIO, pero en SPI se comportarán siempre como Class 1 Low Speed, o sea a 400 Kbaud.

Mano de santo, oiga, pusimos el SPI a 350 Kbaud y TODAS las tarjetas funcionaron a la perfección: las "clónicas" chinas, las taiwanesas y americanas de marca Kingston, Trascend, etc.

Curiosamente las "clónicas" son las que hemos podido hacer funcionar a mayor velocidad, imaginamo, dijo Manolo, que éstas no se adecuan a la norma al 100% y responden al SPI a toda la velocidad que pueden mientras que las de "marca" se adecuan al 100% a la norma y si esta dice que el SPI debe ir a 400 Kbaud pues a 400 Kbaud van y punto.

El caso es que está solucionado y el problema ha dejado de serlo.  :-/

Un abrazo a todos.  :mrgreen:
Título: Re: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: Nocturno en 01 de Abril de 2014, 05:08:02
De homenaje nada, que fue un golpe de suerte encontrar esa información. Pero bueno, lo importante es el peso que nos quitamos de encima.

Por cierto, Don Diego, que esta mañana estaba pensando en el tema y se me ha ocurrido algo que podrías hacer en la rutina de inicialización y que sería un punto para tu firmware.
Podrías intentar inicializar la tarjeta a 10Mbps, chequearla, y si no funciona, ir haciendo pruebas a velocidades cada vez más bajas hasta que el chequeo sea correcto. Así te garantizarás que la placa trabajará siempre a la velocidad máxima que cada tipo de tarjeta admita.
Título: Re: ¿Son todas las uSD iguales o las hay unas mas iguales que otras?
Publicado por: ppyote en 01 de Abril de 2014, 05:25:35
De homenaje nada, que fue un golpe de suerte encontrar esa información. Pero bueno, lo importante es el peso que nos quitamos de encima.

Por cierto, Don Diego, que esta mañana estaba pensando en el tema y se me ha ocurrido algo que podrías hacer en la rutina de inicialización y que sería un punto para tu firmware.
Podrías intentar inicializar la tarjeta a 10Mbps, chequearla, y si no funciona, ir haciendo pruebas a velocidades cada vez más bajas hasta que el chequeo sea correcto. Así te garantizarás que la placa trabajará siempre a la velocidad máxima que cada tipo de tarjeta admita.

y porque no iniciarla a 400kbps y trabajar con ella a 10Mb? Sería lo más lógico