机智屏补焊ESP32模组刷wifi固件
前言
我买的机智屏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 ,点击安装即可:
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 | rst:0x1 (POWERON_RESET),boot:0x1 (DOWNLOAD_BOOT(UART0/UART1/SDIO_FEI_REO_V2)) |
Hello World
上传blink示例程序顺便加一句hello World,成功运行串口输出如下(不要在意少打了一个“l”)
该步骤目的是利用上传的blink程序向esp32的flash地址0x1000和0x8000写入上面说的bootloader引导程序和flash分区表程序:,此步骤的用户程序是blink,等下我们替换为jzwifi.bin文件就行
(为啥不直接给前两个文件,因为我在esp32 SDK文件夹里只找到了各种bootloader.bin,没有找到分区表.bin,分区表二进制文件估计是每次编译生成的,具体细节我也不太懂,因为我第一次用裸奔esp32模组= =)
ESP32的3个bin文件烧录地址:
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
打开arduino 串口监视器,重启esp32 到正常模式,串口监视器显示如下就大功告成!
测试
搜索wifi
wifiHelper测试
gcode上传测试
速度一般,还行,很OK
后记
😂 终于不用每次打印都跑来跑去插拔U盘了,逃)
- 本文链接: http://oldgerman.github.io/b216a5e8/
- 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!