Mit PIC18F452 SD-Karte initialisieren

Gast #393732
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
Angehängte Dateien:
Persönliche Seite #393733
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren