ESPlane
  • Introduction
  • 语言/language
    • 中文
    • English
  • Operater Guide
    • 01 ESPlane Operater Get Started
    • 02 CFclient User Guid
    • 03 Calibration And Commissioning Methods
    • 04 Flight Mode Introduction
    • 05 Pid Tuning
    • 06 Multi-user Mode
    • 07 Load And Endurance Test
  • Developer Guide
    • 01 ESPlane Developer Get Started
    • 02 Code Architecture And Startup Process
    • 03 Sensor Angle Fusion
    • 04 Sensor Calibration
    • 05 Control System
    • 06 Gyro and Accelerometer MPU6050 Driver
    • 07 Laser Sensor Vl53l1x Driver
    • 08 Barometer MS5611 Driver
    • 09 Magnetic Compass HMC5883l Driver
    • 10 Brushed Motor Driver
    • 11 Optical Flow Sensor Pmw3901 Driver
    • 12 Variable Unified Management
    • 13 Crtp Protocol Introduction
    • 14 Crtp Protocol Library - Cflib
    • 15 Compatible With ESPilot APP
    • 16 Height-hold Mode Development
    • 17 Positon-hold Mode Development
  • Research on Crazyflie
    • 01 Crazyflie Project Preview
    • 02 Crazyflie Source Preview
    • 03 Crazyflie Code Modularization Method
    • Discussion On Private-Improvement Scheme
    • Private-1.0 Code Debug Record
    • Private-Research On Commercial Micro Drone Products
    • Well-Known Drone Open Source Solutions
  • ESP32 Development notes
    • ESP32 Chip Naming Rules
    • ESP32 Pin Resource Allocation And Usage Recommendations
    • 01 ESP32-Hardware Preparation-ESP32-DevKitC V2 board
    • 02 ESP32-Environment Setup-Compilation And Programming
    • 03 ESP-IDF-Directory Structure-Template Engineering Analysis Notes
    • 04 ESP32-Code Debugging-Summary Of Several Debugging Methods
    • 05 ESP32 Event Loop
    • 14 ESP32 SPI Use Memo
    • 15 ESP32 GPIO Use Memo
  • Reference
    • bitcraze.io
    • esp-idf-release-v3.3
由 GitBook 提供支持
在本页
  • 一、概念梳理
  • 1. 芯片/模组/核心板/开发板区别?
  • 二、ESP32 Core Board V2原理图
  • 1. 原理图预览
  • 2. 关键器件介绍
  • 3、如何实现启动模式的自动切换?

这有帮助吗?

  1. ESP32 Development notes

01 ESP32-Hardware Preparation-ESP32-DevKitC V2 board

上一页ESP32 Pin Resource Allocation And Usage Recommendations下一页02 ESP32-Environment Setup-Compilation And Programming

最后更新于5年前

这有帮助吗?

一、概念梳理

1. 芯片/模组/核心板/开发板区别?

开始之前,有必要先梳理一下芯片、模组、核心板、开发板这些名词的含义.因为我们一般会以ESP32为关键字在淘宝搜索商品,搜索的结果往往让人眼花缭乱,如果不清楚这些概念容易入坑,我在第一次购买ESP8266时,就是因为没搞清楚概念,买了一堆模组,需要走一些飞线才能下载程序,很不方便.

ESP32 Core Board V2
  • 开发板:如上图,整个电路板叫做开发板,开发板内集成了USB接口、稳压芯片、USB转UART芯片、ESP-WROOM-32模组、按键和指示灯,只支持正常工作的基本功能,因此也可以叫核心板.更大一些的开发板还会集成LCD、SD卡槽等等.

  • 模组:ESP-WROOM-32是ESP32模组的其中一个型号,来自乐鑫原厂.里面集成了ESP32芯片、Flash、晶振、天线等,是实现通讯功能的基本组成.国内生产ESP32模组的厂家很多,除了原厂还有小米iot、安信可系列模组等.不同的型号模组,在flash容量,天线设计等会有所区别.

  • 芯片:模组和开发板千变万化,但芯片始终出自上海乐鑫,ESP32/ESP8266等芯片也有不同的型号,具体可以查芯片手册,不同型号在RAM等资源配置上有区别.

  • 2. ESP32 硬件参考选型

  • ESP32 H/W 硬件参考

  • 官方详细选型手册

我们在做项目时,优先选择开发板,其次是模组,当然如果有能力搞定天线射频等,也可以选择芯片,可以使产品有更小的尺寸,更高的集成度.

二、ESP32 Core Board V2原理图

1. 原理图预览

2. 关键器件介绍

  • 供电单元:这部分很简单,5v转3.3v,平时调试可以直接使用电脑USB供电.如果使用WiFi功能,需要注意供电问题,毕竟电脑USB输出功率有限,加上劣质线缆可能有损耗,使芯片工作不稳定,直接用5v电源供电最为可靠.另外如果直接使用3.3v电源到引脚上,注意不要反接,因为3.3v输入并没有反接保护.

  • 按键:两个按键分别是复位-EN,启动选择-BOOT,EN外接了上拉电阻,BOOT的外部上拉电阻没有焊接,应该是配置了内部上拉,两个端口低电平有效.启动选择只在芯片复位时被检测一次,复位以后BOOT按钮可以当普通按钮使用.

  • LED:板载的LED在系统通电时常亮,因此无法控制闪烁,做点灯的程序只能再外接LED.

  • ESP32 Module:V2引出了芯片所有剩余关键,有很大的灵活性,但是如果只是使用基本的GPIO功能,要注意避开一些特殊功能的管脚,除非迫不得已.

需要避开的管脚包括:Strapping Pins(GPIO12(MTDI)、 GPIO0、 GPIO2、 GPIO15(MTDO)、 GPIO5)+GPIO13? 具体原因参考 esp32_datasheet_en_3.0 page:10

  • USB转UART单元:由于大多数个人电脑已经取消标准的RS232通信接口,因此与芯片的串口通信需要一个桥接芯片,V2板载的CP2102就是其中之一,其他比较熟悉的还有CH340等芯片.这个芯片除了完成串口通信功能外,还能在串口刷程序时,自动触发芯片进入Download Boot模式,不再需要手动按Boot按钮十分方便.

3、如何实现启动模式的自动切换?

3.1. 硬件设计方案

芯片一般在正常工作前,会检测某些特定管脚(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标准

3.2. 软件设计方案

第1小节,我们在硬件原理图上发现cp2102可以通过设置DTR和RST来触发ESP32的boot和EN.那么DTR和RST如何被触发呢?我会在下一篇文章中会从软件方面继续探究.

ESP32 Core Board V2原理图
USB转串口电路
启动模式触发电路