#author("2018-07-30T23:08:57+09:00","","")
#author("2018-07-30T23:14:38+09:00","","")
*ESP32-DevKitC 工場出荷時のファームウェアをバックアップ
**Arduino IDE で開発する前に、まずは工場出荷時のファームウェアをバックアップ
<pre>
C:\temp>&color(red){<arduinoインストールdir>};\Arduino\hardware\espressif\esp32\tools\&color(blue){esptool.exe --chip esp32 --port ''COM7'' --baud 115200 read_flash 0 0x400000 esp32_firmware.bin};
esptool.py v2.1
Connecting........___
Chip is ESP32D0WDQ6 (revision 1)
Uploading stub...
Running stub...
Stub running...
4194304 (100 %)
4194304 (100 %)
Read 4194304 bytes at 0x0 in 382.0 seconds (87.8 kbit/s)...
Hard resetting...

C:\temp>
</pre>
※-baud 921600 ではエラー発生
※[[esptool.exeの使い方>https://github.com/espressif/esptool]]

**ファームウェアを書き戻す時
<pre>
C:\temp>&color(red){<arduinoインストールdir>};\Arduino\hardware\espressif\esp32\tools\&color(blue){esptool.exe --chip esp32 --port ''COM7'' --baud 115200 write_flash 0 esp32_firmware.bin};
</pre>

**ビルトイン BASIC
IO12 を 10kΩ抵抗でプルアップ (IO12 と 3V3 を10kΩ抵抗で繋ぐ)
RESET後、コンソールから[Enter]
起動するそうだが、、、以下の繰り返しで起動せず。
<pre>
rst:0x1 (POWERON_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun  8 2016 00:22:57
</pre>

**eFUSEの値
※pythonがインストールされており、''pip install esptool''でesptool.pyをインストールすると、espefuse.py が使用可能。
<pre>
C:\WINDOWS\system32>&color(blue){espefuse.py --baud 115200 --port COM7 summary};
espefuse.py v2.5.0
Connecting........_
Identity fuses:
MAC                    MAC Address
  = 24:0a:c4:12:7b:f0 (CRC 04 OK) R/W
CHIP_VER_REV1          Silicon Revision 1                                = 1 R/W (0x1)
CHIP_VERSION           Reserved for future chip versions                 = 0 R/W (0x0)
CHIP_PACKAGE           Chip package identifier                           = 0 R/W (0x0)

Config fuses:
XPD_SDIO_FORCE         Ignore MTDI pin (GPIO12) for VDD_SDIO on reset    = 0 R/W (0x0)
XPD_SDIO_REG           If XPD_SDIO_FORCE, enable VDD_SDIO reg on reset   = 0 R/W (0x0)
XPD_SDIO_TIEH          If XPD_SDIO_FORCE & XPD_SDIO_REG, 1=3.3V 0=1.8V   = 0 R/W (0x0)
SPI_PAD_CONFIG_CLK     Override SD_CLK pad (GPIO6/SPICLK)                = 0 R/W (0x0)
SPI_PAD_CONFIG_Q       Override SD_DATA_0 pad (GPIO7/SPIQ)               = 0 R/W (0x0)
SPI_PAD_CONFIG_D       Override SD_DATA_1 pad (GPIO8/SPID)               = 0 R/W (0x0)
SPI_PAD_CONFIG_HD      Override SD_DATA_2 pad (GPIO9/SPIHD)              = 0 R/W (0x0)
SPI_PAD_CONFIG_CS0     Override SD_CMD pad (GPIO11/SPICS0)               = 0 R/W (0x0)
DISABLE_SDIO_HOST      Disable SDIO host                                 = 0 R/W (0x0)

Calibration fuses:
BLK3_PART_RESERVE      BLOCK3 partially served for ADC calibration data  = 0 R/W (0x0)
ADC_VREF               Voltage reference calibration                     = 1100 R/W (0x0)

Security fuses:
FLASH_CRYPT_CNT        Flash encryption mode counter                     = 0 R/W (0x0)
FLASH_CRYPT_CONFIG     Flash encryption config (key tweak bits)          = 0 R/W (0x0)
&color(red){CONSOLE_DEBUG_DISABLE  Disable ROM BASIC interpreter fallback            = 1 R/W (0x1)};
ABS_DONE_0             secure boot enabled for bootloader                = 0 R/W (0x0)
ABS_DONE_1             secure boot abstract 1 locked                     = 0 R/W (0x0)
JTAG_DISABLE           Disable JTAG                                      = 0 R/W (0x0)
DISABLE_DL_ENCRYPT     Disable flash encryption in UART bootloader       = 0 R/W (0x0)
DISABLE_DL_DECRYPT     Disable flash decryption in UART bootloader       = 0 R/W (0x0)
DISABLE_DL_CACHE       Disable flash cache in UART bootloader            = 0 R/W (0x0)
BLK1                   Flash encryption key
  = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLK2                   Secure boot key
  = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLK3                   Variable Block 3
  = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W

Efuse fuses:
WR_DIS                 Efuse write disable mask                          = 0 R/W (0x0)
RD_DIS                 Efuse read disablemask                            = 0 R/W (0x0)
CODING_SCHEME          Efuse variable block length scheme                = 0 R/W (0x0)
KEY_STATUS             Usage of efuse block 3 (reserved)                 = 0 R/W (0x0)

Flash voltage (VDD_SDIO) determined by GPIO12 on reset (High for 1.8V, Low/NC for 3.3V).

C:\WINDOWS\system32>
</pre>
※CONSOLE_DEBUG_DISABLEが立っていると、BASICは動かないらしい。どうして立ったかは不明。

**ATコマンド用のファームウエア [[ESP32-WROOM-32 AT Bin>https://www.espressif.com/en/support/download/at]]
<pre>
C:\Src\ESP32\Tools\ESP32-WROOM-32_AT_V1.1>C:\Apps\Arduino\hardware\espressif\esp32\tools\&color(blue){esptool.exe --chip esp32 --port ''COM7'' --baud 115200 write_flash 0x1000 bootloader\bootloader.bin 0xf000 phy_init_data.bin 0x100000 esp-at.bin 0x8000 partitions_at.bin 0x10000 blank.bin};
esptool.py v2.1
Connecting....
Chip is ESP32D0WDQ6 (revision 1)
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 19424 bytes to 11458...
Wrote 19424 bytes (11458 compressed) at 0x00001000 in 1.1 seconds (effective 147.6 kbit/s)...
Hash of data verified.
Compressed 144 bytes to 69...
Wrote 144 bytes (69 compressed) at 0x0000f000 in 0.1 seconds (effective 18.6 kbit/s)...
Hash of data verified.
Compressed 1113312 bytes to 699718...
Wrote 1113312 bytes (699718 compressed) at 0x00100000 in 62.1 seconds (effective 143.5 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 129...
Wrote 3072 bytes (129 compressed) at 0x00008000 in 0.1 seconds (effective 396.4 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 31...
Wrote 8192 bytes (31 compressed) at 0x00010000 in 0.0 seconds (effective 1394.4 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting...

C:\Src\ESP32\Tools\ESP32-WROOM-32_AT_V1.1>
</pre>
※RESET後の画面(コンソール出力)
<pre>
rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:5568
ho 0 tail 12 room 4
load:0x40078000,len:0
load:0x40078000,len:13756
entry 0x40078fb4
I (30) boot: ESP-IDF v3.0.1-rc 2nd stage bootloader
I (30) boot: compile time 12:42:40
I (30) boot: Enabling RNG early entropy source...
I (35) boot: SPI Speed      : 40MHz
I (39) boot: SPI Mode       : DIO
I (43) boot: SPI Flash Size : 4MB
I (47) boot: Partition Table:
I (51) boot: ## Label            Usage          Type ST Offset   Length
I (58) boot:  0 phy_init         RF data          01 01 0000f000 00001000
I (65) boot:  1 otadata          OTA data         01 00 00010000 00002000
I (73) boot:  2 nvs              WiFi data        01 02 00012000 0000e000
I (80) boot:  3 at_customize     unknown          40 00 00020000 000e0000
I (88) boot:  4 ota_0            OTA app          00 10 00100000 00180000
I (95) boot:  5 ota_1            OTA app          00 11 00280000 00180000
I (103) boot: End of partition table
I (107) boot: No factory image, trying OTA 0
I (112) esp_image: segment 0: paddr=0x00100020 vaddr=0x3f400020 size=0x1fdfc (130556) map
I (167) esp_image: segment 1: paddr=0x0011fe24 vaddr=0x3ffc0000 size=0x001ec (   492) load
I (167) esp_image: segment 2: paddr=0x00120018 vaddr=0x400d0018 size=0xddc68 (908392) map
I (491) esp_image: segment 3: paddr=0x001fdc88 vaddr=0x3ffc01ec size=0x0300c ( 12300) load
I (497) esp_image: segment 4: paddr=0x00200c9c vaddr=0x40080000 size=0x00400 (  1024) load
I (499) esp_image: segment 5: paddr=0x002010a4 vaddr=0x40080400 size=0x0eba0 ( 60320) load
I (532) esp_image: segment 6: paddr=0x0020fc4c vaddr=0x400c0000 size=0x00064 (   100) load
I (541) boot: Loaded app from partition at offset 0x100000
I (542) boot: Disabling RNG early entropy source...
Bin version(Wroom32):1.1.0
I (578) wifi: wifi firmware version: bffcf7f
I (579) wifi: config NVS flash: enabled
I (579) wifi: config nano formating: disabled
I (588) wifi: Init dynamic tx buffer num: 32
I (589) wifi: Init data frame dynamic rx buffer num: 32
I (589) wifi: Init management frame dynamic rx buffer num: 32
I (595) wifi: wifi driver task: 3ffdf580, prio:23, stack:4096
I (600) wifi: Init static rx buffer num: 10
I (603) wifi: Init dynamic rx buffer num: 32
I (608) wifi: wifi power manager task: 0x3ffe3ce4 prio: 21 stack: 2560
I (642) wifi: mode : softAP (30:ae:a4:XX:XX:XY)
I (649) wifi: mode : sta (30:ae:a4:XX:XX:XX) + softAP (30:ae:a4:XX:XX:XY)
I (653) wifi: mode : softAP (30:ae:a4:XX:XX:XY)
</pre>

**eFUSEの値
※pythonがインストールされており、''pip install esptool''でesptool.pyをインストール
<pre>
C:\WINDOWS\system32>&color(blue){espefuse.py --baud 115200 --port COM7 summary};
espefuse.py v2.5.0
Connecting........_
Identity fuses:
MAC                    MAC Address
  = 24:0a:c4:12:7b:f0 (CRC 04 OK) R/W
CHIP_VER_REV1          Silicon Revision 1                                = 1 R/W (0x1)
CHIP_VERSION           Reserved for future chip versions                 = 0 R/W (0x0)
CHIP_PACKAGE           Chip package identifier                           = 0 R/W (0x0)

Config fuses:
XPD_SDIO_FORCE         Ignore MTDI pin (GPIO12) for VDD_SDIO on reset    = 0 R/W (0x0)
XPD_SDIO_REG           If XPD_SDIO_FORCE, enable VDD_SDIO reg on reset   = 0 R/W (0x0)
XPD_SDIO_TIEH          If XPD_SDIO_FORCE & XPD_SDIO_REG, 1=3.3V 0=1.8V   = 0 R/W (0x0)
SPI_PAD_CONFIG_CLK     Override SD_CLK pad (GPIO6/SPICLK)                = 0 R/W (0x0)
SPI_PAD_CONFIG_Q       Override SD_DATA_0 pad (GPIO7/SPIQ)               = 0 R/W (0x0)
SPI_PAD_CONFIG_D       Override SD_DATA_1 pad (GPIO8/SPID)               = 0 R/W (0x0)
SPI_PAD_CONFIG_HD      Override SD_DATA_2 pad (GPIO9/SPIHD)              = 0 R/W (0x0)
SPI_PAD_CONFIG_CS0     Override SD_CMD pad (GPIO11/SPICS0)               = 0 R/W (0x0)
DISABLE_SDIO_HOST      Disable SDIO host                                 = 0 R/W (0x0)

Calibration fuses:
BLK3_PART_RESERVE      BLOCK3 partially served for ADC calibration data  = 0 R/W (0x0)
ADC_VREF               Voltage reference calibration                     = 1100 R/W (0x0)

Security fuses:
FLASH_CRYPT_CNT        Flash encryption mode counter                     = 0 R/W (0x0)
FLASH_CRYPT_CONFIG     Flash encryption config (key tweak bits)          = 0 R/W (0x0)
&color(red){CONSOLE_DEBUG_DISABLE  Disable ROM BASIC interpreter fallback            = 1 R/W (0x1)};
ABS_DONE_0             secure boot enabled for bootloader                = 0 R/W (0x0)
ABS_DONE_1             secure boot abstract 1 locked                     = 0 R/W (0x0)
JTAG_DISABLE           Disable JTAG                                      = 0 R/W (0x0)
DISABLE_DL_ENCRYPT     Disable flash encryption in UART bootloader       = 0 R/W (0x0)
DISABLE_DL_DECRYPT     Disable flash decryption in UART bootloader       = 0 R/W (0x0)
DISABLE_DL_CACHE       Disable flash cache in UART bootloader            = 0 R/W (0x0)
BLK1                   Flash encryption key
  = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLK2                   Secure boot key
  = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLK3                   Variable Block 3
  = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W

Efuse fuses:
WR_DIS                 Efuse write disable mask                          = 0 R/W (0x0)
RD_DIS                 Efuse read disablemask                            = 0 R/W (0x0)
CODING_SCHEME          Efuse variable block length scheme                = 0 R/W (0x0)
KEY_STATUS             Usage of efuse block 3 (reserved)                 = 0 R/W (0x0)

Flash voltage (VDD_SDIO) determined by GPIO12 on reset (High for 1.8V, Low/NC for 3.3V).

C:\WINDOWS\system32>
</pre>
※CONSOLE_DEBUG_DISABLEが立っていると、BASICは動かないらしい。どうして立ったかは不明。


トップ   差分 履歴 リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS