解决了烧写marlin程序,无法正常跳转的问题后,将esp32 devkit插入6轴运动底板。又出现新的问题。串口log提示flash读取错误,并反复重启:
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
这样看来肯定esp32 devkit是某个IO被6轴运动底板挂住,导致系统引导出错。
没办法,只能做了一个飞线工装,一条线一条线的与底板连接,最终找到原因。原来是IO12被底板上拉,导致esp32的内部ldo设置为1.8V输出,从而无法正常工作。
查看esp32的datasheet,原来它有5个strapping管脚(分别是IO0,IO2,IO5,IO12,IO15),用来根据上电时的电平状态,对芯片状态进行配置。
详情见datasheet的2.4 strapping管脚章节。
于是将底板上IO12的线路割断,重新上电,marlin正常运行,问题解决。