乐鑫技术交流
直播中

费加罗

9年用户 898经验值
私信 关注
[问答]

ESP32 PICO如何使用外部的flash下载和启动程序呢?

大家好:
我现在的板子上,主芯片是ESP32 PICO D4,集成了4MB的FLASH,现在板子上接了另外一颗flash芯片,除了CS#管脚与内部的flash不同,内部的接的GPIO16(由芯片手册可知),外部接的GPIO15,现在如何使用外部的flash下载和启动程序呢?请指教。
谢谢!
                     

回帖(1)

王树林

2024-6-25 17:26:41
要使用外部的flash下载和启动程序,您需要按照以下步骤操作:

1. 准备外部flash:确保您已经将外部flash芯片连接到ESP32 PICO D4的开发板上,并且CS#管脚连接到GPIO15。

2. 配置SPI接口:由于ESP32 PICO D4已经有一个内置的SPI Flash接口,您需要配置SPI接口以访问外部flash。在代码中,您可以使用以下代码片段来配置SPI接口:

```c
#include "driver/spi_master.h"

#define EXTERNAL_FLASH_CS_GPIO 15
#define EXTERNAL_FLASH_SPI_HOST SPI2_HOST

spi_device_handle_t spi_handle;

void setup_external_flash() {
    spi_bus_config_t bus_cfg = {
        .mosi_io_num = 23,
        .miso_io_num = 19,
        .sclk_io_num = 18,
        .quadwp_io_num = -1,
        .quadhd_io_num = -1,
        .max_transfer_sz = 6*1024
    };
    spi_device_interface_config_t dev_cfg = {
        .clock_speed_hz = 10 * 1000 * 1000, // 10 MHz
        .mode = 0,
        .spics_io_num = EXTERNAL_FLASH_CS_GPIO,
        .queue_size = 7
    };
    esp_err_t ret = spi_bus_initialize(EXTERNAL_FLASH_SPI_HOST, &bus_cfg, 1);
    ret |= spi_device_initialize(EXTERNAL_FLASH_SPI_HOST, &dev_cfg, spi_handle);
    assert(ret == ESP_OK);
}
```

3. 编写代码以使用外部flash:在您的应用程序中,您需要编写代码以使用外部flash存储和读取数据。您可以使用`spi_device_transmit`函数来实现这一点。

4. 烧录程序:使用esptool.py工具将程序烧录到ESP32 PICO D4上。确保在烧录过程中,外部flash已经连接到开发板。

5. 启动程序:在程序中,您需要编写代码以从外部flash加载程序并启动它。这可能需要使用引导加载器(bootloader)来实现。

6. 调试和测试:在完成上述步骤后,您需要调试和测试您的应用程序以确保它能够正确地使用外部flash。

请注意,这个过程可能因您的具体硬件和flash芯片而异。在实际操作中,您可能需要查阅相关文档和示例代码以获得更详细的指导。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分