合宙ESP32C3 更换Flash调整lua固件教程分享

合宙ESP32C3 更换Flash调整lua固件教程分享


  • 📌合宙官方的固件编译指南:https://wiki.luatos.com/develop/compile/ESP32C3.html
  • 🎈合宙给出的更换flash的文档说明:https://wiki.luatos.com/chips/esp32c3/change_flash.html?highlight=flash
  • 合宙ESP32C3原理图:https://cdn.openluat-luatcommunity.openluat.com/attachment/CORE-ESP32-C3%E8%AE%BE%E8%AE%A1%E5%8E%9F%E7%90%86%E5%9B%BE_V1.2.pdf
  • ✨我主要来补充一下在成功编译之路上的坑坑洼洼,官方的教程有讲的就一比带过,或划重点说明。
  • 🎉根据原理图来看,如果追求更快的spi flash 访问速度,可以将2线的DIO flash模式改为4线的QIO模式,需要占用GPIO12 GPIO13引脚,断开板子上的D4、D5上的led引脚。
  • 🌿原DIO连线方式:
    在这里插入图片描述
  • 🌿QIO连线方式:
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

📓更换Flash调整固件步骤

  1. 将ESP32C3项目clone到与LuatOS主仓库的同级目录。
    在这里插入图片描述

  2. 更新分区表文件:partitions.csv

默认项目下面有3个分区表配置文件,分别是默认的4MB,另外的8MB、16MB。根据个人更换flash大小,选择对应的分区表文件。8MB和16MB的分区表文件改成默认的原来4MB的分区表文件名partitions.csv在这里插入图片描述
我这里将16MB的改成默认的partitions.csv文件后的内容是这样的。你不需要修改文件内容,安装官方给出的教程是:只需将原来的默认的4MB的partitions.csv文件移走或删除,然后根据自己实际更换的flash容量重命名对应的容量分区表名字即可。实际上是需要安装原来4MB的分区表配置文件来调整现有的8MB或16MB的分区表配置文件的。

  • 16MB修改分区表配置前的内容:
    在这里插入图片描述
  • 修改后的16MB的分区表内容:
    在这里插入图片描述
  • 如果不按照上面的分区表修改,将会导致最后生成的Soc文件无法上传Lua脚本。

在这里插入图片描述

  • 修改Soc_tools文件夹下的json文件内容
    在这里插入图片描述

  • 打开ESP-IDF命令提示符窗口
    在这里插入图片描述

  • 通过菜单命令定位到项目文件夹;cd C:\Users\Administrator\Desktop\Luat_project\LuatOS-ESP32
    在这里插入图片描述

  • 设置esp32型号:idf.py set-target esp32c3
    在这里插入图片描述

  • 调用idf.py menuconfig修改flash配置文件信息
    在这里插入图片描述

  • 通过键盘方向键移到“Serial flasher config”回车进入
    在这里插入图片描述

  • 移动到flash size选项,根据自己更换的flash大小选择8MB或者16MB
    在这里插入图片描述
    在这里插入图片描述

  • 然后按s进行保存,弹出的对话框回车确认
    在这里插入图片描述
    在这里插入图片描述

  • Q键退出设置窗口,回到命令提示符窗口

在这里插入图片描述

  • 接下来执行idf.py build编译项目

由于编译实在太长了,我就不在这里重复演示放图了。
在这里插入图片描述

  • 编译完成的信息如下:在这里插入图片描述

打包生成Soc文件

  • 继续接着上面编译完成的命令提示符窗口,输入cd tools,定位到C:\Users\Administrator\Desktop\Luat_project\LuatOS-ESP32\tools这个文件夹下
    在这里插入图片描述- 执行"pip install -r .\requirements.txt"命令:用来安装所需打打包插件。

在这里插入图片描述

  • 打包生成Soc烧录文件程序“python .\esp32v3.py -t esp32c3 -p”命令
    在这里插入图片描述

到这里已经大功告成!

⛳分享16MB的打包好的Soc文件

包含2个:一个是标准版的,一个带USB调试输出的

链接:https://pan.baidu.com/s/1n5nQnhcnsyP00fk-j3vFXg 
提取码:prr8

⛳合宙ESP32C3开发板注意事项

  • 🌿外置的SPI flash是采用2线 DIO模式的,在开发使用时,注意这一点。在基于Arduino开发环境下使用,需要将flash模式设置为DIO模式,否则烧录后无限重启,在基于VSCode Platform IO环境下开发选择airm2m_core_esp32c3型号,或者自定义个开发板类型的json文件到固件目录下,也可以在现有的C3型号的.json文件中修改对应的C3 flash模式。
  • 🔖VSCode Platform IO环境下路径:C:\Users\Administrator\.platformio\platforms\espressif32\boards

📝使用Arduino IDE烧录程序测试

  • 🛠参数设置:
    在这里插入图片描述
void setup() {
  Serial.begin(115200);
  Serial.println("Hello ESP32C3!!");
 pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(12, HIGH);
  digitalWrite(13, LOW);
  delay(1000);
  digitalWrite(13, HIGH);
  digitalWrite(12, LOW);
  delay(1000);
  Serial.printf("getChipRevision= %s \n",ESP.getChipModel()); //ESP32-C3
  Serial.printf("getChipCores= %d Core\n",ESP.getChipCores()); // 1
  Serial.printf("getCpuFreqMHz= %d MHz\n",ESP.getCpuFreqMHz()); //160
  Serial.printf("getSketchSize= %d bytes\n",ESP.getSketchSize());//246144 bytes
  Serial.printf("getFreeSketchSpace= %d bytes\n",ESP.getFreeSketchSpace()); 
  uint32_t flash_Size = ESP.getFlashChipSize(); 
 Serial.printf("getFlashChipSize= %d \n",flash_Size); //16777216 
 Serial.printf("getFlashChipSpeed= %d \n",ESP.getFlashChipSpeed());//80000000
 FlashMode_t flash_Mode = ESP.getFlashChipMode();
 Serial.printf("Flash mode:  %s\n", (flash_Mode == FM_QIO ? "QIO" : flash_Mode == FM_QOUT ? "QOUT" : flash_Mode == FM_DIO ? "DIO" : flash_Mode == FM_DOUT ? "DOUT" : "UNKNOWN"));
 delay(1000);
}
  • 🧾串口打印
    在这里插入图片描述
  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值