Pages: [1]   Go Down
Author Topic: SD Card mit Leonardo  (Read 2009 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 2
Posts: 33
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo liebe Gemeinde,

Ich habe mir das Data Logging Shield von Adafruit zugelegt:
http://www.adafruit.com/products/243

unter anderem wegen der SD Karte mein Problem ist, das ganze kommuniziert irgendwie nicht mit meinem Leonardo.
per Google bin ich schon darauf gestoßen, dass man wohl folgendes in der Sd2Card.h Datei ändern muss:

Quote
/** The default chip select pin for the SD card is SS. */
uint8_t const  SD_CHIP_SELECT_PIN = SS_PIN;
// The following three pins must not be redefined for hardware SPI.
/** SPI Master Out Slave In pin */
uint8_t const  SPI_MOSI_PIN = MOSI_PIN;
/** SPI Master In Slave Out pin */
uint8_t const  SPI_MISO_PIN = MISO_PIN;
/** SPI Clock pin */
uint8_t const  SPI_SCK_PIN = SCK_PIN;

in
Quote
#include <Arduino.h>
/** The default chip select pin for the SD card is SS. */
uint8_t const  SD_CHIP_SELECT_PIN = SS;
// The following three pins must not be redefined for hardware SPI.
/** SPI Master Out Slave In pin */
uint8_t const  SPI_MOSI_PIN = MOSI;
/** SPI Master In Slave Out pin */
uint8_t const  SPI_MISO_PIN = MISO;
/** SPI Clock pin */
uint8_t const  SPI_SCK_PIN = SCK;

aber trotzdem schlägt die Initialisierung der SD Karte immer fehl.

Hat schon jemand erfahrungen, wie man eine SD Karte mit dem Leonardo verwenden kann?
oder vllt sogar, wie man das data logging shield mit dem Leonardo verwendet?

Wäre für jede Hilfe dankbar!

LG Max
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 270
Posts: 21844
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Die SPI Schnittstelle ist beim Leonardo anderswo:

Nachfolgende Tabelle zeigt die Unterschiede der Pins zwischen Arduino Uno und Arduino Leonardo:
Bezeichnung                       Uno                         Leonardo
A06-A11                                -                                D4,6,8,9,10,12
PWM                             D3,5,6,9,10,11                     D3,5,6,9,10,11,13
SPI                                    D10,11,12,13                    ICSP Stecker
TWI (I2C)                         A04,05 und SCL, SDA            D2,3 und SCL, SDA

Durch die unterschiedliche Anschlussbelegung, speziell des I2C-Bus und der SPI-Schnittstelle, können etliche Standardshields nicht mehr genutzt werden. Zu erwähnen sind hier SD Card Shields und älterer Versionen des Ethernet Shield, welche den SPI-Bus über die Pins 10 bis 13 nutzen.
Nachtrag: das aktuelle Ethernet Shield (Version 6) nutzt den SPI-Bus welcher über den ICSP-Stecker vom Arduino-Board geliefert wird.

Du mußt das Shield umlöten und den 6-poligen ICSP Stecker verwenden.

Grüße Uwe
 
Logged

Offline Offline
Newbie
*
Karma: 2
Posts: 33
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

danke schon mal für die schnelle Antwort.
Und welche pins muss ich dann umlöten?
also am shield 10, 11, 12 und  13 schon klar und welcher muss an welchen vom ICSP?
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 270
Posts: 21844
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Arduino UNO und auch Shield:
Quote
Connections

On the Arduino Duemilanove and other ATmega168 / 328-based boards, the SPI bus uses pins 10 (SS), 11 (MOSI), 12 (MISO), and 13 (SCK). On the Arduino Mega, this is 50 (MISO), 51 (MOSI), 52 (SCK), and 53 (SS). MISO, MOSI, and SCK are also available in a consistent physical location on the ICSP header; this is useful, for example, in designing a shield that works on the Uno and the Mega.

Note that even if you're not using the SS pin, it must remain set as an output; otherwise, the SPI interface can be put into slave mode, rendering the library inoperative. It is, however, possible to use a pin other than pin 10 as the slave select (SS) pin. For example, the Arduino Ethernet shield uses pin 4 to control the SPI connection to the on-board SD card, and pin 10 to control the connection to the Ethernet controller.

ICSP Stecker :
http://www.instructables.com/id/Adding-ICSP-header-to-your-ArduinoAVR-board/step3/ICSP-header-pinout/
Pin 1 des ICSP ist links oben (wenn der Aufdruck "Arduino Leonardo" richtigherum steht) und durch einen kleinen Punkt gekennzeichnet. http://arduino.cc/en/Main/ArduinoBoardLeonardo auf dem Arduino 2009 stehts drauf: http://arduino.cc/en/Main/ArduinoBoardDuemilanove

Bei Zweifel nachmessen: GND ist masse und VTG ist mit 5V verbunden.

Grüße Uwe




« Last Edit: October 06, 2012, 02:54:45 pm by uwefed » Logged

Offline Offline
Newbie
*
Karma: 2
Posts: 33
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

und muss ich softwaretechnisch noch irgendetwas anpassen, denn das Cardinfo bsp funktioniert immer noch nicht
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 270
Posts: 21844
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das SS Pin mußt Du selbst definieren; kann auch gleich bleiben (D10) und muß nicht über den ICSP Stecker gehen.
Zum Cardinfo Beispiel kann ich Dir nichts sagen
Grüße Uwe
Logged

Melbourne, Australia
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Please take a look at this shield adapter which will convert the pinout on the Arduino Leonardo to match the older shields easily. http://arduino.cc/playground/GorillaBuilderz/LeoShield
Logged

The support team, GorillaBuilderz.
www.GorillaBuilderz.com

Offline Offline
Newbie
*
Karma: 2
Posts: 33
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So liebes Forum,
nach einigem experimentieren hab ich es nun geschafft. Für den Fall, dass noch mal jemand das gleiche Problem hat hier die entgültige Lösung:
-Softwareseitig ist die Anpassung, die ich eingangs schon beschrieben habe durchzuführen.
-Hardwaretechnisch hab ich dann mit folgender Konfiguration Erfolg gehabt
auf dem Shield sind die Pins für die SD-Karte noch einmal extra herausgeführt, die dann folgendermaßen verbunden werden müssen:
D0 -> MISO (ICSP)
D1 -> MOSI (ICSP)
CS an einen IO Pin, ich hab 10 genommen
SCK -> SCK (ICSP)

Weiterhin liegt es auch noch an der SD - Karte selbst, von meinen 3 die ich zum ausprobieren hatte ging eine nicht (natürlich die, die ich eigentlich nehmen wollte)

Ich hoffe, dass es anderen Verzweifelten weiter hilft

LG Max
Logged

Offline Offline
Full Member
***
Karma: 2
Posts: 213
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

+1 like  smiley-grin
Welche SD Karten gingen und welche nicht. Was könnte der Unterschied zwischen den Karten sein?

Vielleicht ein Geschwindigkeitsproblem?
Logged

It's not my fault when my Posts are full of Errors. This stupid autocorrection from my browser is set up for german grammar.

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 270
Posts: 21844
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Es gibt
SD-Karten bis 2GByte (Standartkonform mit FAT 16 bit)
SD-Karten über 2Gbyte (nicht Standartkonform)
SDHC-Karten bis 32GByte (mit FAT32, nicht kompatibel mit SD-Karten-Lesern die kein SDHC können)
SDXC-Karten mit bis zu 2TByte (mit exFAT)

Die SD-Library funktioniert mit Standartkonformen SD-Karten und SDHC Karten.

Grüße Uwe
Logged

Offline Offline
Newbie
*
Karma: 2
Posts: 33
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Was auch noch einProblem zu sein scheint, ist die Länge der Dateinamen.
Mit TEST.TXT gab es keine Schwierigkeiten, aber TEMPERATURAUFZEICHNUNG.TXT will er nicht.
Ist aber nicht schlimm, muss man nur wissen.

LG Max
Logged

Germany
Offline Offline
Faraday Member
**
Karma: 59
Posts: 3071
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Was auch noch einProblem zu sein scheint, ist die Länge der Dateinamen.
Das ist nicht Leonardo spezifisch, und in der adafruit Dokumentation erwähnt.
8+3 Dateinamen war in den guten alten Zeiten normal. ( Ich würde auch keine Leerzeichen oder Umlaute riskieren )
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 26
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Was auch noch einProblem zu sein scheint, ist die Länge der Dateinamen.
Mit TEST.TXT gab es keine Schwierigkeiten, aber TEMPERATURAUFZEICHNUNG.TXT will er nicht.
Ist aber nicht schlimm, muss man nur wissen.

LG Max

Das liegt an der FAT Formatierung, bei deinem PC solltest du gleiches Phänomen beobachten können.
Logged

Pages: [1]   Go Up
Jump to: