什么是ESP32?
首先应用ESP32的领域不得而知,但现在却随处可见。ESP32可以简化WiFi网络与蓝牙设备的连接环节,因此它成为了各制造商的主要选择。现在让我们看一看它的发展简史,它是如何兴起的以及在售过程中的开发支持。
ESP32已经成为用户友好型WiFi功能开发板与芯片的代名词。EPS32由乐鑫设计与开发,乐鑫是一家成立于2008年总部位于中国的无晶圆厂半导体公司。乐鑫的首款产品为2.4GHz的WiFi系统级芯片ESP8089,主要应用于平板电脑和机顶盒,该产品在2013开始销售。不过,直到2014年,ESP8266的发售才真正引起制造商对该系列产品的注意。
乐鑫长期致力于为无限通信与低功耗技术市场提供最前沿的人工智能物联网解决方案。ESP8266凭借其操作简单的单片机设备以及配套的WiFi网络通信软件很好地满足了当时市场的需求。
ESP32由什么驱动?
ESP8266由Tensilica Xtensa L106 32位RISC处理器驱动。ESP8266的奇特构造在2007年已被Cadence声明注册,并且相比于Arm的Cortex-M3能提供更多个Dhrystone MIPS。此外,官方声明还声称其内核可以每兆赫更低的功耗工作,这将在必需解决电池驱动问题的物联网领域引起更广泛的关注,
2014年Hackaday通过Seeed Studio发布了售价5美元的WiFi模块ESP-01,制造商这才开始注意本系列的产品。ESP-01由总部位于中国的第三方制造商AI-Thinker生产。ESP-01仅有8个引脚,其中两个引脚可以提供通过AT命令控制该模块的UART接口。该模块可以容易地与Arduino平台整合,并提供像带有互联网连接的Arduino Uno那样的简易板。最为关键的是所有的说明书都是由中文书写的,然而这对于制造商而言却是一个小的麻烦,因为他们需要使用谷歌对现有说明书进行翻译并编写软件库。
为何ESP32如此便宜?
ESP32基于ESP8266模块,其引人瞩目的地方是通过极少量的元件实现WiFi模块功能。假设使用的是3.3V,另外只需要少量的电阻和电容,一个PCB天线,一个外置的QSPI串行闪存,一个在25至52MHz之间工作的晶振。上电后,ESP8266从闪存中提取固件,并将其从执行位置拷贝至内置SRAM。
图1. 可为时钟应用提供WiFi连接的ESP8266
当然,该模块也是公认的成熟的单片机解决方案。ESP32具有通用型输入输出(GPIOs),脉宽调制(PWM)输出,模数转换器(ADC)以及所有的标准串行接口。因此,当您可以省去中间过程并可以简单地对ESP8266进行简单编程时,为什么还要为Arduino或其他处理器开发代码呢?
截至2014年年底,乐鑫已经发布了一个允许编辑与WiFi软件代码并行的用户代码的软件开发套件(SDK),这使得物联网类型应用程序可以在类似ESP-01的模块上独立运行。该套件具有两个版本,一个是基于实时操作系统FreeRTos,另一个版本依赖回调和计时器保证用户代码与WiFi软件堆栈公平地共享处理时间。根据数据表,大约50 kB的存储空间可供开发人员存储代码。
新产品ESP32对市场产生了冲击
2014年以来,乐鑫的无限系统级芯片领域获得了持续的成功。乐鑫不仅提供半导体产品,而且还提供一系列可使制造商和开发商根据应用快速推出原型机的即用型模块。
目前ESP32系列以配备双核Tensilica Xtensa LX6 32位微处理器为特色。ESP32系列配备48个引脚,可提供520 kB的SRAM(静态随机存取存储器),并且某些产品还具有4-8MBd的闪存。连接侧支持2.4 GHz Wi-Fi和Bluetooth/Bluetooth LE 4.2。此外,ESP32系列还配备了超低功耗(ULP)协同处理器,即可编程有限状态机(FSM),可以在睡眠模式下监控一些外围设备,非常适合在电池供电的应用中检测来自传感器的唤醒信号。
在使用56针的ESP32-S2(单核)和ESP-S3(单核)系列时,开发商们就可以体验到Tenslica Xtensa LX7 32位处理器的优势。这款240 MHz的内核可以支持向量指令,可以快速执行神经网络代码和信号处理过程。ESP32系列自带WiFi和蓝牙,尽管蓝牙已经升级至5.0版本。其接口外围设备与添加了 USB on-the-go (OTG) 和 TWAI™ 或两线自动接口的模块基本相同,后者符合ISO 11898-1标准,也成为控制器局域网(CAN)。基于 RSA的安全启动、闪存加密和哈希信息验证码(HMAC)加速器共同提升了该系列模块的安全性。
最近,本系列产品已经推出了自己的RISC-V处理器。ESP32-C3仅具有单核处理器并且在160 MHz以上工作(如图2所示),其2.55 CoreMark/MHz的性能表现基本与ESP32-S系列的Xtensa LX7相同。在外设和内存方面,特征集与ESP32-S相当,但引脚数量限制在32个。
图2. ESP32-C3 提供与 ESP32-S 系列基本相同的外设,但引脚数更少,且RISC-V内核取代了Xtensa LX7
ESP32应用程序的编写
对于一个使用ESP32系列的开发商,当需要编写应用程序时,会发现有更多的可选项。对于具有Arduino使用经验的制造商,要从Arduino集成开发环境(IDE)开始。首先通过File->Preference加载Arduino-ESP32文件包,通过Tools->Board->Board Manager选择ESP32(如图3所示)。以上步骤完成后,通过File->Examples就可以查看一系列相关的例子,就像所有Arduino平台一样。源文件将以“.ino”文件格式保存。应用程序将使用setup()和loop()函数进行编写。
图3熟悉Arduino集成开发环境的用户可以通过板面管理为ESP32进行集成支持
典型微控制器开发过程中的阻碍之一就是需要在编译和下载代码之后才能检查代码是否有效。这一过程可能会消耗大量的时间,且不会因为仅仅修改一行代码而又丝毫减少。如果您想要更快捷的编码体验,您可能需要参考Annex WiFi RDS提供的BASIC选项,其开发环境是基于浏览器的网页。使用工具刷新代码后,开发环境将被下载至与WiFi相链接的ESP32设备上。建立连接后,您可以使用您选择的浏览器编写代码(如清单1所示),因为它是解释而不是编译,所以您的代码在完成后可立即执行。
清单1:Annex WiFi RDS开发环境中使LED闪烁的BASIC代码示例
当然您不能忽视第三方为创建互联网解决方案提供的大量支持。乐鑫与Amazon AWS通过ESP-EYE开发板共同为图像识别和音频处理领域提供一整套完整的人工智能解决方案。如果您在寻求Amazon Alexa的支持,可以使用基于ESP32-WROVER-E系列模块的ESP32-Vaquita板。
您能创造什么?
乐鑫凭借其ESP32系列模块在在如此短的时间内所取得的成功令人印象深刻。与一些成熟的欧洲和美国的微控制器供应商相比,从文档编制和提供使外围设备运行所需的软件方面可以看出ESP32系列在细节上的关注程度,并且还提供了大量应用程序的示例。
图4. 限制您创造的仅仅是您的想象力,这就是基于ESP3的微型Mac要证明的
在此我们要讨论的不仅仅是如何使LED闪烁和读取ADC - 即使对于专业的工程师团队来说,其中一些种类应用程序也将是复杂且具有挑战性的。令制造商高兴的是程序开发平台可选择之多,以及这些功能强大的小芯片背后使用群体。
上一篇:Ambiq亚阈值晶体管技术可实现低至6μA/MHz功耗水平
下一篇:九年十亿颗!兆易创新是如何做稳国产MCU冠军的?
推荐阅读最新更新时间:2024-11-11 10:19
设计资源 培训 开发板 精华推荐
- 用于简单 400 mW 唱机放大器的 TL431B 可编程精密基准的典型应用
- 使用 ON Semiconductor 的 LV5692P 的参考设计
- 使用 Infineon Technologies AG 的 IRU3072 的参考设计
- 使用6LoWPAN Mesh网络的智能LED驱动器用于室外路灯
- 基于esp32的灯带
- 具有基本抑制功能的LF33ABV 3.3V低压降稳压器的典型应用
- LT4275CIMS LTPoE++ 90W 受电设备接口的典型应用电路
- NCP301LSN20T1 2V双电源欠压监测典型应用
- ADP2371CP-EVALZ,用于评估 ADP2371 降压稳压器的评估板
- 使用 Analog Devices 的 LTM8003-3.3IY 的参考设计