机智屏补焊ESP32模组刷wifi固件

前言

机智屏github项目地址

我买的机智屏3.5寸不带wifi模组,型号JZ-TS35-V3.1,但是PCB背面留有ESP32-WROOM模组的邮票孔焊盘,于是买了一个ESP32-WROOM-32U,将esp32用热风枪230度焊上:

ESP32-WROOM-32U的好处就是没有多出来的一块PC天线,不影响机智云的外壳安装,(如下方左图)取而代之的是模组右上角的IPX座子,在射频电路的天线几乎都是这种接口,例如路由器,网卡的天线,你只需要买一个是这种接口的2.4G天线接上就有良好的WiFi信号了:

把jzwifi.bin文件放在SD卡的根目录下,重启机智云,会自动升级WiFi固件,就是机智云的STM32F2芯片会将这个文件写到esp32的flash芯片里,但是等了半天还是0%的进度(如上方右图)

所以这是为什么呢??因为esp32模组出厂flash芯片里数据都被擦除掉了,esp32要想运行jzwifi.bin文件,flash芯片还要上传两个文件才行,即bootloader.bin,和custom.bin这两个文件具体叫啥名字不重要,你只要记住它是干啥的就行,等下步骤上传blink程序会自动包含前两个程序(即引导程序和程序分区表),jzwifi.bin文件只是第三个“用户程序”

三个文件的定义如下:

硬件部分

引脚定义

ESP-WROOM-32U模块正反面:

pinout,找的esp32-WROOM-32的,没有屏蔽罩,对应上图正面,注意不要看成背面了

基础外围电路

烧录前,需要飞线以下外围电路:

焊接外围电路

左边的图是4.0寸的机智云板背面,图中红圈中的5个预留引脚和3.5寸SD卡槽下方的5个预留引脚的一样,都引出了上图esp32基础外围电路所需的5个引脚:分别是TX,RX,EN(就是NodeMCU esp8266的Reset按钮,对应GPIO2),BOOT(就是NodeMCU esp8266的flash按钮,对应GPIO0),3V3,GND

在模组四周飞线焊接外围电路的电阻,led,开关,然后将机智云3.5寸SD卡下方的引脚引出杜邦插针

软件部分

安装ESP32 SDK

打开arduino ide首选项,添加arduino ESP32 SDK环境的地址

https://dl.espressif.com/dl/package_esp32_index.json

在开发板管理器中搜索esp32 ,点击安装即可:

20200506232610

esp32的开发板随便选一个,我选的Node32s,只要不选Wrover就行,因为这种esp32模块是带PSRAM(静态随机访问存储器)的,flash空间在cache的映射和不带PSRAM的有点不一样

CPU,flash,晶振频率默认就行,上传速度可以选912600,因为默认的115200波特是在太慢了

TTL烧录器接线

按下图用TTL模块接线:注意TTL烧录器的RX接TX,TX接RX

在arduino ide中打开自动检测到的COM口,我的是COM12

esp32 启动模式

如果 GPIO0 / GPIO2 同时为低电平,则会进入下载模式,等待串口通信信息,GPIO2就是EN引脚

如果GPIO0为高电平,则会进入Flash 运行模式,启动SPI 驱动,并加载Flash中的程序段

刷机模式测试

将esp32 GPIO0下拉再通电,arduino ide 打开COM12的串口监视器,显示如下**“waiting for download”**,就OK,可以随时编译程序上传了

1
2
rst:0x1 (POWERON_RESET),boot:0x1 (DOWNLOAD_BOOT(UART0/UART1/SDIO_FEI_REO_V2))
waiting for download

Hello World

上传blink示例程序顺便加一句hello World,成功运行串口输出如下(不要在意少打了一个“l”)

该步骤目的是利用上传的blink程序向esp32的flash地址0x1000和0x8000写入上面说的bootloader引导程序flash分区表程序,此步骤的用户程序是blink,等下我们替换为jzwifi.bin文件就行

(为啥不直接给前两个文件,因为我在esp32 SDK文件夹里只找到了各种bootloader.bin,没有找到分区表.bin,分区表二进制文件估计是每次编译生成的,具体细节我也不太懂,因为我第一次用裸奔esp32模组= =)

20200506165851

ESP32的3个bin文件烧录地址:

20200506155657

ESP Tools替换blink程序文件为jzwifi.bin程序文件

因为是windows环境,接着到乐鑫或者安信可官网下载esp_flash_download_tools,选择esp32,DIO模式,40MHz晶振频率,32Mbitflash,选择COM口,然后将esp32置于刷机模式,上传主程序jstwifi.bin文件到flash地址0x10000,上传成功右边终端显示:“is sub and send flash finish"就OK

20200506170056

打开arduino 串口监视器,重启esp32 到正常模式,串口监视器显示如下就大功告成!

20200506170301

测试

搜索wifi

wifiHelper测试

20200506172501

gcode上传测试

速度一般,还行,很OK

20200506210031

后记

😂 终于不用每次打印都跑来跑去插拔U盘了,逃)