mikrocontroller.net

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


Autor: KRibel (Gast)
Datum:
Angehängte Dateien:

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

Autor: Roland Riegel (roland) Benutzerseite
Datum:

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

Autor: KRibel (Gast)
Datum:

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

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Konstantin

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

Ciao

Franky

Autor: KRibel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn der Code optimiert ist, dann stelle lade ich diesen hier hoch.

Gruß

Konstantin

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, super. Ich bin schon gespannt darauf.

Vielen Dank im Voraus

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.