LC Studio SD Card reader mit 3,3 V betreiben?

Hallo,

habe eine Frage bezüglich des SD Card Modul von LC studio, den ich mit dem Arduino betreiben möchte.
Und zwar, wollte ich wissen, ob ich dieses SD Modul mit 3.3 V zusammen mit dem Arduino betreiben kann oder ob ich 5V brauche?

Habe an den 5V input vom Arduino 2 leds angeschlossen, wäre es dann möglich dieses Modul parallel an den 5 V anzuschliessen?

Hier noch das SD-Modul: http://www.instructables.com/id/Arduino-DIY-SD-Card-Logging-Shield/

Würde mich über eine Antwort freuen.

Die SD-Karten laufen mit 3,3V
Die SD Platine hat einen Spannungsstabilisator für 3,3V und 3 Spannungsteiler um die Steuersignale von 5V auf 3,3V runterzuteilen. In dieser Version funktionert sie nur mit 5V.
Damit Du sie mit 3,3V versorgen und ansteuern kannst (weil Du zB den Arduino DUE verwendest) mußt Du die Karte umbauen. Du mußt den Spannungsstabilisator und die Spannungsteiler überbrücken.

Nachtrag: Etwas stimmt bei der Platine nicht; man kann mit 4 Widerständen keine 3 Spannungsteiler aufbauen und man braucht definitiv 3 Spannungsteiler: CS, MOSI, SCK.
MISO kann direkt von der SD-Karte auf den Arduino ghen da dieser 3,3V noch als HIGH liest.
Da ich keine Schaltplan finde kann ich mich nur wundern und von der Benutzung der Platine abraten bis man nicht diese Besonderheit aufgeklärt hat.

Grüße Uwe

Hi danke für die Schnelle Antwort.
Also ich habe den Arduino Mega2560. Der Hat sowohl 5V und 3,3V inputs.
Sorry jetzt bin ich verwirrt, was wäre jetzt die bessere Variante, das SD Modul mit 5 volt oder 3,3 v u betreiben? (Bin ein neuling).

habe noch eine schematic zu dem Board gefunden.
Bin noch allerdings verwirrt.

lcsoft SD module.pdf (95 KB)

milito:
Hi danke für die Schnelle Antwort.
Also ich habe den Arduino Mega2560. Der Hat sowohl 5V und 3,3V inputs.
Sorry jetzt bin ich verwirrt, was wäre jetzt die bessere Variante, das SD Modul mit 5 volt oder 3,3 v u betreiben? (Bin ein neuling).

Der Mega hat keine 3,3V Outputs und die 5V Inputs funktionieren bei 3,3V auch noch.
Alle Arduinos haben eine interne 3,3V Spannungsversorgung die für kleine schaltungen verwendet werden können (bei Arduinos mit FT232 max 50mA bei Arduinos mit ATmega8U2 oder ATmega16U2 (wie UNO oder Mega 2560, Leonardo, Micro, Espiria) max 180mA).

Ich verstehe darum Deien Frage nicht.

Grüße Uwe

Stimmt da hast du recht, das sind meine Outputs. Ich meinte , ob ich das SD modul an dem 3,3V output vom Arduino anschliessen kann, oder ob es sich empfiehlt, dieses an den 5V anzuschliessen?

milito:
habe noch eine schematic zu dem Board gefunden.
Bin noch allerdings verwirrt.

Ich bekomme die PDF-Datei leider nicht auf.

milito:
Stimmt da hast du recht, das sind meine Outputs. Ich meinte , ob ich das SD modul an dem 3,3V output vom Arduino anschliessen kann, oder ob es sich empfiehlt, dieses an den 5V anzuschliessen?

Die Platine ist theoretisch (außer der Unklarheit der Spannungsteiler) für 5V gebaut.
Grüße Uwe

Grüße Uwe

Ok danke dir sehr für deine Hilfe, dann betreibe ich diese mit 5 v, obwohl mir noch unklar ist, warum dann eine 3.3V auf dem Modul angeboten wird.

Eine weitere Frage hätte ich ud zwar das SD Module wird über SPI angeschlossen (MOSI,MISO, SCK und SS/CS PIN).
So in vielen Bsp im Internet steht immer folgendes wegen dem CS /SS PIN:
// 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); // change this to 53 on a mega

