基本参考:
https://github.com/espressif/esp-hosted/blob/master/esp_hosted_ng/docs/setup.md
由于sdio 需要10k 电阻上拉,而sdio的几根线上拉的话,会影响boot strap,具体可以参考这里的表格:
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sd_pullup_requirements.html#internal-pull-ups-and-strapping-requirements
一般我们可以通过烧写efuse 的方式来解决这个问题,烧写efuse后, 某些boot strap 引脚就失效了。
对于我们这种情况来说,主要的冲突在于GPIO12(sdio dat2),可以按照下面的方式来烧写efuse
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sd_pullup_requirements.html#conflicts-between-bootstrap-and-sdio-on-dat2
另外,GPIO2 一开始也不能上拉,因为上拉之后无法进入烧写模式,所以可以在烧写完之后再把上拉电阻焊上。
快速命令:
- esp32 固件下载:https://github.com/espressif/esp-hosted/releases
- esp32 固件烧写:
esptool.py -p com4 -b 115200 --before default_reset --after hard_reset --chip esp32 write_flash --flash_mode dio --flash_size detect --flash_freq 40m 0x1000 bootloader.bin 0x8000 partition-table.bin 0xd000 ota_data_initial.bin 0x10000 network_adapter.bin
- efuse 烧写
components/esptool_py/esptool/espefuse.py set_flash_voltage 3.3V