在macOS 上使用 esptool 烧录合宙ESP32C3 开发板 micropython 固件遇到的问题与解决办法

在macOS 上使用 esptool 烧录合宙ESP32C3 开发板 micropython 固件遇到的问题与解决办法

  • 问题
  • 原因
  • 解决办法
  • 全部操作步骤
    • 1. 安装esptool
    • 2. 安装CH340 驱动程序
    • 3. 烧录固件

问题

使用 esptool 烧录遇到报错 A fatal error occurred: Failed to write to target RAM (result was 01070000)

原因

看github 上的讨论,LilyGO 开发板使用的 FTDI 芯片似乎与 mac OS Big Sur UART 驱动程序不兼容;合宙 ESP32C3 开发板同理;
我电脑的 mac OS Monterey 版本同理;

解决办法

在 mac 上安装这个CH340 驱动程序;

链接: link

全部操作步骤

1. 安装esptool

参考这个链接:
链接: 安装 MicroPython 到 ESP32-CAM - 使用esptool.py (Mac)

注意,macOS 里erase_flash的正确操作应该是:

python3 -m esptool --chip esp32c3 --port /dev/cu.***** erase_flash

而不是上面链接中说的esptool.py --chip esp32c3 --port,这是windows 系统中的操作方法,不能在macOS 中使用,否则会报错esptool.py: command not found

2. 安装CH340 驱动程序

在第一步的时候你会发现,在使用 erase_flash 把板子原来的固件信息清除掉时,会报错:A fatal error occurred: Failed to write to target RAM (result was 01070000: Operation timed out),这就是上面说的macOS 里CH340 芯片驱动不兼容问题。需要下载并安装下面这个链接里的CH340芯片驱动。

链接: link

这个问题是在下面这个github 链接里找到的答案:
链接: A fatal error occurred: Failed to write to target RAM

安装完这个驱动后,在终端里输入 ls -l /dev/cu* 就会发现多了一个端口:

crw-rw-rw-  1 root  wheel  0x9000003  7  9 22:18 /dev/cu.Bluetooth-Incoming-Port
crw-rw-rw-  1 root  wheel  0x9000005  7  9 22:45 /dev/cu.usbmodem*********
crw-rw-rw-  1 root  wheel  0x9000007  7  9 22:48 /dev/cu.wchusbseria*******
crw-rw-rw-  1 root  wheel  0x9000001  7  9 22:17 /dev/cu.wlan-debug

使用这个wchusbseria******* 端口就可以 执行 erase_flash 命令并写入新的固件了。

python3 -m esptool --chip esp32c3 --port /dev/cu.***** erase_flash

3. 烧录固件

写入新的固件的命令为:

python3 -m esptool --chip esp32-c3 --port /dev/cu.wchusbserial******* --baud 460800 write_flash -z 0x1000 esp32c3-20230426-v1.20.0.bin

记得要在你下载的这个新的bin文件的同一文件夹目录下执行这个烧录命令。

Serial port /dev/cu.wchusbserial*********
Connecting....
Chip is ESP32-C3 (revision v0.3)
Features: WiFi, BLE
Crystal is 40MHz
MAC: ***********
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00167fff...
Compressed 1466928 bytes to 895028...
Wrote 1466928 bytes (895028 compressed) at 0x00001000 in 25.8 seconds (effective 455.4 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

~~烧录成功!~~

你可能感兴趣的:(micropython,ESP32C3,macos,esp32c3,micropython,合宙)