| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 【ESP32-S3的开发】 -> 正文阅读 |
|
[嵌入式]【ESP32-S3的开发】 |
初识 ESP32-S3文章目录前言ESP32-S3 和 ESP32 一样是一款同时支持WIFI和蓝牙功能,可以说是专为物联网而生的一款Soc,应用领域贯穿移动设备、可穿戴电子设备、智能家居等,在2,4GHz频带支持20MHz和40MHz频宽,和以往 ESP32 不一样的是,蓝牙除了支持BLE以外,目前支持 Bluetooth 5 和 Bluetooth mesh,更多的GPIO口使其能控制的外设达到更多,全速USB OTG支持直接通过USB协议与芯片进行通信 一、ESP32-S3 系列芯片介绍对于ESP各个系列的芯片介绍,官方网站提供了最详细的参考:https://www.espressif.com/zh-hans/products/socs 1.模组命名与内置芯片对应关系其中根据用户需要的资源或方案,可以在该网站中,选择合适的产品,以下,则是ESP32-S3芯片对应不同大小的 FLASH 和 PSRAM 进行封装的模组命名和内置芯片的对应关系 2.芯片命名规则普及一下手册中讲到的 SPI、Dual SPI 和 Quad SPI SPI:标准SPI,是一种同步串行通信协议,支持一主多从,主设备启动与从设备进行同步通信,完成数据的交换。SPI是一种高速全双工同步通信总线,标准的SPI仅使用4个引脚(信号):CLK , CS , MOSI , MISO 对于 SPI FLASH 而言,用于进行数据传输的模式就有以上三种类型,对应着3线、4线、6线的传输方式,而相同时钟周期下,线的数量和传输速度成正相关 以上,为什么要介绍这三种 SPI FLASH 接口呢?玩过 ESP 系列的大伙应该都知道,这是 ESP 模组封装的惯用做法,ESP32-S3 芯片内置有 512 KB SRAM(用于数据和指令存储)、384 KB ROM 存储空间(用于程序启动和内核功能调用),对于 FLASH 则支持使用外挂的形式,持多个外部 SPI、Dual SPI、 Quad SPI、Octal SPI、QPI、OPI flash 和片外 RAM 二、硬件介绍接下来的硬件介绍 ESP32-S3-DevKitC-1 板,都基于当前官方连接:https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html 1.板载模组外设
2.硬件设计① Strapping 管脚这些管脚是和芯片复位状态有关的引脚,在芯片的系统复位(上电、RTC 看门狗、欠压、模拟超级看门狗 、晶振时钟毛刺检测)等复位过程中,Strapping 管脚对自己电平采样并存储到锁存器,并一直保持到芯片掉电或关闭 GPIO0:决定系统启动模式(0:下载模式 | 1: SPI启动模式) 当eFuse的 EFUSE_DIS_USB_SERIAL_JTAG 和 EFUSE_DIS_USB_OTG 同时为0,ROM Code打印至 USB Serial/JTAG 控制器,否则打印至 UART,此时 GPIO46 与 EFUSE_UART_PRINT_CONTROL 一起控制 ROM code 打印: ② 上电时序要求如果在验证电路的过程中,发现启动模式产生异常,优先使用示波器检测当前的上电 Strapping 管脚电平以及时序波形是否满足要求 ③ 设计注意事项I. 原则上不能把 Strapping 引脚用于其他地方,否则会引起启动状态的异常 三、环境搭建1.ESP-IDF 框架概念ESP-IDF 是乐鑫官方的物联网开发框架,适用于 ESP32、ESP32-S 和 ESP32-C 系列 SoC 2.支持的开发工具和IDE环境3.环境搭建注意事项下面先说一下环境搭建的注意事项,在如何搭建的这一部分,如果觉得说的不够详细,可以参考一下官方环境搭建教程: ① 推荐使用的 IDE 环境先说一下本人,目前在 Linux 系统下,使用 GNU Make 或 CMake 构建系统对应的 ESP-IDF(其中包括ESP8266、ESP32、ESP32S3 的 esp-idf ,另外还有乐鑫音频框架 esp-adf ),而其中 esp-idf 也有几个版本,为了环境支持各个版本,能随时切换,所以选择在 Linux 系统下进行SDK下载、编译环境的单独安装,并没有选择诸如 Eclipse,VSCode 插件等 IDE。而是通过把SDK下载到不同的文件夹进行管理。
II.获取ESP-IDF(做好文件夹管理好自己的SDK(选择SDK克隆路径,通过cd指令进入用户的路径))
III.设置工具(进入对应 esp-idf 文件夹,打开终端键入)
可一次性为所有支持的目标芯片安装工具,当然也可以选择对单独的芯片进行安装
如果经常更换SDK,可以按照当前方法进行设置↓
再进入相应的SDK,再次执行 III、IV操作,即可完成 SDK 切换 ② 其他的 IDE 环境其他的 IDE 环境作者接触过的 VSCode 插件,可以直接在拓展栏下搜索 esp,即可搜出 至于Eclipse下的集成开发环境,安装SDK和环境变量的设置不难,用户也可以尝试使用 ③ 验证安装环境和工具首先进入SDK提供的案例工程,设置当前硬件所使用的MCU,进行编译,当然如果你有其他的硬件配置需要更改,可以通过idf.py menuconfig 或者 make menuconfig 进行界面的配置
烧录和监视串口输出可以参考文章下方的内容 ④ 依靠 example 文件夹下的内容创建自己的工程模板拷贝example文件夹下的工程到其他文件夹,由于我们在上面已经定义好了esp-idf 的环境变量,所以最后在编译项目工程时,都会依靠项目工程下的 CMakeList 找到环境变量中的 esp-idf ,继而链接上我们的组件等等 为方便对工程文件进行查看和编辑,我们可以使用 VS Code ⑤ VS Code 工程文件配置由于官网下载的SDK还没完善,当前所有的编译工具和调试工具等,都只支持调用 python 指令, 在VS Code环境下添加工程时(如果工程有自定义的头文件路径),会经常发生无法打开源文件 xxx.h,这是由于VSCode这个编辑器下需要安装C/C++的扩展工具,并且有指定头文件的路径,才能被索引打开。
III.完成头文件路径的添加后,可以重启VScode,便可以定位其头文件 ⑥ 新项目的头文件添加方式I.新建的部件需要在其文件目录下建立CMakeList.txt,并把其引用的源文件、头文件、esp-idf 组件等以键值形式添加至其中 区分前面第⑦点讲的内容,是把头文件索引告诉VS Code,使它能快速帮我们定位到 用户所包含的头文件,但实际上,VS Code 和编译器是完全不同的东西,我们需要通过第⑧点的操作,告知编译器我们所需要链接的内容和组件,才能实现正常编译 烧录指令启动 idf.py 脚本,-p 指定相应USB接口,flash 执行烧录操作,默认烧录速率 460800
另外,用户可以自定义烧录速率,只需要在 flash 参数之前,加上一项 -b ,后面跟上指定波特率
监视指令启动 idf.py 脚本,-p 指定相应的USB接口,monitor 执行监视操作,默认监视波特率 115200
总结串口权限问题如果烧录或者监视过程中遇到这种失败的错误,首先需要检查是否串口是当前的串口号,是否有串口的操作权限,可直接将串口权限设置至“可读可写可执行”最高权限
|
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/9 15:35:00- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |