Go Down

Topic: Lector tarjeta SD no inicializa [SOLUCIONADO] (Read 8998 times) previous topic - next topic

miniduino

Que nadie se tome nada a mal es una ocurrencia que propone una intento de perdidos al río... Prueba en postear sobre esto en los foros en inglés. Insisto no porqué sepan mas o sean mejores sino porqué hay mas gente ergo mas posibilidades de alguien que tenga esa breadboard y una posible solución.

Pd: sigo pensando en que habría que pedir explicaciones al fabricante, mas cuando sabéis de que habláis.
http://arduinadas.blogspot.com/

Heke

Al final, al quitar el Pullup ¿que resistencias has puesto externas como divisor?

¿No habra algun problema con el arduino que usas en el patillaje de miso, mosi y demas?

Esto tiene el mecanismo de un botijo, una sd y unas resistencias, no hay mas...

Solo queda pensar, o patillaje del arduino, libreria, o Sd mal.

Tambien puedes comprobar si le llega los 3v a la sd en la pata correspondiente.

Esto se resiste, pero saldra... seguro.
CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

fm

Empiezo a sospechar de la uSD. El caso es que yo andaba a vueltas con una uSD y un conversor de niveles y he observado un comportamiento muy errático.
   

Cheyenne

Ayer escribí al vendedor solicitando información ampliada de conectar el módulo con Arduino y muy amablemente me ha enviado justo la misma información que ya venía en la publicidad de su producto en eBay  :) Indica que si necesito algo más que se lo diga pero no sé si sacaré mucho más por esa vía.

Al quitar los pull up puse resistencias externas como divisor de valores 1k2 y 2k2 (ésta última a GND, claro). El patillaje lo he comprobado y parece estar todo bien. A las patillas de la "cápsula" de la SD le llegan bien las señales, en MOSI y CS mido 3,3 V (aproximado), en SCK no recuerdo si medía algo, las dos patillas correspondientes a alimentación también mido 3,3 V. MISO lo tengo directo sin divisor resistivo.

Yo también estoy empezando a sospechar de la MicroSD y/o el adaptador. Intentaré hacerme con una SD normal para probar, el problema es que ahora es más difícil encontrarlas ya que suelen ser de 4 GB o más (SDHC).

Por último sobre la librería estoy usando la que viene en el IDE, simplemente abro el ejemplo de CardInfo y lo cargo (he probado a cambiar sobre el ejemplo el pin SS entre el 4 y el 10 por si acaso pero nada).
http://cuadricopterodiyarduino.blogspot.com/

Cheyenne

¡Aleluya! He rescatado una SD de 2 GB que he recordado que tenía en la Wii, la he formateado a FAT16 y ha funcionado a la primera. La configuración final ha sido quitando las 4 resistencias de pull up (aunque creo que sin quitarlas también funcionaría), conectar MISO directo y MOSI, SCK y CS a través de divisor resistivo con 1k2 y 2k2 aunque con valores mayores proporcionales seguro que funciona tal y como viene en muchos esquemas por internet.
Lo anoto como solucionado porque he conseguido que funcione pero si consigo averiguar algo más concreto lo pondré. Quiero mirar si el problema está en el adaptador de MicroSD a SD o si es la misma MicroSD que tal como dices fm como poco necesita de un conversor de niveles. Claro que no sé cuándo podré hacer esa prueba ya que el conversor de niveles que tengo de Sparkfun es con divisor resistivo :~

Gracias a todos por la ayuda técnica y moral, en concreto esto de Heke "Esto se resiste, pero saldra... seguro." me produjo subidón de adrenalina para seguir  :)
http://cuadricopterodiyarduino.blogspot.com/

miniduino

Eres un crack!!  Lo mejor de estas sitiuaciones es cuando olvidas lo malo y te entra esa "euforia" de haberlo conseguido y verlo todo mucho mas trivial. Me alegra que lo hayas conseguido.
http://arduinadas.blogspot.com/

Cheyenne

Gracias miniduino. Anoto alguna información más para consultas de otros usuarios.

