www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Toshiba SD-M04G SDHC-Karte Initialisierungsproblem


Autor: Billy __ (slowflyer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte mit meinem AVR32 eine Toshiba SD-M04G SDHC-Karte ansprechen. 
Eine andere SDHC Karte (SanDisk) wird als SDHC erkannt und verwendet.

Die Toshiba-Karte liefert mir auf CMD0 GO_IDLE_STATE in r1 immer ein 
0xE0 statt irgendwann ein 0x01. Irgendwelche Ideen? Benötiogen Toshiba 
Karten ein Sonderbehandlung, die sich meiner Kenntnis entzieht?

 Hier ein Code-Snippet meines Ini-Vorgangs:
// card needs 74 cycles minimum to start up
  spi_selectChip(SD_MMC_SPI, SD_MMC_SPI_NPCS);    // select SD_MMC_SPI

  for(i = 0; i < 10; i++)
  {
    spi_write(SD_MMC_SPI,0xFF);
  }

  spi_unselectChip(SD_MMC_SPI, SD_MMC_SPI_NPCS);  // unselect SD_MMC_SPI

  // RESET THE MEMORY CARD
  sd_mmc_spi_init_done = FALSE;
  card_type = MMC_CARD;
  retry = 0;

  do
  {
    // reset card and go to SPI mode
    //spi_selectChip(SD_MMC_SPI, SD_MMC_SPI_NPCS);    // select SD_MMC_SPI
    r1 = sd_mmc_spi_send_command(MMC_GO_IDLE_STATE, 0);
    //spi_unselectChip(SD_MMC_SPI, SD_MMC_SPI_NPCS);  // unselect SD_MMC_SPI
    spi_write(SD_MMC_SPI,0xFF);            // write dummy byte
    spi_write(SD_MMC_SPI,0xFF);            // write dummy byte
--> hier steht in r1 immer ein 0xE0 statt irgendwann 0x01
    // do retry counter
    retry++;

    if(retry > 100)
    {
--> und hier wird die Fkt dann verlassen nach 100 Versuchen
      return KO; 
    }
  }
  while(r1 != 0x01);   // check memory enters idle_state

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Pegelwandler? Flanken? Qualitaet des Taktsignals? Terminierung?

Olaf

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
// card needs 74 cycles minimum to start up
  spi_selectChip(SD_MMC_SPI, SD_MMC_SPI_NPCS);    // select SD_MMC_SPI

  for(i = 0; i < 10; i++)
  {
    spi_write(SD_MMC_SPI,0xFF);
  }

  spi_unselectChip(SD_MMC_SPI, SD_MMC_SPI_NPCS);  // unselect SD_MMC_SPI

Ich würde das select / unselect mal tauschen.

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

Bewertung
0 lesenswert
nicht lesenswert
Schau Dir das mal an.

Autor: Billy __ (slowflyer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Olaf: EVK1100 Eval Board

@Holger: Die SanDisk funktioniert auch mit umgedrehten Select/Unselect, 
die Toshiba weigert sich immer noch und gibt 0xE0 0x3F zurück

@Georg: So wie ich das interpretiere, ist CMD0 genauso wie alle anderen 
Kommandos zu behandeln, mit dem Unterschied, dass die 74 Flanken vorne 
weg für die Initialisierung der Karte benötigt werden.

Fazit: Habe mit versch. Varianten gespielt und bin immer noch keinen 
Deut schlauer geworden

Autor: Kai (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, das ich einen alten Thread ausbuddel, aber ich habe das gleiche 
Problem wie der TO mit einer Toshiba SD-M01G SD-Karte. Hat sich da was 
getan?

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.