SD Karte 4 Bit Mode Schreiben

Gast #5041572
Hallo,

Die Schreibfunktion funktioniert noch nicht.

Hier folgt ein Teil der Schreibfunktion:

SD_DAT_OUT;  // set DAT pins to send data to SD card

// start bits
SD_CLK_LOW;
SD_DAT_WRITE(0x00);
SD_CLK_HIGH;

// write data (512 bytes = 1 block)
for(i = 0; i < nDataLen; i++)    // nDataLen = 512
{
    Data8 = szDataWrite[i];      // was ich in der SD-Karte schreiben 
möchte
    #ifdef SD_4BIT_MODE
        for(j = 0; j < 2; j++)
  {
      SD_CLK_LOW;
      SD_DAT_WRITE((Data8 >> 4) & 0x0F);
      SD_CLK_HIGH;
      Data8 <<= 4;
  }
    #endif
}

// Crc-Datencheck
#ifdef SD_4BIT_MODE
    for(j = 0; j < 16; j++)
    {
        SD_CLK_LOW;
        Crc16Aux = DataCrc16 >> 15;

        if (Crc16Aux  == 0x01)
      SD_DAT_WRITE(0x0F);
        else
      SD_DAT_WRITE(0x00);
        SD_CLK_HIGH;
        DataCrc16 <<= 1;
    }
#endif

// stop bits (value '1')
SD_CLK_LOW;
#ifdef SD_4BIT_MODE
    SD_DAT_WRITE(0x0F);
#endif
SD_CLK_HIGH;

//===== check busy bits (data0 only).
SD_DAT_IN;    // set DAT pins to receive data from SD card

for(i = 0; i < 32 && !bWriteSuccess; i++) // Glaub sollte nur 12 bits 
sein
{
    SD_CLK_LOW;
    SD_CLK_HIGH;    // CRC response output is always two clocks after
the
                    // end of data

    if ((SD_TEST_DAT & 0x01) == 0x01) // (DAT0==LOW: busy indicate
        bWriteSuccess = TRUE;
}

    if (!bWriteSuccess)
      bSuccess = FALSE;

Das ist die Sequenz: S (Start Bit), content (512 bytes), CRC (16 bit für
jede der vier Leitungen DAT0-3), E (End Bit)

Es wird in der SD-Karte nicht geschrieben und ich weiß nicht warum.
Hat Jemand eine Idee?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 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]
  • [vhdl]VHDL-Code[/vhdl]
  • [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.