Go Down

Topic: Faire marcher un lecteur de carte SD Lc Studio (Read 7649 times) previous topic - next topic

timiti29

Bonjours/Bonsoirs à tous, J'ai récemment fait l'acquisition d'un lecteur de carte SD de chez LC Studio acheté sur Ebay.
Un comme celui ci :


Je dispose d'un arduino Mega 2560, j'ai brancher directement le lecteur de carte a l'Arduino
le Gnd sur le Gnd
le +3v3 sur le 3v3 de l'arduino
le MISO sur le 50
le SCK sur le 52
le MOSI sur le 51
le CS sur le 53

Je dispose de 4 cartes SD tous de fabricants différents:

  • 8Go FAT32 Classe 4

  • 4Go FAT32 Classe 4

  • 1Go FAT16 Classe 2

  • 1Go FAT16 Classe 2



J'utilise la librairie Officiel SD.
Le problème est que je n'arrive pas a le faire fonctionné à 100% (la il marche une fois sur 50) des fois j'ai des fichier bizard complètement corrompus obliger de reformater la carte.

J'ai le code :
Code: [Select]
#include <SD.h>

const int chipSelect = 53;
int x = 0;
void sleep()
{
   Serial.println("Press Key");
   while (Serial.read() >= 0) {}
   while (Serial.read() <= 0) {}
}
void setup()
{
  Serial.begin(9600);
  sleep();

  Serial.print("Initializing SD card...");

  pinMode(53, OUTPUT);
 
  if (!SD.begin(chipSelect)) {
    Serial.println("Card failed, or not present");
    sleep();
  }
  Serial.println("card initialized.");
  delay(1000);
}

void loop()
{
  File dataFile = SD.open("datalog.txt", FILE_WRITE);

  if (dataFile) {
    dataFile.println(x);
    dataFile.close();
    // print to the serial port too:
    Serial.println(x);
  } 
  else {
    Serial.println("error opening datalog.txt");
  }
  if(Serial.read() > 0)
    sleep();
   
  x++;
  delay(1000);
}


Sois j'ai Card failed, or not present sois "error opening datalog.txt" dans le deuxième cas, j'ai toujours des fichier avec des noms bizard et rien n'est écrit dans le fichier.

Comment résoudre le problème ? je ne pense pas etre le seul à avoir ce lecteur, de plus je pense que plusieurs personne ont réussi  a le faire fonctionné.

Merci à vous.
Timiti29

-Standby

LC Studio c'est fictif, j'ai le même module et sa marche bien (enfin défois la carte sd est mal inséré, un mauvais câblage, ou la définition du Cs oublié).

Je te conseille de changer de chipselect tout en laissant le 53 en output. 
The Mind is like a parachute it works best when opened.

timiti29

Ok, J'ai essayer de change le ChipSelect mais sa ne change rien toujours le meme problème.

Merci encore.
timiti29

Rovhell

Je ne connais pas ce module, mais il me semble voir que les entrées sont sur diviseurs de tension, et le 5v sur un régulateur. Avant de tester ce que je dis, attend confirmation, mais si tu utilise la broche 5v plutôt que la 3,3v, tu devrais le faire fonctionner, et avoir la 3,3v comme Vout.
Ceci dit, sur ta photo les soudures du slot SD semblent foireuses. Jette un œil aux tiennes, y'a peut être un contact mauvais quelque part.

timiti29

J'ai ré-essayer de mettre sur le 5v mais sa ne change rien, quand au régulateur il me semble bien fonctionné, il sert juste a transformer le 5v en 3,3V, les 4 résistances sont des résistance de pull-up, (le coté gauche est relié au 3,3v, et le coté droit au signaux MOSI MISO SCK CS)
sur la carte tout a l'aire d'etre relié au 3,3v.

