esp32s2---请问如何在启动后改变“(VDD_SDIO) 电压”

xiaohao
Posts: 2
Joined: Fri Apr 16, 2021 7:51 am

esp32s2---请问如何在启动后改变“(VDD_SDIO) 电压”

Postby xiaohao » Fri Apr 16, 2021 8:14 am

目前手上有 esp32-s2-saola-1R 开发板(ESP32-S2-WROVER模组:带3.3V的flash)

由于目标器件的io电平为1.8v,需要esp32s2启动后,将VDD_SDIO的电压从3.3v改变为1.8v,是否可行?

方案一: 直接拉高GPIO45,启动时生效,导致flash无法正常加载程序
方案二: 烧写efuse寄存器,是否也是启动时生效?
方案三: app_main()中 设置 RTC_CNTL_SDIO_TIEH ,参考 https://www.esp32.com/viewtopic.php?t=2976#p14038 ,但是运行到设置RTC_CNTL_SDIO_TIEH寄存器时, 芯片会从reboot,再次加载flash异常。
方案四: 放弃flash,同方案一, 使用elf ? 不能使用 idf.py 来烧录,只能用jtag ?

xiaohao
Posts: 2
Joined: Fri Apr 16, 2021 7:51 am

Re: esp32s2---请问如何在启动后改变“(VDD_SDIO) 电压”

Postby xiaohao » Thu May 06, 2021 7:21 am

采用方案4:

1. build type选择为 ELF_RAM:
2. 把编译生成的elf转换为bin: esptool.py --chip esp32s2 elf2image *.elf
3. 直接下载到RAM并运行: esptool.py --no-stub load_ram *.bin

如果想要持久化到flash:

1. 先生成partition-table.bin: idf.py partition_table
2. 把partition-table.bin和*.bin烧录到flash: esptool.py --chip esp32s2 -p /dev/ttyUSB0 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 80m --flash_size 2MB 0x8000 build/partition_table/partition-table.bin 0x10000 build/*.bin


还有个疑问:

1. 同样的代码,idf默认的flash二级引导,app_main()函数中重新设置VDD_SDIO的电压,运行后为何会报错???

Who is online

Users browsing this forum: No registered users and 83 guests