INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Mega 2560 + GPS Shield 3.1 - SD.init liefert false, funktioniert aber trotzdem
11.01.2014, 18:09
Beitrag #1
Mega 2560 + GPS Shield 3.1 - SD.init liefert false, funktioniert aber trotzdem
Hallo,

ich bin absoluter Neuling in der Arduinowelt und habe folgendes Problem:
Ich habe ein Arduino Mega 2560 R3 mit DT Studio GPS Shield 3.1.
GPS Daten kann ich einlesen und auf die SD-Karte (2GB) schreiben, obwohl mir die Methode SD.init immer "False" liefert.
Mein Code sieht folgendermaßen aus:
Code:

//Daten auf SD-Karte des GPS Moduls speichern
//Max. 2GB-Karte
//MEGA 10-14 > 50-53
//10 > 53
//11 > 51
//12 > 50
//13 > 52

int b = 0;
const int chipSelect = 53;

#include <SD.h>

void setup()
{
Serial.begin(9600);

Serial.println("Initializing SD card... ");
pinMode(chipSelect, OUTPUT);

if (!SD.begin(53))
{
Serial.println("Card faild, or not present !");
return;
}
Serial.println("microSD card is ready!");
}

void loop()
{
File dataFile = SD.open("DATATK.TXT", FILE_WRITE);
if (dataFile)
{
for (int a = 0 ; a < 11; a++)
{
dataFile.print(a);
dataFile.print(" multiplied by two is ");
b = a * 2;
dataFile.println(b, DEC);
}
dataFile.close();
}
else
{
Serial.println("Fertig");
do{} while(1);
}

}


Hat jemand eine Idee was hier noch fehlt?
Wie gesagt, der Zugriff auf die Karte funktioniert.
Mich stört nur die Fehlermeldung der SD.init.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.01.2014, 19:05
Beitrag #2
RE: Mega 2560 + GPS Shield 3.1 - SD.init liefert false, funktioniert aber trotzdem
Hallo Geminy,

müsste nicht die SPI.h auch noch per include rein?

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.01.2014, 23:00 (Dieser Beitrag wurde zuletzt bearbeitet: 11.01.2014 23:26 von Geminy.)
Beitrag #3
RE: Mega 2560 + GPS Shield 3.1 - SD.init liefert false, funktioniert aber trotzdem
Hallo Ricardo,

darüber habe ich auch schon nachgedacht, war mir aber nicht sicher, da ja Daten auf die Karte geschrieben werden und es in den Beispielprogrammen auch nicht mit der SPI.h gezeigt wurde. Ich bekomme wie gesagt nur von der SD.init kein True zurück. Das mit der SPI.h werde ich morgen mal probieren.

Grüße
Torsten

Hi,

mit der SPI.h hat auch keine Verbesserung gebracht.
Habe gerade gemerkt, das ich von der SD.init geschrieben habe. Gemeint war natürlich dieser Abschnitt.
if (!SD.begin(53))
{
Serial.println("Card faild, or not present !");
return;
}
Serial.println("microSD card is ready!");
}

Ausgegeben wir immer "Card faild, or not present !" obwohl spätere Zugriffe funktionieren.

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.01.2014, 00:51
Beitrag #4
RE: Mega 2560 + GPS Shield 3.1 - SD.init liefert false, funktioniert aber trotzdem
Hallo,
ich habe nun zwar nicht den hier gezeigten Code analysiert...doch das mit der SPI.h ist mir auch gleich aufgefallen.
Und im allgmeinen möchte ich auf meinen Beitrag hier verweisen:
Verweis
Dieser Sketch läuft Wochenlang ohne Absturz.
Lediglich wenn man die SD abgemeldet hat muß man zum wiederanmelden einen Reset ausführen "jmp 0000"
Was ich hier im Programm von Geminy vermisse sind die Chip-Select Ansteuerungen für die SD Karte....beim Shield für den UNO ist das Port 4 z.B. und der ist Hardwaremäßig durchs Layout definiert. Check das doch mal bei deinem Shield...
Da mir das was die Beispielprogramm gezeigt haben zu undefiniert erschien habe ich extra Routinen geschrieben um den Chip-Select gezielt zu setzen, siehe selSD(), selETH()...
lg
bk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.01.2014, 11:13
Beitrag #5
RE: Mega 2560 + GPS Shield 3.1 - SD.init liefert false, funktioniert aber trotzdem
Zitat:Was ich hier im Programm von Geminy vermisse sind die Chip-Select Ansteuerungen für die SD Karte....
Grundsätzlich ist das natürlich wichtig wenn man zwischen Geräten wechseln möchte die gemeinsam an SPI hängen.
Habe jetzt keine Ahnung was der Rest des GPS Shield benutzt oder ob noch andere Shields am SPI hängen, ebenso wäre auch der Code rundherum interessant. Vielleicht liegt ja eher da die Ursache.
Ich habe das Stück Code von Geminy mal bei mir auf ein 2560 + LCD TRouch inkl. SD-Card-Reader geladen. Ging nach einfügen der SPI.h sofort ohne Probleme und schrieb auch die passende Meldung in den sieriellen Monitor. Ich hänge mal die von mir genutzte SD und SPI - Lib ran. Die müssen dann wieder ins Verzeichnis "libraries" rein. Vllt. liegt es ja wieder mal an Versionsständen.
Übersetzung in Win 7 / IDE 1.5.2

