0.前言

之前一直进行软件编程方面的学习与应用,但所有软件都是基于一定的硬件基础,所以想通过做些比较有意思的小项目来入门硬件的设计与应用。看到ESP模块在物联网方面的应用比较多,于是准备设计一个许多人都开源的ESP+显示屏的天气时钟。

这个小项目主要涉及到ESPWIFI模块、CH340自动下载电路、显示屏显示等。因此这里我把设计这些电路有关的资料和个人理解整理分享一下,过程中有错误也希望各位大神指点。

1.硬件部分

1.1ESP-12F WIFI模块

我选择的是安信可的ESP-12F,这个模块基于乐鑫ESP8266EX的低功耗UART-WiFi芯片模组中的一员。
模块的一些特点:
1、核心处理器是超低功耗 32 位微型 MCU。
2、主频支持 80 MHz 和 160 MHz。
3、支持 RTOS,集成 Wi-Fi MAC/ BB/RF/PA/LNA,板载天线。
4、等等
(详细可见链接)

我们最关注的也就是这个模块的每个引脚及其功能



硬件原理图设计的过程中需要注意的是:
1、VCC引脚接3v3,EN引脚注意使能。
2、该模块的下载模式以下有两种 :
(分别对应的相应模式的引脚状态)
因为这个小项目涉及到的引脚数量较少,所以为了避免引脚上的冲突,我在其他外设连接的设计过程中避开了这两种下载模式涉及到的引脚。
3、内存情况
(1)、ESP8266EX片上没有programmable ROM,用户程序存放在SPI Flash中。
(2)、目前该模组外接的是4MB的SPI Flash。
4MB的Flash对于我们这个小项目的存储是足够的了,所以选择不外加存储。

最终该部分的原理图为:

这里GPIO0加了BOOT按键是为了防止下面设计的CH340模块有问题。

1.2 CH340下载电路

CH340是一个USB总线的转接芯片,实现USB转串口或者USB转打印口。

1.2.1 CH340选型

CH340总共有CH340G、CH340C、CH340B、CH340K、CH340N、CH340E、CH340T、CH340R八种型号,
不同型号区别:
CH340C、CH340N、CH340K和CH340E以及CH340B内置时钟,无需外部晶振。
CH340B 内置EEPROM用于配置序列号,以及部分功能可定制等。
CH340K 内置三只二极管用于减少独立供电时与MCU的I/O引脚之间的电流倒灌。
CH340K 的底板是0#引脚GND,是可选连接;3#引脚GND是必要连接。
CH340E 如果批号末3 位大于等于B40,则可为6#引脚加4.7KΩ下拉电阻将其改为DTR#。
CH340C 如果批号4开头且末3位大于B40,则可为8#引脚加4.7KΩ 下拉电阻将其改为DTR#。
CH340R 提供反极性TXD和MODEM信号,已停产。

我在这里因为之前用过CH340C,选择的是CH340C,其它型号的芯片也可以自行选用。

      CH340 的USB收发器按 USB2.0 全内置设计,UD+和UD-引脚建议不要额外串接电阻。

这个下载电路的设计是我做这个小项目中花费时间最长的原因有以下几点:
1、前面说到ESP-12F有两种下载模式。
2、下载过程中每次都需要去匹配ESP的下载时序。

所以怎么规划这个下载过程中的时序就成了解决这个下载电路的关键。根据ESP8266芯片手册及资料显示的下载流程,要保证必须在GPIO0为低电平的状态下,复位芯片,才会进入USART下载模式。
所以整个电路的时序逻辑就是:
GPIO0引脚拉低——>RST引脚拉低——>短时间延时——>
RST引脚拉高——>进入BOOT模式——>下载固件——>
下载完成——>GPIO引脚拉高——>RST引脚拉低——>
延时——>进入FLASH运行模式

可以看到数据手册中的引脚描述:DTR#引脚是MODEM联络输出信号,数据终端就绪,低(高)有效,在USB配置完成之前作为配置输入引脚,可以外接4.7KΩ的下拉电阻在USB枚举期间产生默认的低电平。RTS#引脚MODEM联络输出信号,请求发送,低(高)有效。这两个MODEM联络信号是由计算机应用程序控制并定义其用途的,在软件下发点击下载按钮后,通常会给DTR#拉低、RTS拉高,然后延时一段时间后,拉高DTR#,RTS#恢复到低电平。(见引脚号15、16)

所以得到四个引脚连接的逻辑电路如下:

及当DTR=1,RTS=0时,RST复位引脚拉低,反之GPIO0引脚拉低。这样,在点击下载按钮后,CH340C芯片的DTR处于低电平,RTS处于高电平,此时ESP8266的GPIO0被拉低,复位RST信号为高,ESP8266进入下载模式,CH340C的DTR和RTS电平翻转后,RST为0,GPIO0变1,ESP8266进入Flash运行模式,程序正常运行。这样就实现了ESP8266自动下载。

我的下载电路模块设计为:

1.3 屏幕

屏幕的选择就有很多种选法了,这里借鉴了别人的屏幕选择,选择的是晶力泰公司型号为JLT1501A的1.54寸屏幕。
其引脚与功能为:


这里每个引脚的功能已经很详细了,就不再说明了。
最后屏幕模块的引脚接线图如下:

2.软件部分

待更新。

3. 参考的相关资料与文献

CH340芯片手册
ESP8266芯片手册
安信可ESP12F模块手册
大阡的CSDN相关文章-ESP8266自动下载电路分析
以及其他相关博客

