Floating the Flash SPI pins to allow a 2nd processor to access flash memory
Posted: Mon Nov 20, 2017 8:18 pm
Hi,
We have a board were we need to force the ESP32 to float it's SPI pins to the flash memory to allow a second processor to read. Once it has been read the ESP32 reboots. It seems simple enough, but have so far been unsuccessful. It appears the ESP32 is still driving the SPI output pins.
The second processor is able to read the ESP32 flash if we reboot the ESP32 with the flashing jumper inserted to prevent the ESP32 from booting.
Here is the latest attempt.
disable_interrupts_caches_and_other_cpu();
gpio_config_t config;
config.pin_bit_mask = GPIO_SEL_6 | GPIO_SEL_7 | GPIO_SEL_8 | GPIO_SEL_9 | GPIO_SEL_10 | GPIO_SEL_11;
config.mode = GPIO_MODE_INPUT;
config.pull_up_en = GPIO_PULLUP_DISABLE;
config.pull_down_en = GPIO_PULLDOWN_DISABLE;
config.intr_type = GPIO_INTR_DISABLE;
gpio_config(&config);
// loop here waiting for a specific gpio pin to change state, then reboot
Is there something else we need to disable as well?
Thanks
We have a board were we need to force the ESP32 to float it's SPI pins to the flash memory to allow a second processor to read. Once it has been read the ESP32 reboots. It seems simple enough, but have so far been unsuccessful. It appears the ESP32 is still driving the SPI output pins.
The second processor is able to read the ESP32 flash if we reboot the ESP32 with the flashing jumper inserted to prevent the ESP32 from booting.
Here is the latest attempt.
disable_interrupts_caches_and_other_cpu();
gpio_config_t config;
config.pin_bit_mask = GPIO_SEL_6 | GPIO_SEL_7 | GPIO_SEL_8 | GPIO_SEL_9 | GPIO_SEL_10 | GPIO_SEL_11;
config.mode = GPIO_MODE_INPUT;
config.pull_up_en = GPIO_PULLUP_DISABLE;
config.pull_down_en = GPIO_PULLDOWN_DISABLE;
config.intr_type = GPIO_INTR_DISABLE;
gpio_config(&config);
// loop here waiting for a specific gpio pin to change state, then reboot
Is there something else we need to disable as well?
Thanks