当前位置:   article > 正文

记录一个ESP32烧录异常的坑rst:0x10 (RTCWDT_RTC_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT) flash read err, 1000,启动异常

spi_fast_flash_boot

        近期项目需要做了一些工装板卡,记录主机的打印信息,板卡投了10个贴片回来,烧录一直失败打印报错误,已经有大半年没有调ESP32了,重新捡起来,还是有点手生了,遇到这种错误还是我联想起前段时间360杀毒搞了一下,担心是它搞出问题来了,于是我找了同事去烧录结果也一样,于是开始怀疑硬件,线材、板子一个个都是怀疑对象,为了验证异常是和哪个有关系,就更换对应的部分来查看这个问题,先换了线结果还是一样,同时用以前的一款板卡测试烧录是OK的,一切分析都指向了这个板卡,开始分析板卡,大致分为几个方面:电源有问题?烧录的控制电路和配置参数有问题?USB转串口芯片CH340C有问题?ESP32模组有问题?下面我们来逐步排查

1、项目使用5V供电,ESP32,CH340C等均需要的是3V3,由于压差不大,还有电流也比较小,于是采用的是SA1117来把电压从5V转到3V3,用万用表测量电压3V3正常,那会不会是烧录的时候有波动呢,于是在烧录过程中我也测试观察并没有发现电压变化。初步排除电源问题。

2、 烧录控制电路如下图,采用的是常规设计,万用表测量贴片的器件并没有发现物料和贴片异常。

        


但是由于电路上有留一个TF卡插入检测和IO2有关系,这个脚作为卡插入检测有上拉电阻接到3V3,会不会是这个影响的,于是把电阻R212去掉断开TF卡的卡检测信号,结果还是一样。 

3、USB转串口芯片CH340C有问题?将之前烧录OK的另一款板卡上的CH340和这个板卡上的进行对调,发现问题和板子走。说明芯片没有问题

4、ESP32模组有问题?还是一样的办法将另一款板卡上的模组进行对调后,也是跟着板子走。

正在不知所措的时候,想起来这个换过来的模组是烧好程序的,那不妨接串口调试助手看看是程序能不能正常跑,果不其然发现了端倪,板子在报rst:0x10 (RTCWDT_RTC_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT) flash read err, 1000错误还在不断重启

说明模块没办法正常跑起来,那就说明启动策略有异常,查阅相关资料,除了GPIO0\GPIO2外,发现GPIO12脚和GPIO5脚都有对应的策略。

这时候检查原理图,刚好GPIO12和GPIO5都有作为功能脚引出,GPIO12作为串口接到了232芯片上

 

GPIO5作为TF卡的片选信号接到了TF卡座,并且硬件上做了上拉 

用万用表将这两个IO的状态量了一下,电压分别是GPIO12--->3V3,GPIO5----->3V3

查阅对比了一下手册,

由于模组内置了 3.3 V SPI flash,所以上电时不能将 MTDI 置 1。232芯片将这个脚拉高了,选择了1.8V电压给FLASH所以这个flash都工作不了,断开GPIO12试了下果然可以了

   

   总结ESP32的模块一定要小心特别是strpping管脚,接对应外设一定要检查外设的高低状态

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/196213
推荐阅读
相关标签
  

闽ICP备14008679号