一、先按照官方说法,设置好烧录固件的条件
我用万用表测量过,GPIO0 和 GPIO46 直接接地,电压是 0V,串口 UART0_TX 每次都能显示进入下载准备状态。
二、烧写固件的接口
Code: Select all
ESP-ROM:esp32s2-rc4-20191025
Build:Oct 25 2019
rst:0x1 (POWERON),boot:0x0 (DOWNLOAD(USB/UART0/1/SPI))
waiting for download
激动之余,开始寻找原因,发现插着 UART1 时,UART0 也会瞬间恢复正常烧写!这是啥问题???
三、DownloadBoot模式会在四个下载接口中选择1个在使用的接口进行烧写
UART0_RX 是开发板焊接到 CH340 串口芯片上的,空闲时 UART0_RX = 3.3V。但 UART1_RX 是悬空的,空闲时为 UART1_RX = 1.5V( L必须小于0.8 H必须大于2, 0.8--2之间未定义)。如果官方处理得好,悬空的 UART1_RX 不应该在烧录固件接口的选择范围内,可偏偏这是个过不去的坑!
四、官方硬件设计指南 解决办法:GPIO18作为U1RXD,在芯片上电时是不确定状态,可能会影响芯片正常进入下载启动模式,需要在外部增加一个上拉电阻来解决。(短接 UART1_TX -- UART1_RX)