Grüße Ricardo


Angehängte Datei(en)
.zip  SD-SPI.zip (Größe: 65,2 KB / Downloads: 62)

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.01.2014, 11:43 (Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2014 11:49 von Geminy.)
Beitrag #6
RE: Mega 2560 + GPS Shield 3.1 - SD.init liefert false, funktioniert aber trotzdem
Hallo,

Hardware ist nur das Arduino MEGA 2560 R3 Board mit dem GPS Shield 3.1 von DT Studio. Also keine weiteren Geräte.
Auch der Code ist alles was ich hier im Moment versuche. Also noch nicht die echten GPS-Daten runterzuschreiben.

Verdrahtet habe ich die PINs von 53 > 10, 51 > 11, 50 > 12 und 52 > 13.
Was mich besonders wundert ist die Tatsache, dass ich Daten auf die Karte schreiben kann. Ich bekomme nur beim SD.init immer false.
Kann das denn an der SPI liegen?
Das mit der Chip-Select Ansteuerungen für die SD Karte hatte ich so verstanden, das dort nur der Pin 53 eingetragen werden muss.
Habe die SD.h und SPI.h aus der zip mit eingebunden. Keine Veränderung.
Lade gerade die 1.5.5IDE runter und werde dann wieder berichten.

Viele Grüße
Torsten

Ich meine natürlich SD.begin(53) nich SD.init
Gruß Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.01.2014, 11:49 (Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2014 11:50 von rkuehle.)
Beitrag #7
RE: Mega 2560 + GPS Shield 3.1 - SD.init liefert false, funktioniert aber trotzdem
Hallo Torsten,

hast du mal einen Link zur Produktbeschreibung / Artikel beim Händler für das Shield?

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.01.2014, 12:29 (Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2014 12:43 von Geminy.)
Beitrag #8
RE: Mega 2560 + GPS Shield 3.1 - SD.init liefert false, funktioniert aber trotzdem
Hallo,

diese müsste passen.

Mit der neuen IDE habe ich momentan Probleme beim übersetzen meines Programms.
Hierzu eine Idee?

C:\Program Files\Arduino\libraries\SD\src\utility\Sd2Card.cpp: In function 'void spiSend(uint8_t)':
C:\Program Files\Arduino\libraries\SD\src\utility\Sd2Card.cpp:35: error: 'SPI' was not declared in this scope
C:\Program Files\Arduino\libraries\SD\src\utility\Sd2Card.cpp: In function 'uint8_t spiRec()':
C:\Program Files\Arduino\libraries\SD\src\utility\Sd2Card.cpp:44: error: 'SPI' was not declared in this scope
C:\Program Files\Arduino\libraries\SD\src\utility\Sd2Card.cpp: In member function 'uint8_t Sd2Card::init(uint8_t, uint8_t)':
C:\Program Files\Arduino\libraries\SD\src\utility\Sd2Card.cpp:251: error: 'SPI' was not declared in this scope
C:\Program Files\Arduino\libraries\SD\src\utility\Sd2Card.cpp: In member function 'uint8_t Sd2Card::setSckRate(uint8_t)':
C:\Program Files\Arduino\libraries\SD\src\utility\Sd2Card.cpp:507: error: 'SPI' was not declared in this scope


Gruß Torsten

Ohh,
das lag an der SPI.h.

Torsten

Hallo,

Stand mit IDE 1.5.5Beta ist wie gehabt.
Allerdings musste ich die SPI.h jetzt einfügen was vorher nicht notwendig war.
Fehler bei SD.begin bleibt. Schreiben auf die Karte ist trotzdem möglich.
Kann es auch an der Karte liegen?
Leider habe ich keine andere SD-Karte unter 4GB zur Hand.
Aber wie schon geschrieben, Zugriff funktioniert. Mich stört halt die Fehlermeldung.

Torsten


Angehängte Datei(en)
.pdf  DS_IM120417017_ArduinoGPSshield.pdf (Größe: 362,41 KB / Downloads: 191)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  CP2102 und USB Host Shield ?? DL1AKP 0 50 01.12.2016 08:55
Letzter Beitrag: DL1AKP
  Arduino UNO und Ethernet Shield 2 POE und Fritzbox 3272 tr3 2 159 19.11.2016 10:46
Letzter Beitrag: tr3
  Datenübertragung vom Arduino Mega 2560 zu Hterm Datatom 1 99 13.11.2016 23:08
Letzter Beitrag: hotsystems
  Arduino Mega 2560 läuft nicht Wolfgang50 6 185 13.11.2016 10:50
Letzter Beitrag: Wolfgang50
  Arduino Mega 2560 Manfred1981 4 190 11.11.2016 18:07
Letzter Beitrag: hotsystems
  Kommunikation über das WiFi-Shield Flap 3 234 07.11.2016 20:20
Letzter Beitrag: hotsystems
  Attiny45 Bootloader brennen mit Funduino Mega toto1975 63 2.207 23.10.2016 17:08
Letzter Beitrag: hotsystems
Question Mega 2560 defekt? triode 11 364 29.09.2016 07:21
Letzter Beitrag: hotsystems
  Upload funktioniert nicht Levi 5 247 22.09.2016 20:19
Letzter Beitrag: hotsystems
  Arduino Lan Shield - Visual Basic ZackiE 6 217 20.09.2016 19:26
Letzter Beitrag: ZackiE

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste