1、摘要
ESP32系列处理器一般会需要采用串口来下载代码,因此在其设计中都会保留一个USB-TTL串口电路,查看乐鑫官网的参考设计,基本上是采用CP2102这颗USB转TTL串口芯片,但在本设计中,我会用另一颗常见的国产芯片CH340来进行设计,这么做基于3个方面的考虑:1、支持国货;2、手头有现货;3、在以前的设计中用过,原理图不用重新绘制。
2、设计过程记录
第1步,阅读官方参考设计原理图。
如图2-1-1所示,乐鑫官方ESP-Drone参考设计原理共分为3个部分:1、USB连接器部分;2、CP2102芯片及周边电路;3、控制逻辑转换电路。下面对这3部分电路做一个简单分析:
如图2-1-2所示,USB接口连接器部分的电路由J1、U1、R1、R3组成,J1就是一个Micro B型连接器,根据USB标准定义进行连线即可,在此就不做过多解释了。U1是ST公司的一颗USB接口的防静电保护芯片,可以对有效防止USB接口受静电冲击而损坏主控芯片,可参考官方的参考电路进行设计即可。USB接口如果不用这颗芯片,在大部分情况下也不会有什么问题,但终归有受静电冲击而导致主控芯片损坏的风险,所以在设计USB接口电路时,还是建议加上此类防止静电冲击的保护芯片。
R1、R3是二颗0欧姆的电阻,看似没有必要使用,但在大部分情况下还是保留此二颗电阻比较好,这二颗电阻必要时可以用来调整USB接口D+、D-的差分阻抗,尤其在印制板采用2层板设计时,或许在极端情况下,需要进行阻抗匹配调整,关于USB接口的差分阻抗问题,请自行查找资料了解一下,在此不做进一步描述了。
如图2-1-3所示,这是一个内部由二个NPN型三极管组成的集成电路,在此实现控制逻辑转换的作用。从目前的电路来看,控制逻辑转换电路的工作原理很不直观,请看另外一个由二个三极管组成的同样功能的控制逻辑转换电路,那么就很容易理解了。
如图2-1-4,只要理解了三极管的工作原理,就很容易理解控制逻辑转换的工作原理,注意,在CHIP_PU、GPIO端口上需要有上拉电阻或在主控芯片内部将端口配置成上拉模式,工作原理分析如下:
假定DTR设置为高电平,RTS设定为低电平,三极管Q1将导通,因为Q1的集电极电流会在CHIP_PU端口的上拉电阻二端产生电压差,选取合适的上拉电阻的值,可让上拉电阻二端产生的压差接近于电源电压,那么Q1的集电极将输出逻辑低电平,也就实现了DTR输入逻辑电平的转换。
第2步,绘制USB接口原理图
(1)绘制USB接口Micro USB B型连接器部分电路、CH340 芯片周边电路
如图2-2-1,是采用CH340芯片设计的USB转TTL串口的原理图,该电路与乐鑫官方参考设计相比较,除了采用的接口芯片不同外,在USB接口连接器部分也有轻微的不同:在USB接口连接器的外壳接地端与电源地之间接了一颗1M的电阻,这个电阻具有对静电进行缓慢释放的功效,具体来说,当USB接口的连接器的金属外壳突然聚集起大量的静电电荷时,因为与系统的地之间有一颗1M的电阻,那么外壳瞬间对地放电的电流就会比较小,从而不会引发系统地端的参考电平发生突变,可以有效避免系统地参考电平不稳导致的系统电源对地压差变化而引发的系统复位、芯片超过耐压击穿等现象。
·(2)绘制串口控制逻辑转换电路
如图2-2-2,是绘制完成的串口控制逻辑转换电路,为为什么要这个串口逻辑控制电路,是由ESP32系列处理器的下载代码方式所决定的,ESP32系列处理器在复位启动后,会首先运行一个被称之为Bootloader的程序,在这个程序中,它会检测IO0端口的状态,如果端口IO0端口为低电平,那么它会进入串口下载模式,从PC端接收特定格式的程序代码文件,并将此程序代码烧录到系统的Flash存储器中。串口的DTR、RTS状态由PC端的程序来进行控制,用于给ESP32系列处理器的Bootloader程序提供工作指令。
(3)绘制ESP32-S2处理器自身USB接口电路
如图2-2-3,为绘制完成的ESP32-S2处理器自身USB接口电路,通过该电路可以使用ESP32-S2处理器内置的USB-JTAG接口,根据官方的资料介绍,该USB-JTAG接口与OpenOCD配合使用,可以使用gdb工具实现对ESP32-S2处理器的源码级别的程序调试功能。
至此,绘制USB-TTL串口下载电路和ESP32-S2芯片内置USB接口电路的工作任务已经完成。
2021.11.16