espressif / esp-at

AT application for ESP32/ESP32-C2/ESP32-C3/ESP32-C6/ESP8266
Apache License 2.0
871 stars 776 forks source link

Problem using SDIO #754

Closed poopyi closed 6 months ago

poopyi commented 1 year ago

Answers checklist.

General issue report

Hello, I am currently attempting to utilize the ESP-AT (v3.2.0.0) using SDIO; however, I am encountering issues. I am uncertain whether the problem lies within the ESP-AT itself or within the provided code example for SDIO.

Hardware

Schematic

PS: DAT(2-3) pins are not connected.

I have employed the provided code example, but I am encountering the following error:

E (1350) sdmmc_common: sdmmc_init_ocr: send_op_cond (1) returned 0x107
W sdio_driver: slave init failed, retry...

ESP-AT log

I (13) boot: ESP-IDF v5.0.2-376-g24b9d38a24-dirty 2nd stage bootloader
I (14) boot: compile time 10:36:03
W (14) boot: Unicore bootloader
I (17) boot: chip revision: v1.0
I (21) boot.esp32: SPI Speed      : 40MHz
I (26) boot.esp32: SPI Mode       : DIO
I (30) boot.esp32: SPI Flash Size : 4MB
I (35) boot: Enabling RNG early entropy source...
I (40) boot: Partition Table:
I (44) boot: ## Label            Usage          Type ST Offset   Length
I (51) boot:  0 phy_init         RF data          01 01 0000f000 00001000
I (59) boot:  1 otadata          OTA data         01 00 00010000 00002000
I (66) boot:  2 nvs              WiFi data        01 02 00012000 0000e000
I (74) boot:  3 at_customize     unknown          40 00 00020000 000e0000
I (81) boot:  4 ota_0            OTA app          00 10 00100000 00180000
I (89) boot:  5 ota_1            OTA app          00 11 00280000 00180000
I (96) boot: End of partition table
I (100) esp_image: segment 0: paddr=00100020 vaddr=3f400020 size=30804h (198660) map
I (181) esp_image: segment 1: paddr=0013082c vaddr=3ff80063 size=00008h (     8) load
I (181) esp_image: segment 2: paddr=0013083c vaddr=3ffbdb60 size=051dch ( 20956) load
I (195) esp_image: segment 3: paddr=00135a20 vaddr=40080000 size=0a5f8h ( 42488) load
I (212) esp_image: segment 4: paddr=00140020 vaddr=400d0020 size=12a46ch (1221740) map
I (654) esp_image: segment 5: paddr=0026a494 vaddr=4008a5f8 size=14b00h ( 84736) load
I (689) esp_image: segment 6: paddr=0027ef9c vaddr=400c0000 size=00064h (   100) load
I (705) boot: Loaded app from partition at offset 0x100000
I (705) boot: Disabling RNG early entropy source...
no external 32k oscillator, disable it now.
at param mode: 1
module_name: WROOM-32
max tx power=78, ret=0
v3.2.0.0

HOST log

E (4897) sdmmc_io: sdmmc_io_rw_extended: sdmmc_send_cmd returned 0x107
E sdio_driver: Read bytes error,ret:263
E sdio_at_host: file: "./main/app_main.c" line 79
func: sdio_recv_task
 error: -1

E (4917) sdmmc_io: sdmmc_io_rw_extended: sdmmc_send_cmd returned 0x107
E sdio_driver: Read bytes error,ret:263
E sdio_at_host: file: "./main/app_main.c" line 79
func: sdio_recv_task
 error: -1

E (4927) sdmmc_io: sdmmc_io_rw_extended: sdmmc_send_cmd returned 0x107
E sdio_driver: Read bytes error,ret:263
E sdio_at_host: file: "./main/app_main.c" line 79
func: sdio_recv_task
 error: -1

E (4947) sdmmc_io: sdmmc_io_rw_extended: sdmmc_send_cmd returned 0x107
E sdio_driver: Read bytes error,ret:263
E sdio_at_host: file: "./main/app_main.c" line 79
func: sdio_recv_task
 error: -1

E (4967) sdmmc_io: sdmmc_io_rw_extended: sdmmc_send_cmd returned 0x107
E sdio_driver: Read bytes error,ret:263
E sdio_at_host: file: "./main/app_main.c" line 79
func: sdio_recv_task
 error: -1

E (4987) sdmmc_io: sdmmc_io_rw_extended: sdmmc_send_cmd returned 0x107
E sdio_driver: Read bytes error,ret:263
E sdio_at_host: file: "./main/app_main.c" line 79
func: sdio_recv_task
 error: -1

E (5007) sdmmc_io: sdmmc_io_rw_extended: sdmmc_send_cmd returned 0x107
E sdio_driver: Read bytes error,ret:263
E sdio_at_host: file: "./main/app_main.c" line 79
func: sdio_recv_task
 error: -1

E (5017) sdmmc_io: sdmmc_io_rw_extended: sdmmc_send_cmd returned 0x107
E sdio_driver: Read bytes error,ret:263
E sdio_at_host: file: "./main/app_main.c" line 79
func: sdio_recv_task
 error: -1

***ERROR*** A stack overflow in task sdioRecvTask has been detected.

Backtrace: 0x400817ee:0x3ffbad40 0x400864dd:0x3ffbad60 0x40088ef2:0x3ffbad80 0x40087b67:0x3ffbae00 0x40089040:0x3ffbae20 0x40088ff2:0x3f404f5f |<-CORRUPTED
0x400817ee: panic_abort at C:/Users/user/esp/esp-idf/components/esp_system/panic.c:452

0x400864dd: esp_system_abort at C:/Users/user/esp/esp-idf/components/esp_system/port/esp_system_chip.c:84

0x40088ef2: vApplicationStackOverflowHook at C:/Users/user/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:581

0x40087b67: vTaskSwitchContext at C:/Users/user/esp/esp-idf/components/freertos/FreeRTOS-Kernel/tasks.c:3729

0x40089040: _frxt_dispatch at C:/Users/user/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/portasm.S:450

0x40088ff2: _frxt_int_exit at C:/Users/user/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/portasm.S:245

ELF file SHA256: 8ae1af3246108323

Rebooting...
ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x17 (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:DIO, clock div:2
load:0x3fff0030,len:7076
load:0x40078000,len:15576
load:0x40080400,len:4
0x40080400: _init at ??:?

load:0x40080404,len:3876
entry 0x4008064c
I (29) boot: ESP-IDF v5.1 2nd stage bootloader
I (29) boot: compile time Aug  9 2023 11:42:04
I (29) boot: Multicore bootloader
I (33) boot: chip revision: v1.0
I (37) boot.esp32: SPI Speed      : 40MHz
I (42) boot.esp32: SPI Mode       : DIO
I (46) boot.esp32: SPI Flash Size : 4MB
I (51) boot: Enabling RNG early entropy source...
I (56) boot: Partition Table:
I (60) boot: ## Label            Usage          Type ST Offset   Length
I (67) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (74) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (82) boot:  2 factory          factory app      00 00 00010000 00100000
I (89) boot: End of partition table
I (94) esp_image: segment 0: paddr=00010020 vaddr=3f400020 size=0c408h ( 50184) map
I (120) esp_image: segment 1: paddr=0001c430 vaddr=3ffb0000 size=02148h (  8520) load
I (124) esp_image: segment 2: paddr=0001e580 vaddr=40080000 size=01a98h (  6808) load
I (129) esp_image: segment 3: paddr=00020020 vaddr=400d0020 size=1aa9ch (109212) map
I (174) esp_image: segment 4: paddr=0003aac4 vaddr=40081a98 size=0b36ch ( 45932) load
I (200) boot: Loaded app from partition at offset 0x10000
I (200) boot: Disabling RNG early entropy source...
I (211) cpu_start: Multicore app
I (212) cpu_start: Pro cpu up.
I (212) cpu_start: Starting app cpu, entry point is 0x400811cc
0x400811cc: call_start_cpu1 at C:/Users/user/esp/esp-idf/components/esp_system/port/cpu_start.c:154

I (200) cpu_start: App cpu up.
I (230) cpu_start: Pro cpu start user code
I (230) cpu_start: cpu freq: 160000000 Hz
I (230) cpu_start: Application information:
I (235) cpu_start: Project name:     sdio_host
I (240) cpu_start: App version:      1
I (244) cpu_start: Compile time:     Aug  9 2023 11:41:39
I (250) cpu_start: ELF file SHA256:  8ae1af3246108323...
I (256) cpu_start: ESP-IDF:          v5.1
I (261) cpu_start: Min chip rev:     v0.0
I (266) cpu_start: Max chip rev:     v3.99
I (270) cpu_start: Chip rev:         v1.0
I (275) heap_init: Initializing. RAM available for dynamic allocation:
I (283) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (288) heap_init: At 3FFB4228 len 0002BDD8 (175 KiB): DRAM
I (295) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (301) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (307) heap_init: At 4008CE04 len 000131FC (76 KiB): IRAM
I (315) spi_flash: detected chip: generic
I (318) spi_flash: flash io: dio
I (323) app_start: Starting scheduler on CPU0
I (327) app_start: Starting scheduler on CPU1
I (327) main_task: Started on CPU0
I (337) main_task: Calling app_main()
Start SDIO test
I (337) gpio: GPIO[5]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 
I (347) main_task: Returned from app_main()
I sdio_at_host: host ready, start initializing slave...
SDIO clock: 20000, bit: 1
I (1347) gpio: GPIO[13]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
E (1367) sdmmc_common: sdmmc_init_ocr: send_op_cond (1) returned 0x107
W sdio_driver: slave init failed, retry...
E (2387) sdmmc_common: sdmmc_init_ocr: send_op_cond (1) returned 0x107
W sdio_driver: slave init failed, retry...
E (3407) sdmmc_common: sdmmc_init_ocr: send_op_cond (1) returned 0x107
W sdio_driver: slave init failed, retry...
E (4427) sdmmc_common: sdmmc_init_ocr: send_op_cond (1) returned 0x107
W sdio_driver: slave init failed, retry...
E (5447) sdmmc_common: sdmmc_init_ocr: send_op_cond (1) returned 0x107
W sdio_driver: slave init failed, retry...
E (6467) sdmmc_common: sdmmc_init_ocr: send_op_cond (1) returned 0x107
W sdio_driver: slave init failed, retry...
E (7487) sdmmc_common: sdmmc_init_ocr: send_op_cond (1) returned 0x107
W sdio_driver: slave init failed, retry...
ustccw commented 1 year ago

@ESP-Coco PTAL

Jacques-Zhao commented 1 year ago

@poopyi Which firmware do you use for esp-at? Our firmware uses UART by default, if you need to use SDIO, you have to compile the firmware yourself. Or download temporary firmware as described in our documentation (https://docs.espressif.com/projects/esp-at/en/latest/esp32/Compile_and_Develop/How_to_download_the_latest_temporary_version_of_AT_from_github.html), select esp32-sdio-at firmware.

ustccw commented 6 months ago

We assume this worked for you, and will close it. If that's not the case, please open another github issue.