问题描述
最近的一个项目是用esp32-wroom-32e作为主控,需要使用自动下载电路方便程序调试,我使用嘉立创绘制,但在实现过程中遇到了出现了很多问题。
原因分析:
根据官方给出的手册可以看出GPIO0是默认上拉,只要在系统启动时对其进行下拉即可进入下载模式,一般的下载模式是通过BOOT和RESET两个按键交替按下即可,而这个操作可以使用逻辑电路代替。
在第一次测试的时候对照示例连接电路图时,直接选择S8050绘制,没仔细检查好电路,可能是嘉立创更新库的缘故,网上很多示例中的S8050跟现在嘉立创里面的库是镜像的,在后面焊接调试时才发现问题。
更改过后打第二次板,但是还是不能自动下载,并且发现ch340串口可以识别但是串口没信息,正常来说是会接收到esp32的启动、下载等信息,检查原理图之后发现esp32和ch340的TX、RX没有反接,测试自动下载电路是可以的。
更改之后信心满满继续打第三次板,焊接完之后串口是可以查看信息了,并且自动下载成功了,终于成功了,去吃了个大餐庆祝一下,回来再看看自己的“杰作”,怎么自动下载不了了!心态崩了,明明是验证成功了的却又不行了,仔细检查电路之后也没发现什么问题,过了一段时间再去试又可以了,这就很奇怪了。在经过一番查找资料后发现IO2也有一定程度会影响进入下载模式,但是我是没有使用IO2这个引脚的,抱着尝试的心态再打一次板。
验证成功了!在加多一个s8050去控制IO2后每一次下载都非常稳定。
解决方案:
总结一下自动下载要注意的点:
①ch340(串口芯片)需要和主控的TX、RX反接。
②要注意自动下载电路中的s8050(三极管)方向。
③IO2也需要注意其高低电平,一旦为高电平是无法进入下载模式的,建议加多一个NPN在自动下载时拉低IO2。