www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SD-Karte / Micro SD karte


Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe folgendes Problem. Ich will eine SD - Kartenansteuerung 
programmieren. Hierzu benutze ich die Library nach Roland Riegel. 
Allerdings verwendet ich keine normale Karte sondern eine Micro 
SD-Karte. Beim Initialisieren in der Funktion sd_raw_init() 
initialisiert der Kontroller allerdings nicht richtig.
In folgendem Quellcode bekommt er die falsche Rückmeldung:

   /* wait for card to get ready */
    for(uint16_t i = 0; ; ++i)
    {
  response = sd_raw_send_command_r1(41, 0);
                             // SD_SEND_OP_COND (keine 'high capacity')
        if(!(response & (1 << R1_IDLE_STATE)))
            break;

        if(i == 0x7fff)
        {
            unselect_card();
            spi_rec_byte();
            spi_high_frequency();
            return 0;
        }
    }


response nimmt den Wert 5 an was soviel bedeutet wie R1_ADDR_ERR. Muss 
man eine Micro SD Karte anders ansprechen als eine normale SD Karte ? 
Oder kann es daran liegen das ich Fat 16 für ein 4 Gig Karte (auf 2 Gig 
runtergetrimmt wegen Fat 16) benutze?

Bin für jede Hilfe dankbar

Grüße
Alex

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die 4 GB-Karte ist keine SD-Karte, sondern eine SDHC-Karte.
SD-Karten sind maximal 2 GB groß (oder nicht standardkonform).

Autor: Michelle Konzack (Firma: electronica@tdnet) (michellekonzack) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Alex,

SD und microSD verwenden das gleiche Protokoll.

Du hast aber eine microSDHC (4-32 GByte) und mußt die Register anderst 
setzen weil die Karte ja bis zu 16 mal mehr an Speicher haben kann.

Habe mir die NEUEN Functionen zu microSDHC noch nicht angesehen, werde 
ich aber wohl müssen, denn ich habe nur zwei microSD unter 2 GByte aber 
gut 30 Stück mit 4 GByte und mehr welche derzeit nutzlos herumliegen.

Solltest Du es herausfinden, währe es nett, wenn Du die Funktionen hier 
posten könntest.

Grüße
Michelle

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also,
war schon mal richtig, dass das SDHC war. Daraufhin habe ich mir eine 2 
Gig SD-Karte genommen und diese mit Fat16 Formatiert. Aber auch diese 
Antwortet mit der gleichen Antwort. Noch irgendeine andere Idee?

Danke schon mal für die Hilfe
Grüße
Alex

Autor: Michael Graf (graf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ab 2GB gibt es SDHC karten.

der einzige unterschied ist die Addresierung. bei den normalen byte 
weise mit einem Vielfachen von 512 bei SDHC sektorweise. also nur die 
setornummer ohne mit 512 zu multiplizieren, somit sollte sich das ggf 
recht einfach umstellen lassen.

mit formatierung und soweiter kann man da nichts beeinflussen.

gruss

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok danke für die hilfe

Bei der normalen microSD Karte (nicht SDHC) sollte man noch
response = sd_raw_send_command_r1(41, 0); als zusätzliche Anweisung 
hinzufügen. (für CMD1)

Danke euch

Grüße
Alex

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich meinte
*     response = sd_raw_send_command_r1(55, 0);  // APP_CMD

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.