www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SD-Card resetten


Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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. :(

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Martin Thomas (mthomas) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.