so jetzt ist es richtig, dass ich als CS /SS PIN einen anderen Digitalen I/O Pin verwenden kann z.B PIN 4 und den Standard CS/PIN 53(Mega2560) somit als Output legen muss?

milito:
so jetzt ist es richtig, dass ich als CS /SS PIN einen anderen Digitalen I/O Pin verwenden kann z.B PIN 4 und den Standard CS/PIN 53(Mega2560) somit als Output legen muss?

du kannst jeden digitalen I/O Pin als CS definieren, mußt aber trotzdem den originalen CS-Pin (53 beim Mega) als Output definieren, sonst geht die Bibliothek nicht.

Hast du die Karte inzwischen zum laufen gebracht?
ich habe die Gleiche, konnte aber bisher keine Verbindung herstellen.
Ich habe den Verdacht, dass die Karte nur mit 3.3V I/Os funktioniert, da die Widerstände auf dem Board Pullup auf die 3.3V sind.

Gunther

Ja, die Pullup-Widerstände kannst du als Schutz sehen, damit einer SD Karte nichts passiert, wenn zwar 3.3V ( oder 5V am Regler ) anliegen, aber die Signal-Pins offen sind.

Ich habe so ein Modul zum Laufen gebracht, indem ich die 5V Eingangs-Signale über Rückwärts -Dioden angeschlossen habe:

5V MOSI  ---- |< --- o ---+----- SD Card
             Diode        |
                          R     Pullup
                          |
                         3.3V

Aber ein 74HC4050 wird auch gern genommen, um mehrere 5V Signale auf 3.3V zu wandeln.

Hi also habe das SD Board noch nicht zum laufen gebracht, bin aber dran und möchte es so schnell wie möglich schaffen.
Werde auch berichten.
Also laut einigen Foren, kann man dies mit 3.3V betreiben, aber man hat nur 50mA vom Arduino zur Verfügung und es reicht nicht , um die SD karte zu betreiben.

Habe auch in dem englischen Arduino Forum gelesen, dass das mit dem direkten anschliessen an 3.3V geht , aber wiederum Probleme mit dem 5V auftreten.
Hier die Lösung: http://arduino.cc/forum/index.php/topic,125973.new.html#new.
Kann es sein, dass es mehrere Versionen von dem Board gibt?

Falls es jemand hinbekommen hat, schreibt bitte, bin auch an dem Problem dran und bin ein Anfänger

So wie ich verstanden habe, geht es dir um die Versorgung des SD-Boards.

Das ist, so wie ich das verstanden habe, egal. Das Board hat einen eigenen 3.3V Regler, der die versorgung der SD-Karte aus den 5V erzeugt. Wenn du die 3.3V direkt verbindest, dann umgehst du den Spannungsregler und speist die SD-Karte direkt aus den 3.3V des Arduino.

Was aber die eigentlichen Probleme verursacht, sind die Signalleitungen:
MOSI, MISO, SCLK, CS

Das sind auf der SD-Karte 3.3V I/O, auf der Arduino Seite aber 5V I/O.

Laut dem Verkäufer meines SD-Boards kann die Kompatibilität mit 5V-Systemen erreicht werden, in dem jeweils ein Spannungsteiler vor die Signalpins geschaltet wird:

5V MOSI  ---- 560R ---- + ----- SD Card 3.3V MOSI
                        |
                        1k
                        |
                       GND

ich habe es aber noch nicht ausprobiert, mangels Zeit. Vielleicht schaffe ich es am WoE.

ich habe mir jetzt doch die Zeit genommen und die SD-Karte umgebaut.

Allerdings nicht so wie oben angegeben mit dem Spannungsteiler 560R/1K vor dem Board, das war mir zu niederohmig.
ich habe jetzt für MOSI, SCLK und CS einen Spannungsteiler 4,7k/10K gebaut.

Dazu habe ich auf dem Board die vorhandenen 10k Pullups von MOSI und SCLK (R2, R3) gelöst und hochkant gestellt, R4 (wird für SPI nicht benötigt) entfernt und hochkant auf den CS-Pin des SD-Adapters gelötet.
die obere Seite der Widerstände verbunden und auf Masse gelegt.

