ESP32 SPI Flash Communication

brent.yiu
Posts: 6
Joined: Thu Feb 17, 2022 8:53 pm

ESP32 SPI Flash Communication

Postby brent.yiu » Sat Feb 19, 2022 7:07 am

I have a custom design with an ESP32-D0WD-V3 with an external Winbond W25Q80DVSNIG flash IC. When trying to flash a program onto the device I get this error message.
[2/3] cd /Users/brentonyiu/esp/esp-idf/components/esptool_py && /usr/local/Cellar/cmake/3.22.1/bin/cmake -D I...u/esp/projects/hello_world/build -P /Users/brentonyiu/esp/esp-idf/components/esptool_py/run_serial_tool.cmak
esptool.py esp32 -p /dev/tty.usbserial-143101 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 2MB 0x1000 bootloader/bootloader.bin 0x10000 hello_world.bin 0x8000 partition_table/partition-table.bin
esptool.py v3.3-dev
Serial port /dev/tty.usbserial-143101
Connecting...........
Chip is ESP32-D0WD-V3 (revision 3)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
WARNING: Detected crystal freq 24.65MHz is quite different to normalized freq 26MHz. Unsupported crystal in use?
Crystal is 26MHz
MAC: 48:55:19:b3:8b:40
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
WARNING: Failed to communicate with the flash chip, read/write operations will fail. Try checking the chip connections or removing any other hardware connected to IOs.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00007fff...
Flash will be erased from 0x00010000 to 0x00039fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Compressed 25424 bytes to 15903...

A fatal error occurred: Packet content transfer stopped (received 8 bytes)
CMake Error at run_serial_tool.cmake:55 (message):

/Users/brentonyiu/.espressif/python_env/idf5.0_py3.9_env/bin/python;;/Users/brentonyiu/esp/esp-idf/components/esptool_py/esptool/esptool.py;--chip;esp32
failed


FAILED: CMakeFiles/flash /Users/brentonyiu/esp/projects/hello_world/build/CMakeFiles/flash
cd /Users/brentonyiu/esp/esp-idf/components/esptool_py && /usr/local/Cellar/cmake/3.22.1/bin/cmake -D IDF_PATH=/Users/brentonyiu/esp/esp-idf -D "SERIAL_TOOL=/Users/brentonyiu/.espressif/python_env/idf5.0_py3.9_env/bin/python;;/Users/brentonyiu/esp/esp-idf/components/esptool_py/esptool/esptool.py;--chip;esp32" -D "SERIAL_TOOL_ARGS=--before=default_reset;--after=hard_reset;write_flash;@flash_args" -D WORKING_DIRECTORY=/Users/brentonyiu/esp/projects/hello_world/build -P /Users/brentonyiu/esp/esp-idf/components/esptool_py/run_serial_tool.cmake
ninja: build stopped: subcommand failed.
ninja failed with exit code 1
I am using a Dual I/O setup and setting the VDD SDIO voltage to 3.3V.
SPI Setup.jpg
SPI Setup.jpg (59.39 KiB) Viewed 8903 times
SPI_Setup_2.jpg
SPI_Setup_2.jpg (159.04 KiB) Viewed 8903 times

erickrieg@gmail.com
Posts: 3
Joined: Fri Jul 08, 2022 11:25 pm

Re: ESP32 SPI Flash Communication

Postby erickrieg@gmail.com » Thu Aug 04, 2022 5:35 pm

I have not had this problem when running just the ESP32 units, but as soon as I solder those units into a board we designed, I get the problem. I'm assuming there is something about one of the lines that the bootloader may read that is now different from the individual lone ESP32 module. This problem is strange because the is enough communication between the debugger and the module to know what kind of module it is. I will try to look more, if I can find a solution, I'll post it here for others.

ESP_Sprite
Posts: 9766
Joined: Thu Nov 26, 2015 4:08 am

Re: ESP32 SPI Flash Communication

Postby ESP_Sprite » Fri Aug 05, 2022 1:15 am

brent.yiu: bit late, but I think you swapped the DO/DI lines...
erickrieg: if you want us to help, it's probably better to start your own topic and post a schematic, we may be able to figure out what's wrong that way.

gotfredsen
Posts: 2
Joined: Wed Jul 06, 2022 1:11 pm

Re: ESP32 SPI Flash Communication

Postby gotfredsen » Wed Oct 05, 2022 3:06 pm

I have a SD Card connected to:

Code: Select all

#define SPI_MISO 12
#define SPI_MOSI 13
#define SPI_SCK 14
#define SPI_CS 5
... and I couldn't upload if I had my SD Card Inserted and used it in my code. But if I took the SD card out or commented out the use of the SD Card, I could upload again.

I believe it is because
boot will fail if GPIO 12 is pulled high
according to https://randomnerdtutorials.com/esp32-p ... nce-gpios/

When trying to erase I get same message
WARNING: Failed to communicate with the flash chip, read/write operations will fail. Try checking the chip connections or removing any other hardware connected to IOs.
so I thought this might help...

Who is online

Users browsing this forum: No registered users and 135 guests