ESP8266家族的小弟ESP01上手试玩(1)
乘着物联网的东风,中国的安信可(AI-Thinker)推出的ESP8266系列可是火了一把。
所谓物美价廉,花很少的钱就能让你的老爷车51单片机系统插上无线的翅膀,真的是带你zb带你飞。。。
其实不仅仅是51,AVR/STM甚至Aduino系列都能鸡犬升天。
说了这么多废话,这篇文章不是教程,只是记录一下上手esp01时掉过的坑以及怎么爬出来的。。。
一定要进入flash模式!!一定要进入flash模式!!一定要进入flash模式!!
不然无法烧录。
进入方法 GPIO0下拉CH_PD上拉 的状态下reset,重新上电就行。
■ ■ ■ 重要!!!! ■ ■ ■
ESP01 烧录这个模块的时候,我最初直接用USB转串口模块直接供电,最后烧录是成功了但是无限重启,各种奇怪的现象
最后,用两节5号电池单独给模块供电(一定要跟USB串口模块共地,否则串口不能工作)后解决了。
原因是电脑USB口驱动电流太小,实测ESP01上电电流达到200ma,直接把电源电压拉低到1.几伏特。模块当然无法工作。
事后仔细查看了我用的USB转串口模块上使用的稳压芯片662K,这个芯片最高输出电流只有250ma,ESP01启动时需要200多ma的电流确实比较吃力。
以后再购买USB转串口模块的时候可以注意一下输出电流的参数,大一点比较方便。
后来又自己用输出电流800ma的LM1117T来供电,没有问题了。(注意尽量避免面包板跟杜邦线多次转接,会影响正常启动的)
总结,电源很重要。奇怪的问题大多跟电源有关。
Flasher的设置
■DIO
■波特率选115200(注意,这里选的波特率并不是烧录完成以后的系统的默认波特率,只是烧录时使用的波特率而已,大一点就快一点)
■Flash大小可以用下面的esptool工具查看,同样需要先进入flash模式(GPIO0下拉CH_PD上拉)
1
esptool.py -p COM5 flash_id
※为了安装这个tool,需要先安装python27以上,然后再python里安装依赖包 setuptools / pyserial ,最后才能安装esptool成功。
安装顺序:
1 - python27 装完以后吧python安装目录以及python/script目录一起加入环境变量path
2 - 进入文件夹 ./pythonLib/
1
2python ez_setup.py install (必须,安装pyserial用)
python get-pip.py install (非必须,只是为了方便以后用pip安装python库)
3 - 进入文件夹 ./pyserial-3.2.1/
1
python setup.py install
4 - 进入文件夹 ./esptool-master/
1
python setup.py install
运行时需要进入安装的目录。
常用命令 (COM5根据实际情况修改)
擦除flash :
1
esptool.py -p COM5 erase_flash
查看芯片信息 :
1
esptool.py -p COM5 flash_id
详细命令: [详细命令](https://github.com/espressif/esptool "详细命令")
■esp_init_data_default.bin 烧录文件的烧录地址需要用到flash大小的信息。(这个data可以不烧录)
https://nodemcu.readthedocs.io/en/master/en/flash/
SDK Init Data
0x7c000 for 512 kB, modules like most ESP-01, -03, -07 etc.
0xfc000 for 1 MB, modules like ESP8285, PSF-A85, some ESP-01, -03 etc.
0x1fc000 for 2 MB
0x3fc000 for 4 MB, modules like ESP-12E, NodeMCU devkit 1.0, WeMos D1 mini
0x7fc000 for 8 MB
0xffc000 for 16 MB, modules like WeMos D1 mini pro
See “4.1 Non-FOTA Flash Map” and “6.3 RF Initialization Configuration” of the ESP8266 Getting Started Guide for details on init
■烧录完成后,去掉GPIO0的下拉,重新上电.
第一次上电可能会看到 Formatting file system. Please wait…
这种消息反复出现,不要以为又失败了无限重启,这是正常的,反复几次以后就进入NodeMCU系统了。