Boot from winbond 25q128 - how?
Posted: Sun Feb 11, 2024 3:22 pm
Hello everyone The question seemed to be simple, but I ran into difficulties...
ESP-WROOM-32 and Winbond 25q128 are available.
Since my program is expanding and I want to use ota for software updates and web server files (about 2 megabytes), I do not have enough internal memory ESP-WROOM-32.
It seems to me that even if the web server files take up to 1 megabyte, the program itself up to 1 megabyte, 2x1mb of ota, 1mb of user data (json configurations), then the best option is to use external memory to download the program.
There are several topics on the forum discussing my problem, but I haven't found a solution, so I'm asking for help again.
So, I opened the esp-wroom-32 manual and looked at how its memory is connected: With the exception of SCS/CMD (/CS), I connected everything else as shown in the diagram and changed SPI_PAD_CONFIG_CS0 pin using espefuse.py to GPIO17
Check espefuse.py summary:
After these actions, I believe that the esp should automatically boot from the external flash memory - but no. The blink sketch I uploaded earlier has been successfully uploaded from build-in flash. I tried to flash it - the firmware was installed on the built-in flash
I also tried various DIO and QIO configurations - but to no avail =(
The option of desoldering the upper shield and replace flash memory does not suit me - I want to be able to directly access the memory not on the ESP-WROOM-32 module.
I think if my problem is solved and there is a clear solution to it, it will help many who have faced the same question, since so far I have not found a direct "guide to connecting external memory".
As a result, I have the following questions:
1) How to connect the external memory "winbond 25q128" correctly esp-wroom-32 board to loads the program directly from it?
2) What settings or software manipulations do I need to do in order to start the external memory "winbond 25q128 "?
ESP-WROOM-32 and Winbond 25q128 are available.
Since my program is expanding and I want to use ota for software updates and web server files (about 2 megabytes), I do not have enough internal memory ESP-WROOM-32.
It seems to me that even if the web server files take up to 1 megabyte, the program itself up to 1 megabyte, 2x1mb of ota, 1mb of user data (json configurations), then the best option is to use external memory to download the program.
There are several topics on the forum discussing my problem, but I haven't found a solution, so I'm asking for help again.
So, I opened the esp-wroom-32 manual and looked at how its memory is connected: With the exception of SCS/CMD (/CS), I connected everything else as shown in the diagram and changed SPI_PAD_CONFIG_CS0 pin using espefuse.py to GPIO17
Code: Select all
espefuse.py burn_efuse SPI_PAD_CONFIG_CS0 17
Code: Select all
Spi Pad fuses:
SPI_PAD_CONFIG_HD (BLOCK0) read for SPI_pad_config_hd = 0 R/W (0b00000)
SPI_PAD_CONFIG_CLK (BLOCK0) Override SD_CLK pad (GPIO6/SPICLK) = 0 R/W (0b00000)
SPI_PAD_CONFIG_Q (BLOCK0) Override SD_DATA_0 pad (GPIO7/SPIQ) = 0 R/W (0b00000)
SPI_PAD_CONFIG_D (BLOCK0) Override SD_DATA_1 pad (GPIO8/SPID) = 0 R/W (0b00000)
SPI_PAD_CONFIG_CS0 (BLOCK0) Override SD_CMD pad (GPIO11/SPICS0) = 17 R/W (0b10001)
I also tried various DIO and QIO configurations - but to no avail =(
The option of desoldering the upper shield and replace flash memory does not suit me - I want to be able to directly access the memory not on the ESP-WROOM-32 module.
I think if my problem is solved and there is a clear solution to it, it will help many who have faced the same question, since so far I have not found a direct "guide to connecting external memory".
As a result, I have the following questions:
1) How to connect the external memory "winbond 25q128" correctly esp-wroom-32 board to loads the program directly from it?
2) What settings or software manipulations do I need to do in order to start the external memory "winbond 25q128 "?