Die 4,7K habe ich die Zuleitung gelötet. (Und für die mechanische Stabilisierung und Isolation mit Heißkleber bekleckert.)

Versorgt wird das ganze mit 5V.

Gunther

die obere Seite der Widerstände verbunden und auf Masse gelegt.

Die Masseverbindung auf dem Bild ist das Beste, und erklärt auch warum es Masse heisst: Scheint in der Luft zu hängen und durch seine Masse den Draht runterzuziehen.

:wink:

Dass CS unbeschaltet nach LOW (aktiv) gezogen wird, sollte nicht wirklich stören, hoffe ich.

Hallo ,
habe es heute versucht direkt anzuschließen über die 5V , da es laut Hersteller gehen sollte, hat aber nicht funktioniert.
Bin komplett durcheinander. :frowning:
In dem englischem Forum ist sogar, die Rede, dass ich das Problem umgehen kann, indem ich es direkt mit 3.3V anschließe.
Meien frage dazu: Reichen die 3.3V aus, um das Lesen /Schreiben auf der SD-karte auszuführen, da mein Arduino mega2560 an dem 3.3V 50mA zur Verfügung stellt?

Danke guntherb für deine Bilder , also wäre es die andere Möglichkeit ,dass zum Laufen zu bringen?
Du hast ja geschrieben, R1 wird nicht benötigt, und wir an dem CS PIN gelötet , aber auf dem bild fehlt R4 und nicht R1, welches ist nun richtig?
Wäre es vllt möglich einen schaltplan als Skizze zu dem Aufbau zu bekommen?-> komme mit der Strichschreibweise nicht klar(bin ein Neuling).

Eine weitere Frage ist, woran erkenne wie die Pinbelegung der SD karte ist auf dem Board, bzw. wo sind welche PINS, habe unter SD-Karte in Wikipedia etwas dazu gefunden, aber da sind nur 9 Pins an dem SD - Slot und nicht 12 wie bei dem LC Studio.

Sorry wenn ich euch so zutexte, in dem Link den ich weiter oben gestellt habe, war da die rede, dass da die GND nicht miteinander verbunden waren (vom Regler und SD-Karte GND) und deshalb das nicht funktioniert unter 5 V, könnte man es auch so beheben, dass man die Massepunkte , wie beschrieben verbindet?

Zu guntherb deiner Schaltung: mir ist noch nicht so klar warum du das genauso aufgebaut hast mit dem Spannungsteiler, könntest du es mir auch bitte erklären? -> möchte es gerne verstehen :smiley:

...versucht direkt anzuschließen über die 5V , da es laut Hersteller gehen sollte, hat aber nicht funktioniert.
Bin komplett durcheinander.

Das tut mir leid, reicht aber nicht wirklich für mehr Hilfe.

Ausserdem möchte ich dich an deinen ersten Link erinnern. Dort steht:

Ready-made SD card logging shields for the Arduino typically cost in
the range of $15 - $25. This is quite reasonable, but we might save a
couple of bucks if we make our own. Not to mention all the fun in building it.

Ich hatte zum Glück zuerst ein "Ready-made SD card logging shield" ( den adafruit Data logger via watterot )
Bei dem ich dachte, das müsste auch günstiger gehen , "Not to mention all the fun in building it" , und mir so ein China-Ding kommen lassen.

Der Vergleich zwischen beiden Shields (und das Ausprobieren verschiedener Karten) hat mir sehr geholfen!
Eine uralte 32MB Karte war lange Zeit die einzige, die ich in meinem Eigenbau zum laufen gekriegt habe. Jetzt geht dort auch eine 2GB Karte.
Ich vermute, es liegt evtl. auch Leitungen und daran, dass ich das Ganze mit einem atmega mit internen 8MHz betreibe.
Da ich mit dem Eigenbau eh nur eine FAT16-only Library verwende, bin ich zufrieden.

Also, aufgeben gilt nicht, aber bevor der Frust zu groß wird, gibt es deutlich einfachere Lösungen.

Ja, welche wären denn die einfacheren Lösungen ?

Also, aufgeben gilt nicht, aber bevor der Frust zu groß wird, gibt es deutlich einfachere Lösungen.

Ich meinte z.B. den erwähnten adafruit Bausatz (mit RTC-Uhr, die man für einen Logger sowieso braucht), oder ähnliche speziell für Arduino schon mit Pegelwandler versehene Shields.

Danke für den Hinweis mit R1/R4, ich habe es geändert!

Wie Michael_x schon schrieb:
es ist ein SD-Board, mit dem man mit etwas Aufwand ein günstiges Arduino-taugliches bauen kann.

Bei der Quelle, bei der ich gekauft hatte, stand das nicht mal dabei...

milito:
In dem englischem Forum ist sogar, die Rede, dass ich das Problem umgehen kann, indem ich es direkt mit 3.3V anschließe.
Meien frage dazu: Reichen die 3.3V aus, um das Lesen /Schreiben auf der SD-karte auszuführen, da mein Arduino mega2560 an dem 3.3V 50mA zur Verfügung stellt?

Du bringst da was durcheinander: Die Versorgungsspannung (von der redest du die ganze Zeit) und der Spannungspegel der Signalpins.
Zunächst die Versorgungsspannung:
SD läuft mit 3.3V, Arduino mit 5V. Zu diesem Zweck ist auf dem SD-Board ein Spannungsregler verbaut. Wenn du den Pin [5V] des SD-Boards mit dem Pin [5V] des Arduino verbindest, dann wird die SD-Karte auf dem Board mit 3.3V versorgt. Auf dem Board sieht das so aus:

  [5V]------[AMS1117]--o------->SD-Socket
  [3.3V]---------------|

links die SD-Board Anschlusspins. Wie du sehen kannst ist der Versorgungspin des SD-Kartenhalters sowohl an den 3.3V Pin des Boards als auch an den Ausgang des Spannungsreglers angeschlossen. Es ist also wirklich egal, ob das Board mit 3.3V oder mit 5V versorgt wird. Das macht keinerlei Unterschied.

Aber bei den Signalpins ist das gleiche Problem:
Arduino liefert 0V / 5V, die SD-Karte 0V / 3.3V.
Und hierfür ist auf dem Board leider nichts vorgesehen!
Also müssen die 5V Signale des Arduino in SD-Verträgliche 3.3V gewandelt werden. Das geht, nach gängiger Meinung im Web, am einfachsten mit Widerstands-Spannungsteilern.

Die drei Leitungen, die vom Arduino zum SD senden, also MOSI, SCLK und CS müssen runtergeteilt werden. Gängige Dimensionierung ist:
R1, R3, R5: 1,8k
R2, R4, R6: 3,3K
Das funktioniert aber bei diesem SD-Board nicht, weil hier ja noch 10k Pullup auf die 3,3V geschaltet sind, und damit keine sauberen Massepegel ankommen. (Eine SD-Karte verlangt als LOW-Pegel eine Spannung kleiner 0,8V, es kann also funktionieren, muß aber nicht). Der Vorschlag meines Verkäufers war diese Dimensionierung:
R1, R3, R5: 560R
R2, R4, R6: 1K
Das ist mir aber zu niederohmig.

Deshalb bin ich den Weg gegangen: die 10K pullup entfernt, und damit einen Spannungteiler gebaut:
R1, R3, R5: 4,7k
R2, R4, R6: 10K

Noch ein Wort zu dem Massen:
ich habe keine Massen verbunden!
ich habe nur einen Punkt gesucht, an dem sich die Masseleitung einfach anlöten lies. Und das das Gehäuse des SD-Schachtes mit GND verbunden ist, habe ich hier gelötet.
die Massen sind bereits alle verbunden! (wenn es das nicht wäre, würde nichts funktionieren)

wenn du dieses SD-Board verwenden willst mußt du einen Pegelwandler für die Signale bauen.
entweder so, wie oben beschrieben, mit Spannungsteiler,
oder so, wie in deinem Link beschrieben, mit einem aktiven Pegelwandler wie dem CD4050.

wenn dir das zu kompliziert ist, mußt dir ein voll Arduino kompatibles SD-Board kaufen. Mir scheint, dieses hat die Spannungteiler bereits integriert, aber das solltest du vorher mit dem Verkäufer klären.

Ich hoffe, nun alle deine Fragen beantwortet zu haben, ansonsten hilft googlen

Grüße

Gunther