Forum: Mikrocontroller und Digitale Elektronik SPI Kommunikation NucleoF446


von J_M (Gast)


Lesenswert?

Moin,

ich verzweifle seit einiger Zeit daran über die SPI Schnittstelle mit 
meinem Nucleo Board auf eine SD Karte zuzugreifen. Ich habe bereits 
etliche Stunden hier und in anderen Foren nach einer plausiblen Lösung 
gesucht, jedoch nichts passendes gefunden.

Ich nutze einen Nucleo-F446RE mit einem Deek-Robot Data logging Shield 
v.1.0
Dazu ein mit CubeMX erstelltes Projekt, FatFS von ChaN und Atollic 
TrueStudio.

Das Problem ist dass sich die SD Karte nicht mounten lässt. Ich erhalte 
immer FR_DISK_ERROR als result.

Wenn man den Fehler zurückverfolgt landet man in der disk_read Funktion:
1
DRESULT disk_read (
2
  BYTE drv,    /* Physical drive number (0) */
3
  BYTE *buff,    /* Pointer to the data buffer to store read data */
4
  DWORD sector,  /* Start sector number (LBA) */
5
  UINT count    /* Number of sectors to read (1..128) */
6
)
7
{
8
  BYTE cmd;
9
10
11
  if (drv || !count) return RES_PARERR;    /* Check parameter */
12
  if (Stat & STA_NOINIT) return RES_NOTRDY;  /* Check if drive is ready */
13
  if (!(CardType & CT_BLOCK)) sector *= 512;  /* LBA of BA conversion (byte addressing cards) */
14
15
  cmd = count > 1 ? CMD18 : CMD17;      /*  READ_MULTIPLE_BLOCK : READ_SINGLE_BLOCK */
16
  if (send_cmd(cmd, sector) == 0) {
17
    do {
18
      if (!rcvr_datablock(buff, 512)) break;
19
      buff += 512;
20
    } while (--count);
21
    if (cmd == CMD18) send_cmd(CMD12, 0);  /* STOP_TRANSMISSION */
22
  }
23
  deselect();
24
25
  return count ? RES_ERROR : RES_OK;  /* Return result */    //0: Ok, 1:Error
26
}

von hier aus weis ich dann leider nicht weiter.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.