L'arduino travaille en 5v, si je me fait un montage intermédiaire avec 4 transistor 2n2222a 6 résistance, pour adapté le signal pour avoir du 3v en sortie marcherais ?
(une résistance a la base du transistor avec le signal d'entrée, le collecteur au 3v3, on mais la sortie du signal sur l' émetteur, et une résistance sur l'émetteur au gnd) et on fait ce montage pour les 4 signaux.

quelqu'un pense que sa marcherais ?

ou il y aurais d'autre idée ?

Merci.
timiti29

Rovhell

L'intérêt de ce circuit est justement de ne pas avoir à envoyer du 3,3v, mais du 5v. Si ce n'etait pas le cas, tu aurais deja grillé tes cartes sd. Pour mon dernier projet, j'ai soudé directement des connecteurs sur une carte sd, et là j'avais besoin de diviseurs à base de résistances. Le signal DO ne devrait pas passer par une résistance par contre, c'est étrange! Il envoie du 3,3v, si on le rabaissé encore, l'arduino ne peut pas le lire.
As-tu testé les cartes depuis cet adaptateur, pour en vérifier le bon formatage?
Les soudures sont comment? Si tu as un mauvais contact, ça peut faire n'importe quoi au lieu d'écrire ce que tu veux sur la carte !

timiti29

Comment vérifier les carte avec cette adaptateur ?
les cartes marche bien avec un adaptateur SD usb sur mon ordinateur.

quand aux soudures comment les vérifier ? je ne connais pas les CMS et je débute en électronique

Merci.
Timiti29

Rovhell

http://arduino.cc/en/Tutorial/CardInfo

Test ça déjà.

timiti29

#8
May 01, 2013, 01:31 pm Last Edit: May 01, 2013, 01:39 pm by timiti29 Reason: 1
Avac le chipSelect sur 4
Pour la 8G j'ai :
Initializing SD card...initialization failed. Things to check:
* is a card is inserted?
* Is your wiring correct?
* did you change the chipSelect pin to match your shield or module?

Pour la 4Go j'ai :
Initializing SD card...Wiring is correct and a card is present.

Card type: SDHC

Volume type is FAT32

Volume size (bytes): 3989061632
Volume size (Kbytes): 3895568
Volume size (Mbytes): 3804

Files found on the card (name, date and size in bytes):

Pour une 1Go :
Initializing SD card...initialization failed. Things to check:
* is a card is inserted?
* Is your wiring correct?
* did you change the chipSelect pin to match your shield or module?

Pour l'autre :
Initializing SD card...Wiring is correct and a card is present.

Card type: SD1

Volume type is FAT16

Volume size (bytes): 986693632
Volume size (Kbytes): 963568
Volume size (Mbytes): 940

Files found on the card (name, date and size in bytes):


J'ai beau reformatter la 8Go et la 1Go mais sa change pas.
la carte 8Go est neuve, je l'est acheter il y a moins d'une semaine

Merci
Timiti29

Edit : Si je mais le chipSelect du 53 (au niveau software et hardware) tout a l'aire de marcher :
Initializing SD card...Wiring is correct and a card is present.

Card type: SD1

Volume type is FAT16

Volume size (bytes): 1027817472
Volume size (Kbytes): 1003728
Volume size (Mbytes): 980

Files found on the card (name, date and size in bytes):

Initializing SD card...Wiring is correct and a card is present.

Card type: SDHC

Volume type is FAT32

Volume size (bytes): 3635109888
Volume size (Kbytes): 3549912
Volume size (Mbytes): 3466

Files found on the card (name, date and size in bytes):

Initializing SD card...Wiring is correct and a card is present.

Card type: SDHC

Volume type is FAT32

Volume size (bytes): 3989061632
Volume size (Kbytes): 3895568
Volume size (Mbytes): 3804

Files found on the card (name, date and size in bytes):

Initializing SD card...Wiring is correct and a card is present.

Card type: SD1

Volume type is FAT16

Volume size (bytes): 986693632
Volume size (Kbytes): 963568
Volume size (Mbytes): 940

Files found on the card (name, date and size in bytes):

Snaaaa

Hello,

J'ai aussi eu ce souci il n'y a pas longtemps
J'ai pu resoudre ca simplement en suivant les instructions ici
http://www.instructables.com/id/Arduino-DIY-SD-Card-Logging-Shield/

Donc pour resumer il faut connecter le +5v et pas le 3.3v (il y a un convertisseur pour le courant dans le module)
Par contre les entrées logiques ne sont pas converties en 3.3v, ca arrive donc en 5v dans la SD et elle n'aime pas
l'auteur de l'article resoud le probleme avec un 4050, c'est aussi ce que j'ai fait et ca marche d'enfer
Chez snootlab ils ont aussi regle le probleme avec des resistances (pont diviseur de tension) ca marche aussi mais faut calculer les valeurs ;)

Bonne chance :)

-Standby

les résistances CMS de 10k servent a faire chuter la tension logique justement, je l'ai utilisé souvent sans sentir une odeur d'électronique "cramé"..
The Mind is like a parachute it works best when opened.

timiti29

#11
May 03, 2013, 10:37 pm Last Edit: May 03, 2013, 10:40 pm by timiti29 Reason: 1
J'ai essayé avec un 4049, car je n'est pas de 4050, et si j'en achete un je l'aurais que dans 2-3 semaines ...
J'ai mis les inverseurs en série par pair pour avoir une porte OUI.
le résultat était décevant, sa na pas marcher, c'était pire, rien ne marche avec.

J'ai fait le branchement :
carte sd           4049                    Arduino
                    Sortie    Entrée
GND                VSS                      GND
+5v                  +3,3V
MISO                                          50
SCK                6       /     9           SCK du port ICSP
MOSI              4       /     11          MOSI du port ICSP
CS                 2       /     14         53

le 10 et le 7 sont relié
le 12 et le 5 sont relié
le le 15 et le 3 sont relié


Pourquoi sa ne marche pas ?
quand je fait à la main sa marche bien, quand je mais du 5v en entrée j'ai bien du 3,3v et quand je mais au GND j'ai bien 0v

Merci
Timiti29

PS j'ai :
Initializing SD card...Card failed, or not present
Press Key

timiti29

Hey, quelqu'un n'a pas une idée ?
car je n'est toujours pas avancé d'un poil.

Merci.
timiti29

timiti29

Pourquoi sa marche pas ?
sa commence à m'énerver, je comprend pas pourquoi des fois sa marche et d'autres non.
sil-vous plais, aidez moi !

Merci
Timiti29

timiti29

Hey, je vais acheté un CMOS 4050 pour voir si sa marche, mais vus comme c'est partit je ne sais pas du tout si sa va marcher,
Si vous avez des propositions je suis preneurs, sinon je vous tiendraient au courant du fonctionnement de ce lecteur.
timiti29

Go Up