www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MMC - wie CS steuern?


Autor: Tilo L. (katagia)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

So langsam sollte das Thema MMC/SD Card an SPI durch sein.
Ich hänge allerdings gerade.

Ich habe den "ELM" Code, http://elm-chan.org, verwendet.
Die entsprechende IO Library habe ich angepasst.
Ich verwende einen ARM7 (aduc7020).

So lange der Schreibpuffer nur 512 Byte groß ist, funktioniert
alles prima. So bald der Puffer 2048 Byte groß ist, wird nicht
nur eineinzelner Block sondern mehrere Blöcke auf einmal geschrieben.

Leider schlägt das senden von mehreren 512Byte Blöcken fehl.
Ich vermute, dass ich entweder Blödsinn mit der CS-Leitung mache
oder nicht lange genug auf "Busy" nach einem Datenblock warte.

Ich habe zur CS Leitung keine genauen Infos gefunden. Auf den
meisten Diagrammen sind nur CLK, DI und DO abgebildet.

Ein Tranfser sieht in meinem Code folgendermaßen aus:

Zu erst wird CD deaktiviert, danach aktiviert (low=active)
Danach wird der CMD-Code aus 6 Bytes gesendet, die Antwort
empfangen usw.

Nach dem CMD-Code bleibt CS aktiv.

Bei einigen CMD-Codes wird danach gelesen oder geschrieben.

So bald der/die Datenblock(e) gesendet/empfangen wurde(n), wird CS 
deaktiviert.

Ich vermute hier liegt auch der Fehler. Bei einem "Block Write" werden
2 CMD-Codes vor dem Datentransfer gesendet (ACMD23 und CMD25).

Ich habe die PDF von Hitachi zu MMC-Cards gelesen. Hinten sind einige 
Beispiele. Da ist aber kein Beispiel dabei, wenn 2 CMD-Codes zu 
schreiben
benötigt werden.
Ausserdem scheint nach dem Hitachi Dokument CS zwischen CMD-Code und
Datenblock zu wechseln. Nach einem anderen TimingDokument bleibt CS,
bis die Datenblöcke übertragen wurden.

Wie wird CS richtig gesetzt?

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.