Skip to content

ESP32 Crashes after every 3rd write on SD on HSPI #6372

Closed
@marcohald

Description

@marcohald

Board

ESP32 DEVKITV1 ESP32-WROOM-32

Device Description

ESP32 DEVKITV1 with SDCard to microsd Adapter attached, directly without breakboard
https://www.aliexpress.com/item/32864722159.html?spm=a2g0o.9042311.0.0.27424c4dmIbcfH
grafik

Hardware Configuration

grafik

Version

latest master

IDE Name

Arduino IDE

Operating System

Ubuntu 20.04.3 LTS

Flash frequency

40Mhz

PSRAM enabled

no

Upload speed

921600

Description

Every 3rd write to SDcard fails.
I also tried using pin 12 as MISO with the same result, tried switching because of I read that https://www.esp32.com/viewtopic.php?t=19233#p71157

Maybe releate to #6189 or #6295

Sketch

#include <FS.h>
#include <SD.h>
#include <SPI.h>


char currentLogFileName[40];
File currentLogFile;

//HSPI
#define SD_SCK  14
#define SD_MISO  27
#define SD_MOSI  13
#define SD_CS  15


int cnt = 0;


void setup() {
    Serial.begin(115200);

  SPIClass spi = SPIClass(VSPI);
  spi.begin(SD_SCK, SD_MISO, SD_MOSI, SD_CS);

  if (!SD.begin(SD_CS,spi,10000000)) {   
        Serial.println("Card Mount Failed");
        return;
    }
    uint8_t cardType = SD.cardType();

    if (cardType == CARD_NONE) {
        Serial.println("No SD card attached");
        return;
    }

    Serial.print("SD Card Type: ");
    if (cardType == CARD_MMC) {
        Serial.println("MMC");
    } else if (cardType == CARD_SD) {
        Serial.println("SDSC");
    } else if (cardType == CARD_SDHC) {
        Serial.println("SDHC");
    } else {
        Serial.println("UNKNOWN");
    }

    Serial.printf("SD Card Size: %lluMB\n", SD.cardSize() / (1024 * 1024));
    Serial.printf("Total space: %lluMB\n", SD.totalBytes() / (1024 * 1024));
    Serial.printf("Used space: %lluMB\n", SD.usedBytes() / (1024 * 1024));

    // create a unique currentLogFile name
    int fn = 0;

    sprintf(currentLogFileName, "/candump-%d.csv", fn++);

  currentLogFile = SD.open(currentLogFileName, FILE_APPEND);


}





void loop() {
  
  //cnt++;
  //Serial.printf("Loop: %d\n", cnt);
  if(!currentLogFile){
    Serial.println("Failed to open file for appending");
    return;
  }
  if(currentLogFile.print("Time Stamp,ID,Extended,Dir,Bus,LEN,D1,D2,D3,D4,D5,D6,D7,D8")){
    Serial.println("Message appended");
  } else {
    Serial.println("Append failed");
  }
  sleep(1);
  //file.close();
}

