Skip to content

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

@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

Labels

Status: SolvedThe issue has been resolved and requires no further action.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions