ESP32开发综述

ESP32简介

相信大家都听说过ESP8266,这款非常火的wifi芯片;估计很多人都接触过以ESP8266为核心的无线模块,用过AT指令等

ESP32是乐鑫公司推出的另一款芯片,主要特性有:

  • 2.4 GHz Wi-Fi
  • 蓝牙
  • 高性能 Xtensa® 32 位 LX6 双核处理器
  • 超低功耗协处理器
  • 多种外设

ESP32的功能更加强大,在乐鑫官网上,可以下载到各个芯片的技术参考手册、数据手册等,我逛了下,主要有这几款类型芯片:
技术文档链接:点这里

  • S系列:S2、S3

双核处理器,旗舰产品,支持一些AI向量运算等,是未来AIOT的排头兵,完成一些边缘计算等

  • C系列:C3

单核处理器,性能也很强;支持蓝牙、WiFi等;搭载 RISC-V 32 位单核处理器的极低功耗 SoC

  • ESP32系列常规芯片

集成 2.4 GHz Wi-Fi 和蓝牙双模的单芯片方案 ,单/双核处理器(D系列为双核)
主要有ESP32-D0WD-V3、ESP32-S0WD、ESP32-U4WDH等型号
(依据单双核、RAM大小等分类,具体查看芯片的数据手册)

特别的,该系列下,pico系列是 系统级封装 (SiP) 模组
可提供完整的 Wi-Fi 和蓝牙功能 ,已集成1 个 4 MB 串行外围设备接口 (SPI) flash ;已将晶振、flash、滤波电容、RF匹配链路等所有外设器件集成在芯片封装,所以不需要外围器件即可工作
搭载 2 个低功耗 Xtensa® 32-bit LX6 微处理器, 有D4、V3两个类型(区别应该是V3是基于最新ECO V3晶圆封装的)——这里选用D4,因为D4能买到…

开发框架

1. arduino开发

和ESP8266一样,ESP32支持在Arduino上开发。
基于Arduino IDE开发,首先要搭建开发环境,参考使用Arduino开发ESP32(01):开发环境搭建

但是发现下载不了,参考离线开发板数据包进行离线下载安装

安装后在开发板管理器中选择ESP32即可

例子参考,除了点击示例,也可以去Github上找:https://github.com/espressif/arduino-esp32


比如,这里选择一个显示芯片ID的示例,编译后下载到手里的开发板中,可以得到芯片的类型、核数和ID

ESP32开发综述_第1张图片

ESP32开发综述_第2张图片ESP32开发综述_第3张图片

2. ESP-IDF 开发

ESP-IDF (Espressif IoT Development Framework) 是乐鑫的物联网开发框架,是使用乐鑫 ESP 系列芯片进行物联网开发时,必要的基础代码库、示例程序、文档和工具的集合。目前已支持 Linux、MacOS 和 Windows 等主流开发平台。

乐鑫的软件开发环境 ESP-IDF 旨在协助用户快速开发物联网 (IoT) 应用,可满足用户对 Wi-Fi、蓝牙、低功耗等方面的要求。

众所周知,ESP32是物美价廉的双核SoC,CPU0和CPU1同时运行、共享内存。

乐鑫修改了普通的FreeRTOS,让它能够支持SMP(symmetric multiprocessing对称多处理),

所以ESP32的FreeRTOS变成了基于FreeRTOS v8.2.0的Xtensa架构移植版SMP RTOS

ESP-IDF下的开发,即基于Free RTOS框架的开发,乐鑫对原生Free RTOS进行了修改,以便对ESP32芯片更好的支持

提到操作系统下的开发,估计很多熟悉Arduino亦或者其他嵌入式裸机开发的小伙伴会感到陌生和害怕,但是个人觉得,要想充分利用ESP32系列芯片的性能,或者想要在嵌入式方向上做的深一点,操作系统是不可避免要学习和实践的


关于环境的搭建,这里我放几个参考,其实参考第一个视频就差不多了,虽然版本不太一样;
安装问题,可以再看下我的另一篇博客:VS code 配置ESP-IDF 常见问题

参考:
【IOT College】ESP-IDF 环境搭建 Windows

官方—ESP-IDF 编程指南

官方—我该看哪个环境搭建教程? – ESP 系列开发环境搭建视频导航目录

ESP8266_RTOS_SDK (IDF Style) Programming Guide

3. microPython开发 & platform开发

  • 基于microPython,可以在ESP32上使用python语言进行开发

这块我了解不多,大家如果对python比较熟悉,可以找一些资料看一看

  • platform平台呢,是VS Code上的一个插件

    基于该插件,也可以完成在Arduino、ESP-IDF上的开发;也比较方便,方便环境搭建等;大家感兴趣可以了解下;
    如果你ESP-IDF的环境搭建不好,可以试试在Platform上试试

一点感悟

不得不说,ESP32是一款非常优秀的芯片,集成了Wifi和蓝牙,并且提供了不少的外设;在STM32芯片价格水涨船高的今天,不得不说更加香了

但是,还记得当初为啥学习STM32吗?

我的话,因为学习资料多
国内的正点原子、野火等团队,出品了大量的开发板、学习教程和资料
我还记得当初那一个个日日夜夜,自己一边看着正点原子和野火的书,一边调试着例程,就这样跌跌撞撞的入了嵌入式的世界

但是,最近这段时间,也一直在做ESP8266和ESP32的项目,很多时候会感觉迷茫和不知所措
虽然官方给出了许多参考手册、编程指南,但是很多时候 还得靠自己摸索

  • 相关的参考、教程比较少,不成体系;这块第三方做的比较少吧
  • 尤其是ESP-IDF的参考,教程等,真的是少得可怜;如果是RTOS 初学者,会感到不知所措
  • 个人开发时,往往不成体系,现学现卖

不是说非得保姆级教程才能学习,只是拉低门槛罢了;
而一款芯片,除了自身过硬,要想让更多人参与,学习和开发资料是非常重要的
就拿ESP-IDF这一框架开发来说,除了官方的编程参考,我找不到其他的入门资料,只能一点点看源码和野火的RTOS教程来啃
不知道会不会有人因为这样而轻易放弃,我想更丰富的参考和教程一定会培养更多的开发者投入ESP32的学习和开发

以上,是一点吐槽,下面是自己的一点开发经验,供大家参考;

也可关注我的后续博客,我会更新一些开发记录和教程

  • 建议关注乐鑫的Github 或 Gitee仓库,然后下载下来,用VS Code搜索查看源码

你可能感兴趣的:(ESP32,嵌入式)