ESP8266+CH340下载电路+LCD显示屏显示天气时钟相关推荐

  1. DDR200T TFT - LCD 显示屏 显示图片 NucleiStudio 蜂鸟E203 详细教程 RISC-V

    DDR200T TFT - LCD 显示屏 显示图片 NucleiStudio 蜂鸟E203 详细教程 RISC-V 前言 IMG2LCD软件生成RGB565格式图片 使用取模软件对图片取模 实验结果 ...

  2. FPGA实现LCD显示屏显示彩条

    目录 总体设计 读显示屏ID 读显示屏ID代码 时钟分频 时钟分频代码 LCD显示 lcd显示模块 LCD驱动模块 lcd驱动代码 顶层模块 顶层模块代码 总体设计 系统总体分为五个模块,分别是:rd ...

  3. esp8266加0.91寸oled显示屏制作天气时钟

    前言 上两周做了个客制化键盘,将esp8266改在键盘里面了显示始终天气等信息,演示视频看我B站视频:200块改的键盘,没错,你是来听歌的,五分钟剪的视频. 键盘制作教程在最后的参考资料里,自行查看. ...

  4. 【Arduino】TFT LCD显示屏显示gif小电视太空人动图(基于Arduino框架ESP8266/ESP32、TFT_eSPI库、使用python脚本GIF转十六进制文件)

    前言 ​ 之前使用ESP32 来控制TFT屏幕显示动图时,找到现有的工具,需要先将动图gif格式一帧帧转为jpg格式,再将一帧帧的jgp转为hex十六进制格式,整个过程好麻烦.现用python写了脚本 ...

  5. 测试CH340C的功能,制作MicroPython ESP8266,ESP32下载器

    ▌01 CH340C USB-UART芯片 CH340C 是沁恒公司的USB-UART的转换芯片.在 CH340E USB转串口 IC测试电路 测试了CH340E的基本功能.为了制作 ESP8266以 ...

  6. micropython lcd触摸屏显示中文_基于Micropython的天气显示 进程帖

    本帖最后由 michael_llh 于 2019-4-17 10:06 编辑 更下项目的进程哈! 项目的思路很简单,就是从网上获取天气信息,然后进行显示! 很尽量把过程写清楚,方便大家的交流和学习. ...

  7. 关于ESP8266自动下载和CH340的几件事

    最近在玩ESP8266,做了些东西,比如考研倒计时器.网络闹钟.网络灯(用手机控制亮度).气象站等等. ESP8266本身挺简单的,倒是这个自动下载电路,我还是第一次玩,以前玩51也用过串口下载,都是 ...

  8. 显示农历天气时钟小部件下载_文字云时钟安卓版下载|文字云时钟app下载_v1.0

    文字云时钟是一款流行便捷简洁时钟服务软件,为用户提供桌面时钟.数字时钟.悬浮时钟.秒表计时等多种功能,喜欢的朋友赶快点击下载吧! 软件介绍 文字云时钟word clock软件是一款生活实用的文字时钟. ...

  9. 基于STC89C51单片机,CH340芯片的下载电路

    前几天看到了卓晴公众号写的三篇关于STC系列单片机的下载电路,然后结合了其他的文章,对下载电路有了更加深入的了解,在这里我梳理一下自己的学习过程,附上完整的资料,方便日后查看,也方便有兴趣的同学交流讨 ...

最新文章

  1. AlphaGo首席研究员亲授!10张PPT介绍10大强化学习黄金法则!
  2. 软件级负载均衡器(LVS/HAProxy/LVS)的特点简介和对比
  3. 半波对称振子方向图_第一讲 天线的方向图(下).pdf
  4. UWP 保存用户设置
  5. 类和对象之Scala程序
  6. WavePad如何在音乐文件上录制声音
  7. 数据处理利器python与scala基本数据结构对比分析1-大数据ML样本集案例实战
  8. echarts大屏模板_大屏数据展示模板智慧城市
  9. android rs232串口协议,RS232串口协议详解-在路上.PDF
  10. java 重定向和转发的区别
  11. 微型计算机原理及应用 阶段作业,微机原理及应用第三次作业
  12. 5000系列组装拆卸单成本
  13. akuna capital oa
  14. linux各个文件夹,linux各个目录文件夹含义
  15. Win10 桌面回收站右键没有“清空回收站”选项怎么解决
  16. 《韩非子》——《孤愤》
  17. mac 高清壁纸推荐
  18. win7下maven配置+intell IDEA中多maven(导入、配置)运行综合
  19. 【Promise】自定义 - 手写Promise - Promise.all - Promise(executor)
  20. 11.0_[Java 继承]-继承/重写/抽象类/抽象方法/ final 修饰符

热门文章

  1. 关于el-tree树形结构的理解
  2. Vue开发入门(二) | 说说Vue全家桶有哪些~
  3. gitee 从 拉取新分支到本地_git fetch 的简单用法:更新远程代码到本地仓库
  4. 如何找回微信删除或隐藏掉的群聊(很久之前参与过的群)
  5. android view clip,ClipView 自定义 RadiusView,包含常用的 Layout 和 View,方便扩展 @codeKK Android开源站...
  6. 计算机网络-DHCP
  7. python来判断三角形的性质
  8. 10、H3C接入交换机配置管理地址
  9. Linux 密码复杂策略设置
  10. RAD Studio 11中文发布会录像