Hallo zusammen,
ich habe aus dem ProdManualSDCardv1.9 von SanDisk die Beschaltung
für den SPI-Mode der SD-Karten abgeleitet und frage mich nun, ob alles
so richtig ist....
Im Anhang findet ihr ein .jpg vom .sch, wäre nett, wenn das mal kurz ein
erfahrener überschauen könnte, bevor ich eine fehlerhafte Schaltung
aufbaue.
=======================================================================
Bitte die restliche Beschaltung des ATMega nicht beachten, die habe ich
absichtlich nicht eingezeichnet, da weiß ich aber das die richtig ist
=======================================================================
Scheint also alles richtig zu sein, wenn euch also nichts auffällt, das
ist gut !
Wie sieht es denn mit der Transistorschaltung aus ?
kann ich das so machen, wie ich es mir vorgestellt habe, das ich die
SD-Karte nur aktiv schalte, wenn ich Daten lesen/speichern möchte, damit
ich möglichst viel Energie spare ??
Im Prinzip sollte das so funktionieren, vorausgesetzt, Dein Controller
arbeitet mit einer für die SD-Card zuträglichen Spannung (i.a. 3,3V).
Wichtig wäre nur, das vor dem Abschalten der Spannungversorgung alle
Eingänge der Karte auf LOW gelegt werden, sonst fliesst dort ein Strom
über die Schutzdioden an den Eingängen, der evtl. für diese zuviel sein
könnte. Altenativ könnten die Controllerausgänge auch hochohmig
geschaltet werden. Dann würde aber über den Pullup an CS noch Strom
fliessen, der zwar wohl nicht schädlich, aber doch energieverbrauchend
wäre.
Gruss
Mike
Guten morgen euch allen !!
Ich habe wieder etwas geändert und hoffe ihr könnt 2min eurer Zeit
aufbringen, um zu schauen ob so richtig ist....
Ehrlich dauert nicht lang !
Ich hab auch extra .PNG gemacht :)
Also so ist neue ansteuerung der SD-Karte...
PA0=SD_PWR_On
PA1=SD_Detect
PA2=SD_Write_Prot
gedacht ist es so, um Energie zu sparen, das die SD nur eingeschaltet
wird, kurz bevor dauf geschrieben wird...
Also wenn ich PA0 auf High-Pegel ziehe, dann müsste doch der Transistor
die Verbindung CS(active low), VSS1 und VSS2 zu GND herstellen, richtig
? Und erst dann wird doch Strom durch die SD verbraucht, also es fließt
Strom von 3V3 zu GND (über Transistor)...
Wie ist es mit dem SD_Detect und dem SD_Write_Prot ??
Wenn ich die auf 3V3 lege, SD aber deaktiviert ist, weil ich nicht
schreiben will. Verbraucht es dann an dieser Stelle Strom, oder muss ich
dann einfach die Ports dafür, also PA1, PA2 auf High legen, oder Pullups
aktivieren??
Wie kann ich da noch Strom sparen ?
Ich vermute, Du erwartest etwas zuviel. Du schmeißt hier ein
unausgegorenes Konzept hin und erwartest, dass Andere Dir daraus ein
Profi-Konzept machen. Im Netz gibt es hunterte von Projekten mit AVR und
SD-Card. Schau sie Dir an, analysiere deren Schaltungen, ermittle, warum
die das so und nicht anders machen und zieh Deine Schlüsse daraus. Und
dann mach' Dein Ding.
...
Zumindest soviel kann ich sagen:
die Versorgungsspannung mit einem Transistor zu schalten könnte ins Auge
gehen. Da die Pegel der Eingänge dann um Uce höher sond als die
Versorgung könnte die Karte Schaden nehmen. Nimm einen MOSFET
stattdessen, mit möglichst niedrigem RDSon. Außerdem sollten die
Ausgänge hochohmig geschaltet werden, also als Eingang definiert
(Pullups ausschalten) wenn die Versorgung abgeschaltet ist.
Ich habe als SD-Schalter bei mir einen IRLML6302 (Gibt's bei CSD) im
Einsatz, das funktioniert prächtig. CS hart mit GND zu verbinden
solltest du aber lassen, so kannst du die Karte wohl nicht
initialisieren. Ausserdem würde ich empfehlen, die Karte nicht andauernd
ein- und auszuschalten, da du sie dann jedesmal neu initialiseren musst
und das dauert schon seine Zeit.
Im Anhang mal ein Schema, wie ich es gemacht habe (Funktioniert
einwandfrei, musst dir halt den entsprechenden Teil raussuchen).