赞
踩
开始之前,有必要先梳理一下芯片、模组、核心板、开发板这些名词的含义。因为我们一般会以ESP32为关键字在淘宝搜索商品,搜索的结果往往让人眼花缭乱,如果不清楚这些概念容易入坑,我在第一次购买ESP8266时,就是因为没搞清楚概念,买了一堆模组,需要走一些飞线才能下载程序,很不方便。
我们在做项目时,优先选择开发板,其次是模组,当然如果有能力搞定天线射频等,也可以选择芯片,可以使产品有更小的尺寸,更高的集成度。
需要避开的管脚包括:Strapping Pins(GPIO12(MTDI)、 GPIO0、 GPIO2、 GPIO15(MTDO)、 GPIO5)+GPIO13?
具体原因参考 esp32_datasheet_en_3.0 page:10
芯片一般在正常工作前,会检测某些特定管脚(boot,有些芯片有多个boot引脚)的电平,来决定运行于何种模式。ESP32在复位之前如果 GPIO0 / GPIO2 同时为低电平,会进入下载模式,等待串口通信信息。如果我们拿到的是模组,下载程序时需要在复位前把这两个引脚拉低,下载完成后,再将GPIO0恢复高电平。
如果拿到的像v2这种带有cp2102的开发板,这个工作可以省去,下载程序时,会自动切换到下载模式,非常方便。这一节我们先讨论一下这种机制的硬件实现。
CP2102大部分的管脚是无效端口,与ESP32直接相连的有RXD、TXD,分别对应串口收发,DTR和RTS为串口的流控位,做了一个逻辑处理,然后输入到ESP32管脚上。可以通过三极管的导通性分析,注意在两个三极管都截止时,EN和IO0因为有上拉电阻,所以都为1。
效果就是当DTR有信号(=1),RTS无信号时(=0),硬件复位(EN=0).
当DTR无信号(=0),RTS有信号时(=1),相当于BOOT按键被按下(IO0=0).
RTS、CTS、DSR和DTR为控制信号,其含义参考: EIA RS-232-C标准
第1小节,我们在硬件原理图上发现cp2102可以通过设置DTR和RST来触发ESP32的boot和EN。那么DTR和RST如何被触发呢?我会在下一篇文章中会从软件方面继续探究。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。