Go Down

Topic: Mega R3 et sd recalcitrante (Read 794 times) previous topic - next topic

duspat

Bonjour à tous.

Je me permets de re poster... Je n 'étais pas clair dans mon poste précédent.... :smiley-fat:

Lorsque je lance le sketch exemple fournis avec la lib SD sur mon mega 2560 R3, j'ai le message suivant :

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?

Or ce même sketch avec avec CS 10 (shield adafruit sd) et SS 10 sur un UNO R3 fonctionne...

Si quelqu'un peut m'éclairer, serait chouette.

Code: [Select]
/*
  SD card test
   
This example shows how use the utility libraries on which the'
SD library is based in order to get info about your SD card.
Very useful for testing a card when you're not sure whether its working or not.

The circuit:
* SD card attached to SPI bus as follows:
** UNO:  MOSI - pin 11, MISO - pin 12, CLK - pin 13, CS - pin 4 (CS pin can be changed)
  and pin #10 (SS) must be an output
** Mega:  MOSI - pin 51, MISO - pin 50, CLK - pin 52, CS - pin 4 (CS pin can be changed)
  and pin #52 (SS) must be an output
** Leonardo: Connect to hardware SPI via the ICSP header
Pin 4 used here for consistency with other Arduino examples


created  28 Mar 2011  by Limor Fried
modified 9 Apr 2012   by Tom Igoe
*/
// include the SD library:
#include <SD.h>

// set up variables using the SD utility library functions:
Sd2Card card;
SdVolume volume;
SdFile root;

// change this to match your SD shield or module;
// Arduino Ethernet shield: pin 4
// Adafruit SD shields and modules: pin 10
// Sparkfun SD shield: pin 8
const int chipSelect = 10;   

void setup()
{
// Open serial communications and wait for port to open:
  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);


  // we'll use the initialization code from the utility libraries
  // since we're just testing if the card is working!
  while (!card.init(SPI_HALF_SPEED, chipSelect)) {
    Serial.println("initialization failed. Things to check:");
    Serial.println("* is a card is inserted?");
    Serial.println("* Is your wiring correct?");
    Serial.println("* did you change the chipSelect pin to match your shield or module?");
  }
 
  // print the type of card
  Serial.print("\nCard type: ");
  switch(card.type()) {
    case SD_CARD_TYPE_SD1:
      Serial.println("SD1");
      break;
    case SD_CARD_TYPE_SD2:
      Serial.println("SD2");
      break;
    case SD_CARD_TYPE_SDHC:
      Serial.println("SDHC");
      break;
    default:
      Serial.println("Unknown");
  }

  // Now we will try to open the 'volume'/'partition' - it should be FAT16 or FAT32
  if (!volume.init(card)) {
    Serial.println("Could not find FAT16/FAT32 partition.\nMake sure you've formatted the card");
    return;
  }


  // print the type and size of the first FAT-type volume
  uint32_t volumesize;
  Serial.print("\nVolume type is FAT");
  Serial.println(volume.fatType(), DEC);
  Serial.println();
 
  volumesize = volume.blocksPerCluster();    // clusters are collections of blocks
  volumesize *= volume.clusterCount();       // we'll have a lot of clusters
  volumesize *= 512;                            // SD card blocks are always 512 bytes
  Serial.print("Volume size (bytes): ");
  Serial.println(volumesize);
  Serial.print("Volume size (Kbytes): ");
  volumesize /= 1024;
  Serial.println(volumesize);
  Serial.print("Volume size (Mbytes): ");
  volumesize /= 1024;
  Serial.println(volumesize);

 
  Serial.println("\nFiles found on the card (name, date and size in bytes): ");
  root.openRoot(volume);
 
  // list all files in the card with date and size
  root.ls(LS_R | LS_DATE | LS_SIZE);
}


void loop(void) {
 
}


68tjs

Pourquoi ne pas avoir choisi l'exemple le plus basique "dataloader" comme cela t'as été conseillé ?
En respectant bien la mise en garde avec les pins qui ne servent pas mais qu'il faut configurer quand même.

Question (très) c*n  : la carte SD elle fonctionne correctement sur un PC ?

duspat

#2
Jun 15, 2013, 12:04 am Last Edit: Jun 15, 2013, 12:17 am by duspat Reason: 1
merci déjà de m avoir lu.

euh la réponse que l'on m'aurait faite.....  je n'en ai pas vue...
Concernant l'état de la carte SD, elle est en bon état et lisible sur le pc...
Je précise que le shield et la carte SD fonctionne parfaitement avec un UNO (qui soit dit en passant me sert à autre chose; d'ou mon problème).
et pour le sketch; je pensais que celui qui recherchait les infos sur carte était plus "simple".
je vais donc essayer l'autre.

ben.... datalogger (sketch) va pas non-plus....
en relisant les infos adafruit je tombe sur :

Mega and Leonardo Users!
Don't forget to change sd.begin() to specify the pin numbers as below

SD.begin(10,11,12,13);

et flûte...  y a pas de SD.begin dans le sketch....

help..... ;-)

Go Up