esp32自动下载原理以及失败原因分析

ESP32自动下载时,通过串口的RTS和DTR控制GPIO0和GPIO2进入下载模式。然而,由于时序问题可能导致下载失败。本文分析了自动下载的原理,提出在EN对地加10uF电容来同步IO0延迟,解决了部分设备的下载超时问题。同时,文章提及IO2在SD卡模式下的特殊考虑。
摘要由CSDN通过智能技术生成

自动下载原理

esp32代码最常用的下载方式是通过串口,也就是TXD和RXD。但只有这两个线还不能完成自动下载。因为需要想办法让esp32进入下载启动模式,而进入下载启动模式的方法是让系统重启,重启时GPIO0和GPIO2保持低电平,这个在官方的文档中有说明。

这边我有一个疑惑,这个拉低的具体时间到底是多少?也就是说reset前多少时间要把GPIO0和GPIO2拉低,同时reset后这个拉低需要保持多久?请注意这个问题,下文会继续讨论,这两个时间关乎到烧录是否能成功。

关于自动reset和自动拉低就需要借用串口的流控,RTS和DTR。流控本身不是给我们用来自动下载代码用的,但是因为可以修改他们的功能,所以就可以人为的控制它们的时序,变成类似普通gpio的功能。官方给出的电路是这样的:

具体三极管原理就不分析了,直接看真值表就可以。可以先给EN一个低电平的脉冲,让系统重启,同时在EN拉高的瞬间让IO0和IO2拉低,这样就能让系统进入下载启动模式。这样似乎完美的解决了自动下载的问题。

遇到的问题

但是在实际使用中&#

  • 23
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值