Bill Greiman
Bill Greiman
What SPI clock rate are you using? Errors like this are often due to marginal SPI signals. The SPI driver should limit the clock rate to the max reliable rate...
ESP32-S3 has unique code for max SPI speed. An example is in this file: \Bill\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.3\cores\esp32\esp32-hal-spi.c ``` #if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 if(calPre > 0xF) { reg.clkdiv_pre = 0xF; #else if(calPre >...
You may be able to recover from a write failure. The SD card is looking for a begin token and then will require 512 data plus two checksum bytes. Most...
Code 17 is from this code at about line 190 of SdSpiCard.cpp ``` // initialize card and send host supports SDHC if SD2 arg = type() == SD_CARD_TYPE_SD2 ? 0X40000000...
You may not be using SPI for WiFi. Looks like ESP-S3 has a different structure so I can't be sure what each of the four SPI ports are used for....
Looks like ESP-S3 SPI has a bug fix: > There is a newer bugfix release of this ESP-IDF version. The latest bugfix release is [v4.4.1](https://docs.espressif.com/projects/esp-idf/en/v4.4.1/esp32s3/api-reference/peripherals/spi_master.html)
Are you using dedicated SPI for the SD card?
Yes dedicated SPI keeps the SD in read or write mode as long as possible by keeping chip select low. This can provide a major performance improvement for high end...
Array transfer, USE_SPI_ARRAY_TRANSFER 1, only applies when using the standard driver, SPI_DRIVER_SELECT 1. Unfortunately the Arduino standard call requires copying data to a temp buffer on transmit and filing the...