1.ESP32硬件和固件
淘宝搜ESP32模块,20-50元都有,自带usb口,即插即用.
固件下载地址:MicroPython - Python for microcontrollers
2.烧录方法
为简化入门难度,建议此处先使用带GUI的开发工具THonny,记得不是给你理发的tony老师.
烧录的入口是:
后期通过脚本一次型生成和烧录(我的分区表里,app固件的起始地址是0x410000,该区域的长度是0x3f0000 )
rm -rf build/app.bin
esptool.py -p /dev/ttyUSB1 -b 460800 read_flash 0x410000 0x3f0000 build/WSC3030-GZSJ.bin
esptool.py --chip esp32 --port /dev/ttyUSB1 erase_flash
esptool.py -p /dev/ttyUSB1 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 8MB 0x1000 build/bootloader.bin 0x10000 build/micropython.bin 0x8000 build/partition-table.bin 0xd000 build/ota_data_initial.bin 0x410000 build/app.bin
3.自定义固件编译与烧录
在我的项目里,使用了8M的外部flash和4M的SPIRAM,因为项目开发到后期,内存消耗比较大,特别是TLS加密通讯和蓝牙,都是很消耗内存的,自带的RAM常常会跑崩.配置界面如下:
关于SPIRAM的配置在:→ Component config → ESP32-specific → → Support for external, SPI-connected RAM → SPI RAM config → Type of SPI RAM chip in use选择Auto-detect
如果要配置使用不同的SPI时能脚和数据引脚,可以在
PSRAM clock and cs IO for ESP32-DOWD --->里设置不同的引脚,跟你的硬件设计一致.
关于分区表的配置在:→ Partition Table
可以选择默认的分区表,也可以自己做一个,我选择自定义的分区表csv文件:partitions-8MiB-ota2.csv,其中的分区设置如下:
关于SPI Flash大小的配置在:→ Serial flasher config→Flash size
配置好之后运行make编译和直接下载:之所以不使用gui下载,是因为很多配置项要设置,所以先用idf.py下载后,出现了提示,你就知道应该如何配置了.
make clean
make MICROPY_BOARD=GENERIC_SPIRAM
#编译完后直接命令行下载
idf.py -p /dev/ttyUSB1 flash
比如在idf下载之前,它会提示你:
esptool.py -p /dev/ttyUSB1 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 8MB 0x1000 build/bootloader.bin 0x10000 build/micropython.bin 0x8000 build/partition-table.bin 0xd000 build/ota_data_initial.bin 0x410000 build/app.bin
这样,几个固件的位置和地址你就知道了.
完成硬件,固件的准备,我们下一篇文章将开始讲述基础的模块功能脚本,你的程序基本是这些模块脚本的拼图,所以掌握它们,就70%了.