Stránka 1 z 1

Ethernet Shield W5100 + SD card

Napsal: 24 říj 2018, 17:53
od Axamith
Tak jsem si zase po nějaké době natloukl nos :-(
Pořídil jsem si Ethernet Shield W5100 z Číny.
A nejsem schopen na něm rozchodit SD kartu. Arduino + různé SD moduly mi chodí, s několika kartami. Ale na shieldu se se mnou prostě nebaví.
Mezi různými sketchemi jsem zkoušel tuto z HWkitchen:

Kód: Vybrat vše

#include <SPI.h>
#include <SD.h>

File myFile;
int const pinSS = 10;
int const pinCS = 4;

void setup()
{
  // i když se pin nepoužívá, musí být definován jako výstup!
  pinMode(pinSS, OUTPUT);
  // začátek sériové komunikace
  Serial.begin(9600);

  Serial.print("inicializace SD karty...");

  // pokud není karta dostupná, tak:
  if (!SD.begin(pinCS))
  {
    Serial.println(" inicializace selhala!");
    while (1);
  }
  Serial.println(" inicializace uspesna!");

  // soubor, který chceme otevřít a psát do něj (FILE_WRITE)
  // se jmenuje test.txt (popřípadě vložte celou cestu k souboru)
  myFile = SD.open("test.txt", FILE_WRITE);

  // pokud se soubor načte a otevře, tak:
  if (myFile)
  {
    Serial.println("Zapisuji do test.txt");
    // zapiš do souboru
    myFile.println("dneska sviti slunce");
    // zavři soubor
    myFile.close();
    Serial.println("uspesne zapsano");
  } 
  // pokud se nepodaří soubor načíst a otevřít, tak:
  else
  {
    Serial.println("soubor se nepodarilo otevrit");
  }

  // přečtění souboru:
  Serial.println("\ncteni ze souboru\n");
  // otevři soubor test.txt pro čtení, mód je defaultně nastavený na FILE_READ
  myFile = SD.open("test.txt");
  // pokud se soubor načte a otevře, tak:
  if (myFile)
  {
    Serial.println("soubor obsahuje: ");

    // čti ze souboru, dokud je co
    while (myFile.available())
    {
      Serial.write(myFile.read());
    }
    // zavři soubor
    myFile.close();
  }
  // pokud se nepodaří soubor načíst a otevřít, tak:
  else
  {
    Serial.println("soubor se nepodarilo otevrit");
  }
}

void loop()
{
  // jelikož chceme, aby kód proběhl jenom jednou, tak zde nic nebude
}
A výsledek: inicializace SD karty... inicializace selhala!
Taková blbost, práce s kartou a já na tom trávím už druhé odpoledne.

Nakopne mě někdo správným směrem?

Re: Ethernet Shield W5100 + SD card

Napsal: 24 říj 2018, 19:29
od SkullKeep
No já bych zkusil propípnout CS PIN z sd karty na pin Shieldu.
viz. obr. a pak to změnit v programu.
SD Card Schematic.png

Re: Ethernet Shield W5100 + SD card

Napsal: 25 říj 2018, 06:31
od Axamith
Díky za nápad. zkusím proměřit. Celkově jsem ze shieldu zklamaný, návrh HW je nedomyšlený. USB konektor na UNU je dost vysoký a shield se o něj pájenými piny opírá, takže zkrat. nejde nasadit až nadoraz, je potřeba ho mít ze šikma. A USB konektor od shieldu izolovat, já ho olepil několika vrstvami el. pásky.

Re: Ethernet Shield W5100 + SD card

Napsal: 25 říj 2018, 18:04
od Axamith
Měřím jak mourovatej a vypadá to, že CS pin karty vede na 4 pin shieldu, ale není na přímo, naměřím odpor (cca 1k). V zoufalství jsem v programu postupně nacpal všechny možné piny a bez výsledku. Kontaktoval jsem prodejce, aby se vyjádřil. Uvidíme :-(

Re: Ethernet Shield W5100 + SD card

Napsal: 25 říj 2018, 19:52
od pavel1tu
Já měl problém s SD kartami
Z 5ti mi to přečetlo 2.
nevím proč :-( - tak to nepoužívám, ani jsem to zatím nepotřeboval

Re: Ethernet Shield W5100 + SD card

Napsal: 26 říj 2018, 05:42
od Axamith
Kdysi jsem se trápil s jedním modulem, zjistil jsem, že má studeňák na slotu. Nyní mám 2 další moduly, jedna karta ze 3 mi nejde, tu prostě pro Arduino nepoužívám, v PC ano. Tento shield se staví na zadní, kartu to nebere žádnou, dokonce jsem kvůli tomu koupil novou. V jiném modulu na první dobrou, tady opět ne :-(
Shield mě celkově zklamal, už svým naprosto diletanským způsoben nasazení na UNO. Zvažuji, jestli raději nepořídit Nano + ethernet shield pro Nano a k tomu dát funkční SD modul.
Hodit to na vlastní desku s ostatními periferiemi a byl by klid.