Go Down

Topic: >> Résolu << : MEGA + lecteur de carte SD "LC studio" ne fonctionnent pas... (Read 6274 times) previous topic - next topic

LibertyCareche

Oct 04, 2012, 11:43 pm Last Edit: Oct 14, 2012, 05:56 am by LibertyCareche Reason: 1

The same post in English at http://arduino.cc/forum/index.php/topic,125973.new.html#new

Bonjour à tous,

Lorsque j'ai commencé à travailler sur ce lecteur de carte SD, je pensais en avoir pour une quinzaine de minute à lancer le tout et quelque heures pour maitriser l'ensemble des fonctionnalités offertes par la libraire SD.h.
Sans doute y a t-il une info qui m'échappe car j'y suis depuis des heures et rien ne fonctionne. Pour le simple test de carte, j'obtiens invariablement le message suivant sur le mini terminal :


Initialisation de la carte SD... Echec de l'initialisation. Penser à vérifier les points suivants :
* Une carte SD est-elle insérée ?
* Votre câblage est-il correct ?
* Avez-vous modifié le shipSelct pour correspondre à votre micro-contrôleur ?


Le programme dans l'ATMEGA 2560 de la MEGA est celui fournis en exemple, accessible par Fichier/Exemples/SD/cardinfo de la version 1.0.1 d' ARDUINO.

Le code modifié pour le MEGA devient :

Code: [Select]

#include <SD.h>

Sd2Card card;
SdVolume volume;
SdFile root;

const int chipSelect = 6;    
//const int chipSelect = 53;    

void setup()
{
 Serial.begin(9600);
  while (!Serial) {     ; // wait for serial port to connect. Needed for Leonardo only  }

 Serial.print("\nInitializing SD card...");
 // On the Ethernet Shield, CS is pin 4. It's set as an output by default.
 // Note that even if it's not used as the CS pin, the hardware SS pin
 // (10 on most Arduino boards, 53 on the Mega) must be left as an output
 // or the SD library functions will not work.
 pinMode(53, OUTPUT);     // 10 change this to 53 on a mega
 pinMode(chipSelect, OUTPUT);     // ICI : Tentative avec une autre pin (6) au hasard

 if (!card.init(SPI_HALF_SPEED, chipSelect)) {    Serial.println("initialization failed. Things to check:");
...
etc


J'ai fais un échange de carte MEGA,... un échange de carte SD (64Mo au départ et 32Go en second choix),... un echange de pin pour le Chip select CS (Pin 53 à la base pour le MEGA puis Pin 6 au hasard ensuite), puis fini vu le signal scope par mettre CS à la masse en hard,... J'alimente les cartes avec l'USB et comme on peut le voir sur les scopes, les tensions restent à peu près stable et nominales,... j'ai alimenté en 5 ou en 3,3V.

Je n'ai pas mis de résistance et de transistor d'adaptation 5V/3,3V et 3,3V/5V  comme on le voit parfois sur le net. Je ne suis pas sans savoir que 70% à 90% de ce que l'on trouve sur la toile est à jeter mais je m'attend à beaucoup mieux de la part d'électroniciens, même amateurs.

La connectique est la suivante :
MEGA pin 50 --> miso   (Master In) du lecteur de carte "LC studio"
MEGA pin 51 --> mosi   (Master Out)
MEGA pîn 52 --> sck     (Serial Clock)
MEGA pin 53 NC au final
MEGA pin 6 --> CS (Chip Select) puis à rien au final (CS lecteur à la masse)

Au Final,... le sempiternel message d'échec ci-dessus rappelé.

J'ai entrepris de cerner le problème avec un oscilloscope dont je livre quelques captures ci-dessous.

Ce qui m'étonne dans un premier temps est la différence de timing entre la pin 6 que j'ai sélectionne pour CS en programme et la réponse de la pin 53. (1ier scope)
En second, l'aspect du signal pin 6 en charge sur CS de la carte SD (quelle qu'elle soit).(2ième scope)
On voit sur le 4ième scope que l'horloge série est envoyée. Sur le 5ième et 6iémé que l'alim 3,3V ou bien 5V est à peut près correcte.
On voit sur le 7ièmé scope que l'Atmega entame une transaction avec la SD card (MOSI en pin 51).
On voit sur les 8ième et 9ième scopes que la SD répond sur MISO et le détail des mots échangés en scopes 10 & 11.

On peut trouver une expérience quasi similaire (avec un DueMilaNove) ici : http://electroniqueamateur.blogspot.fr/2012_06_01_archive.html mais en ce qui me concerne, bien que la carte SD puisse être indifféremment mise d'une face ou de l'autre, j'ai préféré mettre les bornes de la SD en contact avec les... contacts.

L'ordi que j'utilise est sous Windows 7. Il m'a servi a formater mes cartes SD en FAT,... FAT 16 par défaut d'indication j'imagine.

Je suis preneur de toute info nouvelle, de résultat d'expérience ou d'idée constructive et vous en remercie par avance.

Cordialement.


NB :bon descriptif du lecteur : http://babelduck.com/index.php/en/reference/user-manuals/1422-sd-card-module-user-manual
Quidquid agis, prudenter agas, et respice finem !

Jean-François

La carte Sd, n'est peut être pas formatée au bon format.
Il y a une possibilité de la formater avec la librairie SDfat.
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Snyp

http://electroniqueamateur.blogspot.fr/2012/06/carte-sd-et-arduino.html

Tien essaye ça, je vais essayer cette aprem moi.
Je te tien au courant si je le fait avant toi.
Cordialement

EDIT: Sa marche chez moi sachant que j'avais le meme soucis que toi hier lol.

Jean-François

Est ce que tu peux enlever le lien Ebay (cf la charte), merci.
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

LibertyCareche

Merci pour votre réactivité.

_ Jean-François,
    mes cartes sont formatées en FAT sous Windows 7.  Quand W7 indique FAT je pense qu'il s'agit de FAT16 !?
    Je viens d'ajouter cet oubli dans la description du problème.
    Le lien déconseillé a été suprimé... désolé. J'ai pourtant lu la charte mais bon... :)

_ Snyp,
    merci de me renvoyer une URL déja dans le descriptif du problème.
    Du coup je ne suis pas sure que tu as vu les éléments du problème.

Quidquid agis, prudenter agas, et respice finem !

Jean-François

#5
Oct 05, 2012, 05:18 pm Last Edit: Oct 05, 2012, 05:30 pm by Jean-François Reason: 1
Essaye avec cette  librairie :

http://code.google.com/p/sdfatlib/downloads/list

Apparemment c'est du fat32 qu'il faut (sans certitude)

Pour le lien, tu peux mettre une photo et un descriptif à la place  ;)
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Snyp

Désolé, autant pour moi :~
Je viens d'essayer sur ma mega et sa ne marche pas alors que sur ma duemilanove cela marche  ]:).
Je te tien au courant si je trouve quelques choses

Jean-François

#7
Oct 05, 2012, 06:34 pm Last Edit: Oct 05, 2012, 06:40 pm by Jean-François Reason: 1


La connectique est la suivante :
MEGA pin 50 --> miso   (Master In) du lecteur de carte "LC studio"
MEGA pin 51 --> mosi   (Master Out)
MEGA pîn 52 --> sck     (Serial Clock)
MEGA pin 53 NC au final
MEGA pin 6 --> CS (Chip Select) puis à rien au final (CS lecteur à la masse)



Sur ma Mega ce sont les pin de 50 à 53 (incluses) qui sont utilisée et pas la 6.

Ici un code de tom Igoe avec les mêmes pin que chez moi :

http://www.bajdi.com/arduino-mega-2560-and-sd-card-modul/
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

LibertyCareche

#8
Oct 05, 2012, 06:56 pm Last Edit: Oct 07, 2012, 04:24 am by LibertyCareche Reason: 1
Le pin 53 doit être en out pour que l'ATMEGA soit en mode Maitre. mais rien n'oblige de l'utiliser. On peut par exemple sélectionner plusieurs carte en parallèle sur miso mosi. Les oscillogrammes le montrent par ailleurs, le pin 53 réagit et le 6 aussi juste par instruction de la bibliothèque SD. Troisième élément, je n'oublie pas que je vois le Maitre "coser" et l'esclave lui répondre. Alors... la transaction ne se déroule pas comme il faut... ou-bien (j'y crois moins) il y a un bug dans la biblio...
Quidquid agis, prudenter agas, et respice finem !

LibertyCareche

#9
Oct 05, 2012, 08:19 pm Last Edit: Oct 07, 2012, 04:26 am by LibertyCareche Reason: 1
J'ai commencé à mettre en doute la véracité du descriptif du lecteur de Carte SD. L'examen du circuit imprimé révèle qu'il y a quatre résistance de 10Ko de tirage (pull up) (http://fr.wikipedia.org/wiki/R%C3%A9sistance_de_tirage) au Vcc de 3,3V. Le 3,3 V peut être alimenté directement ou en 5V car il y a un régulateur AMS1117 (http://bbs.ednchina.com/images/attachments/201208/20120831094241621.pdf) implanté sur la carte (avec les condensateurs "qui vont bien").

L'oscillogramme n°2 (cf. photo orange très haute) indique qu'une tension ... "bizarre" se produit quand le pin 53 ... ou 6 essaye de commander le CS de la SD card.

Il me semble que de tels signaux n'indiquent rien de bon quand au comportement de l'ensemble. Je cherche là-dessus...
Quidquid agis, prudenter agas, et respice finem !

barbudor

comment est faite l'adaptation 5V/3V3 des signaux SPI sur cette carte ?
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

LibertyCareche

#11
Oct 05, 2012, 09:36 pm Last Edit: Oct 05, 2012, 10:19 pm by LibertyCareche Reason: 1
Il n'y a pas d'adaptation (cf. 7ième ligne du problème)

Il semble que beaucoup de description de la toile s'en passe aussi aberrant que cela paraisse (cf. schéma trouvé sur la toile parmi d'autres). Si le problème persiste, Trois pont diviseur et un ampli transistor en base commune devraient suffire...

Quidquid agis, prudenter agas, et respice finem !

Snyp

Alors pourquoi cela marcherais bien sur une duemilanove?

LibertyCareche

#13
Oct 05, 2012, 10:22 pm Last Edit: Oct 07, 2012, 04:26 am by LibertyCareche Reason: 1
C'est là le point crucial de la question :)
Tolérance des SD et DueMilaNove... !?
Quidquid agis, prudenter agas, et respice finem !

Jean-François

Est ce que tu as lu ce topic ?

http://arduino.cc/forum/index.php/topic,75761.0.html
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Go Up