www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MMC/SD Karte geben kein Antwort von sich (ARM)


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

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich bin bald am Verzweifeln ...

Ich versuche eine SD/MMC Karte (teste mit beiden Typen) zum laufen zu 
bringen an dem MCI Interface vom AT91SAM9260. Erstmal wollte ich "nur" 
die Karte initialisieren.

Dazu habe ich mir einiges bei den Atmel Beispielen für SAM9263 und 
RM9200 abgeschaut. Wenn ich ein Command sende (z.B. CMD1) das ein 
Responde hat, dann muss ich laut Datenblatt ja das Kommando in das CMDR 
schreiben. CMD1 hat gibt eine Rückgabe (48Bit) zurück. Diese Rückgabe 
soll man dann sobald im Statusregister CMDRDY auf 1 ist aus dem RSPR 
Register lesen können.

Nur egal wieoft/wieviel/wann ich lese, ich bekomme immer nur 0 aus dem 
Register. Sowohl mit MMC als auch SD-Karte. Und jetzt weis ich echt 
nichtmehr weiter.. Egal welcher Befehl, egal wie lang der Responde sein 
soll.

Zur Hardware..

Angeschlossen ist die Karte an PA6-PA11 also MCDA0-4/MCCK/MCCDA. An 
MCCDA (CMD) habe ich einen 4.7k Pull-Up angeschlossen. MCCK ist über 
einen 10k Widerstand an SCK0 angeschlossen (so wie im EK). Auf dem 
Oscilloskop kann ich den Takt beobachten der soweit auch gut aussieht. 
Taktrate sind etwa 200kHz (laut Softwareberechnung und Messen mit dem 
Oscar). Auf der CMD Leitung tut sich zwar auch was, aber im Register ist 
trotzdem gähnende leere.

Anbei mein Testcode. Die Funktionen MCI_Init() und MCI_InitCard() rufe 
ich aus der main() auf.

Grüße & Hoffe ihr könnt mir weiterhelfen

Autor: opacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jetzt bin ich mal etwas weiter gekommen ..

Wenn ich ein CMD1 mache, erhalte ich auch das OCR zurück -- jedenfalls 
fast. Im Debug Fenster habe ich an Speicher 0xFFFA8020, also wo Responde 
stehen soll auch das Register tatsächlich stehen.

Aber leider bekomme ich das nicht in irgendeine Variable rein ;(

g = AT91F_MCI_GetRSP0Reg(AT91C_BASE_MCI);

liefert mir immer nur 0x00000000 obwohl laut Memory Window was anderes 
drin steht. Ist übrigens Keil µVision.

Grüße

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.