Forum: Mikrocontroller und Digitale Elektronik SD-Card resetten


von Peter (Gast)


Lesenswert?

Hi,
wie kann ich eine bereits initialisierte SD-Karte resetten, so daß sie 
sich im Grundzustand befindet?
Wenn ich sie doppelt initialisiere, treibt sie den MISO auf ~2..3 Volt. 
Das würde ich gern verhindern.
Danke...

von holger (Gast)


Lesenswert?

>Wenn ich sie doppelt initialisiere, treibt sie den MISO auf ~2..3 Volt.
>Das würde ich gern verhindern.

Zieh doch einfach den CS Pin auf High. Dann kommt da auch
nix mehr raus.

von Peter (Gast)


Lesenswert?

> Zieh doch einfach den CS Pin auf High. Dann kommt da auch
> nix mehr raus.

/CS wird ja sowieso nach jeder Aktion auf High gesogen. So klappts bei 
mir nicht. Sobald ich die Karte ein zweites mal initialisiere, hat MISO 
diesen hohen Pegel. Nur durch Rausziehen der Karte oder Strom aus/ein 
wird sie richtig in den Grundzustand versetzt. Da muß doch irgendwie bei 
eingebauter Karte möglich sein?

von holger (Gast)


Lesenswert?

>/CS wird ja sowieso nach jeder Aktion auf High gesogen. So klappts bei
>mir nicht. Sobald ich die Karte ein zweites mal initialisiere, hat MISO
>diesen hohen Pegel.

Was stört dich an dem Pegel? Wieso initialisierst du zweimal?
Wen stört dieser Pegel?

>Nur durch Rausziehen der Karte oder Strom aus/ein
>wird sie richtig in den Grundzustand versetzt. Da muß doch irgendwie bei
>eingebauter Karte möglich sein?

Spannungsversorgung per Transistor weghauen?

von Peter (Gast)


Lesenswert?

> Wieso initialisierst du zweimal?
Ich möchte einen Software-Reset machen, also Totalreset ohne 
Ausschalten. Die Firmware usw. werden dabei neu gestartet.

> Wen stört dieser Pegel?
Ich habe noch andere Geräte auf dem Bus, die stört das.

von holger (Gast)


Lesenswert?

>> Wieso initialisierst du zweimal?
>Ich möchte einen Software-Reset machen, also Totalreset ohne
>Ausschalten. Die Firmware usw. werden dabei neu gestartet.

Also du startest deinen Prozessor neu?

>> Wen stört dieser Pegel?
>Ich habe noch andere Geräte auf dem Bus, die stört das.

Dann häng einen 10k Pullup an CS.

von Peter (Gast)


Lesenswert?

> Also du startest deinen Prozessor neu?
Ja.

> Dann häng einen 10k Pullup an CS.
Es geht mir um MISO. Ich habe einen 100k Pulldown dran (nur zum Messen 
dieses Pegelunterschieds).
Außerdem stört mich dieses Verhalten der Karten. Unterbrechen der 
Stromversorgung ist leider bei mir nicht möglich.
Gibt es einen SoftReset? CMD0 scheint nicht zu helfen. :(

von holger (Gast)


Lesenswert?

>> Dann häng einen 10k Pullup an CS.
>Es geht mir um MISO. Ich habe einen 100k Pulldown dran (nur zum Messen
>dieses Pegelunterschieds).

Scheiss doch auf MISO. Häng einen 10k Pullup an CS der Karte.
Dann kommt aus der Karte auch nix raus.

Du hast da wohl ein grundsätzliches Problem mit SPI.
Als erstes solltest du alle CS der angeschlossenen SPI
Geräte deaktivieren. Und erst danach kannst du anfangen
sie der Reihe nach zu initialisieren.

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

In zumindest einem SanDisk Manual SD-Card Product-Manual wird explizit 
geraten, die Stromversorgung schaltbar zu machen um einen "harten" Reset 
auslösen zu können, wenn gar nichts mehr geht. Man sollte also "nicht 
möglich" möglich werden lassen.

Was bedeutet "treibt MISO"? Mglw. dies nicht beachtet?: 
http://elm-chan.org/docs/mmc/mmc_e.html -> Cosideration on Multi-slave 
Configuration

von Peter (Gast)


Lesenswert?

> Du hast da wohl ein grundsätzliches Problem mit SPI.
Nein, es funktioniert sonst recht gut. Bis auf das eben...

> Was bedeutet "treibt MISO"?
Ich messe sonst im Ruhezustand (alle Geräte sind deselected) etwa 1V, 
nach einem Schreib/Leszugriff zur Karte (oder direkt nach dem 
Initialisieren). Wird die Karte ein zweites mal initialisiert, dann 
steigt diese "Ruhespannung" auf bis zu 3V. Dadurch kann ich einen 
Busteilnehmer nicht mit seiner vollen Taktfrequenz betreiben.

> Mglw. dies nicht beachtet?:
> http://elm-chan.org/docs/mmc/mmc_e.html -> Cosideration on Multi-slave
> Configuration
Ja, das habe ich beachtet. nach dem "Releasen" von /CS schicke ich noch 
ein 0xff hinterher. Das geht auch soweit alles.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.