El adaptador microSD a SD funciona bien (lo he probado en el ordenador) así que para que funcione con Arduino sólo me queda el tema del adaptador de niveles.

Y otra cuestión sobre la librería SD de Arduino. El enlace es éste: http://arduino.cc/en/Reference/SD
Resulta que todas mis búsquedas por internet para conectar la SD a Arduino ponen énfasis en que la tarjeta sea de 2 GB como máximo y se formatee a FAT16. Pues como podéis leer en la documentación de la librería la actual versión (no sé desde cuándo será así) admite también tarjetas SDHC y formateo FAT32. Lo he probado con una SDHC de 4 GB y funciona bien reconociendo los 4 GB. No sé cuál será el máximo que reconozca o pueda manejar.
http://cuadricopterodiyarduino.blogspot.com/

Cheyenne

He seguido leyendo más sobre este tema, expongo las conclusiones a las que he llegado.
He encontrado un post muy clarificador, éste: http://arduino.cc/forum/index.php/topic,58643.0.html

Fundamentalmente hablan de lo que ya indicó @fm, que adaptar los niveles de tensión con resistencias no es un buen método. Unas tarjetas funcionarán, otras puede que no. Concretamente habla un usuario que ha desarrollado varias librerías SD indicando que mayoritariamente los problemas que le indican los usuarios se deben a este tema. Las tarjetas SD tienen dos buses de comunicación, uno rápido y "complicado" (para microcontroladores) que es el 4-bit SD bus y el lento y sencillo bus SPI. Los fabricantes esperan que las tarjetas sean usadas mediante el primer bus y concretamente en las class 10 implementan un bus SPI "pobre". Como resultado si no queremos tener problemas se impone añadir un "low level shifter" tal y como algunos fabricantes ya hacen en sus lectores SD o µSD. Los que nombran para esto son:

- 74AHC125N
- 74HC4050N
- 74LCX245

Hay que fijarse bien en todas las letras ya que integrados parecidos no sirven. Por ejemplo el 74HC125 aunque hay sitios en los que se ve que se monta realmente no está indicado (la tensión de entrada máxima que admite es Vcc + 0,5 que serían 3,8 V y sin embargo desde Arduino vamos a meterle 5 V). Lo gracioso del tema es que esto lo he averiguado justo después de haber pedido un par de estos en ebay  :smiley-roll:
Por otra parte los tres chips de arriba no los he encontrado por ebay a precios razonables. El 74HC4050N por ejemplo está en Farnell a un precio reducido pero con los portes no sale a cuenta. Así que ya sé por dónde tirar para hacer alguna prueba pero no sé dónde conseguir un par de alguno de esos chips sin que se vayan de precio.
http://cuadricopterodiyarduino.blogspot.com/

miniduino

Aquí en bcn puedes pedirlos en rs-online y te los dejan en la central de mrw asi te ahorras los portes.

Si conoces a alguien te lo podría enviar por correo ordinario.
http://arduinadas.blogspot.com/

Cheyenne

Algunas veces he hecho pedidos a allí, si pides varias cosas los portes ya no son tan importantes. Como no me urge ya que por el momento sería para hacer pruebas (con una SD ya me funciona) de momento esperaré para cuando tenga alguna otra cosa que pedir. Gracias por la idea.
http://cuadricopterodiyarduino.blogspot.com/

rabanisa


Buenos dias:

Acabo de hacer funcionar(gracias a este post) este modulo SD en concreto.



En mi caso lo que me ha hecho estrellarme ha sido la tarjeta, ya que tal cual viene funciona con tarjatas SD y SDHC (2 y 4 GB). Mi error fue empezar a probar con esta tarjeta(la de  izquierda que es supervieja creo que de 64 mB o asi la otra es de 2 GB).

Ademas que como utilizo una placa mega no me coinciden los pines.  En este post encontre la solucion al tema de los pines : http://arduino.cc/forum/index.php/topic,31497.0.html

Saludos y gracias.


Go Up