Debug Message

ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DOUT, clock div:2
load:0x3fff0030,len:1184
load:0x40078000,len:12776
load:0x40080400,len:3032
entry 0x400805e4
[��mum����2-hal-cpu.c:211] setCpuFrequencyMhz(): PLL: 480 / 2 = 240 Mhz, APB: 80000000 Hz
SD Card Type: SDHC
SD Card Size: 29818MB
Total space: 3689MB
Used space: 1MB
Message appended
Message appended
[  2551][W][sd_diskio.cpp:104] sdWait(): Wait Failed
[  2551][E][sd_diskio.cpp:126] sdSelectCard(): Select Failed
[  2551][E][sd_diskio.cpp:621] ff_sd_status(): Check status failed
[  3056][W][sd_diskio.cpp:104] sdWait(): Wait Failed
[  3056][E][sd_diskio.cpp:126] sdSelectCard(): Select Failed
[  3056][E][sd_diskio.cpp:621] ff_sd_status(): Check status failed
Append failed
Message appended
Message appended
[  6571][W][sd_diskio.cpp:104] sdWait(): Wait Failed
[  6571][E][sd_diskio.cpp:126] sdSelectCard(): Select Failed
[  6571][E][sd_diskio.cpp:621] ff_sd_status(): Check status failed
[  7075][W][sd_diskio.cpp:104] sdWait(): Wait Failed
[  7075][E][sd_diskio.cpp:126] sdSelectCard(): Select Failed
[  7075][E][sd_diskio.cpp:621] ff_sd_status(): Check status failed
Append failed
Message appended
Message appended
[ 10590][W][sd_diskio.cpp:104] sdWait(): Wait Failed
[ 10590][E][sd_diskio.cpp:126] sdSelectCard(): Select Failed
[ 10590][E][sd_diskio.cpp:621] ff_sd_status(): Check status failed
[ 11094][W][sd_diskio.cpp:104] sdWait(): Wait Failed
[ 11094][E][sd_diskio.cpp:126] sdSelectCard(): Select Failed
[ 11094][E][sd_diskio.cpp:621] ff_sd_status(): Check status failed
Append failed
Message appended
Message appended
[ 14609][W][sd_diskio.cpp:104] sdWait(): Wait Failed
[ 14609][E][sd_diskio.cpp:126] sdSelectCard(): Select Failed
[ 14609][E][sd_diskio.cpp:621] ff_sd_status(): Check status failed
[ 15113][W][sd_diskio.cpp:104] sdWait(): Wait Failed
[ 15113][E][sd_diskio.cpp:126] sdSelectCard(): Select Failed
[ 15113][E][sd_diskio.cpp:621] ff_sd_status(): Check status failed
Append failed
Message appended
Message appended
[ 18628][W][sd_diskio.cpp:104] sdWait(): Wait Failed
[ 18628][E][sd_diskio.cpp:126] sdSelectCard(): Select Failed
[ 18628][E][sd_diskio.cpp:621] ff_sd_status(): Check status failed
[ 19132][W][sd_diskio.cpp:104] sdWait(): Wait Failed
[ 19132][E][sd_diskio.cpp:126] sdSelectCard(): Select Failed
[ 19132][E][sd_diskio.cpp:621] ff_sd_status(): Check status failed
Append failed
Message appended
Message appended
[ 22647][W][sd_diskio.cpp:104] sdWait(): Wait Failed
[ 22647][E][sd_diskio.cpp:126] sdSelectCard(): Select Failed
[ 22647][E][sd_diskio.cpp:621] ff_sd_status(): Check status failed
[ 23151][W][sd_diskio.cpp:104] sdWait(): Wait Failed
[ 23151][E][sd_diskio.cpp:126] sdSelectCard(): Select Failed
[ 23151][E][sd_diskio.cpp:621] ff_sd_status(): Check status failed
Append failed
Message appended
Message appended
[ 26666][W][sd_diskio.cpp:104] sdWait(): Wait Failed
[ 26666][E][sd_diskio.cpp:126] sdSelectCard(): Select Failed
[ 26666][E][sd_diskio.cpp:621] ff_sd_status(): Check status failed
[ 27170][W][sd_diskio.cpp:104] sdWait(): Wait Failed
[ 27170][E][sd_diskio.cpp:126] sdSelectCard(): Select Failed
[ 27170][E][sd_diskio.cpp:621] ff_sd_status(): Check status failed
Append failed
Message appended

Other Steps to Reproduce

also tried a Module like that https://eckstein-shop.de/TFMicroSDCardMemoryModulArduinoAtmegaKartenadapterCardreader
with vcc connected to 5v

I have checked existing issues, online documentation and the Troubleshooting Guide

  • I confirm I have checked existing issues, online documentation and Troubleshooting guide.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions