Lormaison
Offline
Newbie
Karma: 0
Posts: 44
Omnes vulnerant, ultima necat !
|
 |
« on: October 04, 2012, 04:43:16 pm » |
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 : #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
|
|
|
|
« Last Edit: October 13, 2012, 10:56:26 pm by LibertyCareche »
|
Logged
|
Quidquid agis, prudenter agas, et respice finem !
|
|
|
|
Forum Moderator
Geneva
Offline
Faraday Member
Karma: 22
Posts: 2878
Yoplait... le pt'it suisse
|
 |
« Reply #1 on: October 05, 2012, 12:42:15 am » |
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.
|
|
|
|
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 16
Arduino rocks
|
 |
« Reply #2 on: October 05, 2012, 05:11:37 am » |
http://electroniqueamateur.blogspot.fr/2012/06/carte-sd-et-arduino.htmlTien 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.
|
|
|
|
« Last Edit: October 05, 2012, 06:34:39 am by Snyp »
|
Logged
|
|
|
|
|
Forum Moderator
Geneva
Offline
Faraday Member
Karma: 22
Posts: 2878
Yoplait... le pt'it suisse
|
 |
« Reply #3 on: October 05, 2012, 09:52:55 am » |
Est ce que tu peux enlever le lien Ebay (cf la charte), merci.
|
|
|
|
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
Lormaison
Offline
Newbie
Karma: 0
Posts: 44
Omnes vulnerant, ultima necat !
|
 |
« Reply #4 on: October 05, 2012, 10:12:25 am » |
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.
|
|
|
|
|
Logged
|
Quidquid agis, prudenter agas, et respice finem !
|
|
|
|
Forum Moderator
Geneva
Offline
Faraday Member
Karma: 22
Posts: 2878
Yoplait... le pt'it suisse
|
 |
« Reply #5 on: October 05, 2012, 10:18:41 am » |
Essaye avec cette librairie : http://code.google.com/p/sdfatlib/downloads/listApparemment c'est du fat32 qu'il faut (sans certitude) Pour le lien, tu peux mettre une photo et un descriptif à la place 
|
|
|
|
« Last Edit: October 05, 2012, 10:30:45 am by Jean-François »
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 16
Arduino rocks
|
 |
« Reply #6 on: October 05, 2012, 11:03:43 am » |
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
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Geneva
Offline
Faraday Member
Karma: 22
Posts: 2878
Yoplait... le pt'it suisse
|
 |
« Reply #7 on: October 05, 2012, 11:34:59 am » |
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/
|
|
|
|
« Last Edit: October 05, 2012, 11:40:49 am by Jean-François »
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
Lormaison
Offline
Newbie
Karma: 0
Posts: 44
Omnes vulnerant, ultima necat !
|
 |
« Reply #8 on: October 05, 2012, 11:56:59 am » |
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...
|
|
|
|
« Last Edit: October 06, 2012, 09:24:55 pm by LibertyCareche »
|
Logged
|
Quidquid agis, prudenter agas, et respice finem !
|
|
|
|
Lormaison
Offline
Newbie
Karma: 0
Posts: 44
Omnes vulnerant, ultima necat !
|
 |
« Reply #9 on: October 05, 2012, 01:19:36 pm » |
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...
|
|
|
|
« Last Edit: October 06, 2012, 09:26:04 pm by LibertyCareche »
|
Logged
|
Quidquid agis, prudenter agas, et respice finem !
|
|
|
|
Ile-de-France (92 sud), France
Offline
Edison Member
Karma: 22
Posts: 1817
|
 |
« Reply #10 on: October 05, 2012, 02:31:02 pm » |
comment est faite l'adaptation 5V/3V3 des signaux SPI sur cette carte ?
|
|
|
|
|
Logged
|
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 ?
|
|
|
|
Lormaison
Offline
Newbie
Karma: 0
Posts: 44
Omnes vulnerant, ultima necat !
|
 |
« Reply #11 on: October 05, 2012, 02:36:59 pm » |
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...
|
|
|
|
« Last Edit: October 05, 2012, 03:19:47 pm by LibertyCareche »
|
Logged
|
Quidquid agis, prudenter agas, et respice finem !
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 16
Arduino rocks
|
 |
« Reply #12 on: October 05, 2012, 03:13:01 pm » |
Alors pourquoi cela marcherais bien sur une duemilanove?
|
|
|
|
|
Logged
|
|
|
|
|
Lormaison
Offline
Newbie
Karma: 0
Posts: 44
Omnes vulnerant, ultima necat !
|
 |
« Reply #13 on: October 05, 2012, 03:22:04 pm » |
C'est là le point crucial de la question  Tolérance des SD et DueMilaNove... !?
|
|
|
|
« Last Edit: October 06, 2012, 09:26:37 pm by LibertyCareche »
|
Logged
|
Quidquid agis, prudenter agas, et respice finem !
|
|
|
|
Forum Moderator
Geneva
Offline
Faraday Member
Karma: 22
Posts: 2878
Yoplait... le pt'it suisse
|
 |
« Reply #14 on: October 05, 2012, 03:30:38 pm » |
|
|
|
|
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
|