MMC - wie CS steuern?

Gast #833526
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

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.