Forum: Mikrocontroller und Digitale Elektronik Mit PIC18F452 SD-Karte initialisieren


von KRibel (Gast)


Angehängte Dateien:

Lesenswert?

HI Leute,

ich versuche nun seit einigen Tagen eine meiner SD-Karten zu
initialisieren.

Verwendete SD-Karten:
 NYTECH 128MB
 TOSHIBA HighSpeed 256MB

Zum Aufbau:
 Der PIC18F452 ist mit der SD-Karte über einen 74LCX14 (Low Voltage Hex
Inverter) verbunden. Der 74LCX14 wird mit 3,3V betrieben, d.h. der PIC
hat 3,3V um zu erkennen, dass das Signal ein HIGH ist, was kein Problem
sein sollte.
Der 74LCX14 hat invertierte Ausgänge. Bin der Meinung, dass ich das im
Code beachtet habe.

Zum Code:
 Die Quelle für meinen Code ist die Seite www.ulrichradig.de. Mein Code
sieht dem von Ulrich sehr ähnlich. Seinen Code habe ich nicht
übernommen, weil ich einige Sachen nicht verstanden habe und weil er
mit einem Atmel arbeitet.
Die Variablen H(=0) und L(=1) sollen eine weitere Verwirrung vermeiden,
da invertierte Ausgänge vom 74LCX14.

Zum Problem:
 Nach Senden von CMD0 bekomme ich als Antwort 0x01, was ja richtig ist.
Auf CMD1 antworten die Karten aber auch mit 0x01, was falsch ist.

Kennt jemand eine Lösung?
Hat jamand das Problem auch schon gehabt?

Gruß

Konstantin

von Roland R. (roland) Benutzerseite


Lesenswert?

Hallo Konstantin,

Dass Du auch auf CMD1 ein 0x01 als Antwort bekommst, hat durchaus seine
Richtigkeit. Allerdings musst Du dann so lange immer wieder CMD1 senden,
bis ein 0x00 zurückkommt. Erst dann ist nämlich die Karte mit der
Initialisierung fertig.

Ich habe ebenfalls mit der Schaltung von Ulrich Radig einen SD-Reader
aufgebaut. Schau mal in die Codesammlung hier im Forum oder auf
http://www.roland-riegel.de/sd-reader/, da bekommst Du die Schaltung
und den Code dazu. In der Datei sd_raw.c gibt es eine Funktion
sd_raw_init(), da steht dann alles drin, was Du brauchst.

Gruß,
Roland

von KRibel (Gast)


Lesenswert?

Hallo Roland,

das Problem hat sich gelöst. Ich habe einfach den Quellcode von Ulrich
genommen und an den PIC angepasst. Hat sofort funktioniert.

Trotzdem Danke.

Gruß
Konstantin

von Frank (Gast)


Lesenswert?

Hallo Konstantin

Wäre schön, wenn du den Code hier auch anderen zur Verfügung stellst
(evtl. mit kleinem Beispiel)

Ciao

Franky

von KRibel (Gast)


Lesenswert?

Wenn der Code optimiert ist, dann stelle lade ich diesen hier hoch.

Gruß

Konstantin

von Frank (Gast)


Lesenswert?

ja, super. Ich bin schon gespannt darauf.

Vielen Dank im Voraus

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.