由上述模组研发的开发板长这样:

是的,开发板上标有ESP-WROOM-32的部件就是上面的“模组”。开发板相比于“模组”又豪华了不少(终于有按键、USB接口、LED灯了),是不是想要马上写个点亮LED灯的程序呢?

2 开发模式

想要点亮LED灯?等等!我们先来聊聊如何将程序烧录到芯片、模组、开发板中。

首先,直接对那块黑黑的“芯片”进行烧录程序是困难的,试想,他连可以连接导线的铜箔引脚都没有,如何接通导线连接电源,如何下载程序?是的,我们不能直接对芯片进行软件开发。

目前,对ESP32进行开发主要有两种模式:模组方式、开发板方式

2.1模组方式:

需要的硬件:一块模组+USB转串口线+杜邦线+焊接工具

实物连接:

2.2开发板方式:

需要的硬件:开发板+一根USB线

实物连接:

你看,开发板模式的开发是不是更加便捷呢?无需自己焊接,用USB线连接开发板即可实现即插即用,开始开发之旅。

3. 硬件资源

通过以上的直观认识,你肯定发现了规律:从芯片→模组→开发板,他们的硬件资源越来越多了,开发板的硬件明显多于另外两者,对开发板开发只需要USB连接电脑即可。

下表给出了他们硬件资源的主要区别:(以上述芯片、模组为参考)

对象\硬件资源

时钟源

(电阻、电容组成的振荡器)

Flash

(存储代码的主要介质)

接口

(如I/O,USB)

UI(人际交互)

如(按键、LED、显示屏)

芯片

模组

开发板

还记得单片机/微机原理课上。老师说的单片机运行的最小系统吗?

没错,单片机运行程序的基本条件(也即最小系统):处理器(CPU芯片)+时钟源+电源+存储器。

时钟源、Falsh作为运行应用程序的基本条件,芯片本身并不具备该条件,因此,芯片本身并不能直接运行应用程序,模组在芯片的基础上,添加了运行程序的“基本条件”(尽管他需要自己焊接到对应的引脚),开发板不仅在模组的基础上满足运行程序的“基本条件”,而且提供了即插即用的接口和人机交互外设。

4.对应关系(一对几)

通过上述知识,你是否有这样的疑问,芯片、模组、开发板之间的对应关系是怎样的呢?

4.1芯片-模组对应关系

请看下图:

发现了吗?

第2、3、4模组,他们使用的芯片都是ESP32-D0WD,即芯片-模组的对应关系是:1-n(1对多),同一款芯片可以研发成不同的模组,那么为什么将同一芯片做成不同模组呢?

从上图你也许发现,使用的芯片相同,但不同模组的Flash大小、天线的材质、模组尺寸是不同的。是的,芯片到模组的演变经历了“定制化、专用化”的过程。模组最终会嵌入到电视、电冰箱、空调等不同的产品中去,对模组的存储空间大小、模组天线材质、模组的大小要求当然不一样。

通常,模组的研发是面向“产品”的,因为,模组研发的最终目的是将模组嵌入到目标产品(如,电视、电冰箱、空调)。ESP32-D0WD芯片提供了实现蓝牙和WiFI功能的内部集成电路,但A公司只需要WiFi功能,为满足A公司的需求,仅将ESP32-D0WD芯片的与WiFi功能相关的引脚引出,制作出一款“WiFi”模组(尽管ESP32-D0WD芯片也可以实现蓝牙功能,但A公司不需要,因此不对外提供ESP32蓝牙功能的接口了)。同理,B公司只需要蓝牙功能,为满足B公司的需求,仅将ESP32芯片的与蓝牙功能相关的引脚引出,制作出一款“蓝牙”模组。(当然,你可以选择同时实现蓝牙和WiFi功能,这样引出的引脚更多,模组体积可能更大,money也更多,所以,成本、功能、尺寸都是需要考虑的因素)

总之,ESP32-D0WD芯片提供了实现蓝牙和WiFI功能的完备硬件集,模组只是选取芯片的部分功能,并通过引出引脚接口提供给用户。

模组的研发过程如下:(从芯片到模组着实经历了一番不小的经历呢)

目前,除了ESP官方提供的模组和开发板,也有其他公司基于ESP官方提供的ESP-32芯片进行模组的开发,即芯片还是那个芯片,对芯片的外加工,如引线布局,时钟源功能电路设计等与官方不同。

4.2 模组-开发板对应关系

发现了吗?一款ESP-WROVER-B模组(板载ESP-D0WD芯片)可以开发出很多开发板:ESP-DevKitC、ESP32-LyraT等

同样,ESP-WROVER-IB模组(板载ESP-D0WD芯片)可以开发出很多开发板:ESP-DevKitC、ESP-WROVER-KIT-VIB等。等等,刚才不是说ESP-DevKitC由ESP-WROVER-B模组研发而来吗?为什么这里又说ESP-WROVER-IB模组开发出的开发板也叫做ESP-DevKitC?

是的,同一模组,可以嵌入到多个不同型号的开发板中。同一型号的开发板也可以使用不同的模组(他们只是名字一样,I/O数量、天线材质等不一样)。因此,模组与开发板(确切的说是开发板型号,不是开发板实体)的对应关系是多对多的关系。

(不同公司需要的I/O种类和数量不同,需要的UI方式也不同,有的需要显示屏,有的只需要LED灯就够了)

实际上,芯片只是“定义”了引脚功能,并未将引脚引出到可供连接的铜箔上,模组将部分引脚引出以供产品连接。

不同模组的功能可能不同,因为他们需要的资源不同,因此引出的引脚不同。

模组是面向“产品”的,最终目的是嵌入到产品内部,成为执行特定功能的模块(这也是模组概念的由来,模组,即执行特定的功能的模块,用于组合到产品中使用)

开发板是面向“测试学习”的,是一个假定的“产品”(你打开一个空调,他内部连接的是一个模组,不是一个开发板),是针对嵌入到其内部的模组,提供快速地学习了解,测试模组性能的工具。因此,开发板可看作模组到产品的一个“中间临时变量”,如下图所示:

我们很难一次性写出完全正确的应用程序代码,因此,尽管最终用到产品中去的是“模组”,但开发板的存在依然重要,在写应用程序时,将错误信息打印到开发板的显示屏上、或者通过LED灯显示程序出错的位置将大大加快开发的进程,保证程序的健壮性。在确保应用程序无误后,去掉代码中的“打印语句”(最终产品可能是一个无显示屏、无LED灯的设备),然后,将代码批量烧录到模组中,就得到执行我们指定应用功能的模组了,最后一步就是嵌入到产品中,成为执行一定功能的模块)。

5. 芯片、模组、开发板与软件资源的对应关系

由上述知识可知,一个芯片可以制定多个模组、一个模组可以嵌入到不同的开发板,一个型号的开发板内部使用的可以是不同的模组。从芯片到开发板,数量是越来越多了!

硬件的使用离不开软件的支持,那么,使用开发板进行学习、测试时的软件开发包(Software Develop Kit,SDK)是否如开发板数量一样很多呢。试想100个开发板对应100个SDK合理吗?

NO,选择合适的开发板已经够累人了,能不能针对我选的开发板快速给我一个SDK?

没问题,用它:ESP-IDF开发包即可。

实际上,ESP32系列的芯片只有一个大的“开发包”,或者说是开发框架(就是上面提到的ESP-IDF),其中包含了实现ESP32系列芯片所有底层功能的软件代码,也就是说,你选择的任意一款ESP32开发板,他对应的软件开发包只有一个:ESP-IDF。那么一个开发包如何兼容不同的开发板呢?ESP-IDF提供了图形化的配置工具:

根据ESP-IDF中的操作指南文档,在工程配置这一步骤中,打开如图所示的配置界面,就可以选择具体的芯片、模组、是否包含显示屏等选项,自动生成能够适用于指定开发板的代码。

是不是很方便尼?

总之,一个软件开发包(SDK)与芯片、模组、开发板的对应关系是一对多的,ESP-IDF开发包适用于所有ESP32系列的开发板。

1.芯片→模组→产品,是功能不断专用化、硬件资源不断丰富的过程。

2.开发板只是一个“模组→产品”过程中的“临时中间变量”,开发板用于对模组进行学习、测试,最终用到产品中的是烧录测试学习时保留下来代码的模组,而不是开发板。

3.芯片与模组的对应关系是一对多,模组与开发板的对应关系是多对多。

4.模组是面向“产品”的,开发板面向“学习测试”。

5.软件开发包(SDK)与芯片、模组、开发板的对应关系是一对多的,在开发包(ESP-IDF中)针对的是某款芯片的开发,是芯片功能实现的一个完备软件集(如,开发包中包含HTTP协议实现的软件,而你不需要用HTTP,忽略它,只配置使用自己需要的包即可),因此对于不同的开发板选择对应芯片的开发包即可。

6.芯片提供了实现芯片支持的所有功能的内部集成电路硬件资源,SDK提供了实现该芯片的所有功能的底层软件资源。因此,选择一块合适的开发板,只需要从选择一款合适的芯片即可(芯片数量相比于开发板数量少多了),不必大海捞针的去看每一个开发板的硬件手册;然后,依据芯片选择合适的模组;最后,再依据模组选择合适的开发板就可以开始了(至于软件包,你完全不必担心,反正ESP32系列芯片对应的开发包是同一个,即ESP-IDF)。

好了,选择一款自己喜欢的ESP32开发板,大胆的实现你的ideas吧。

(谢谢点赞或收藏)

参考:ESP32官方文档地址: 芯片概览 | 乐鑫科技

用户经常会遇到这种困惑,并希望将IoT功能添加到产品中,但是在选择解决方案时会纠结于他们。我应该选择 芯片 ,模块还是 开发板 ?要解决此问题,您必须首先弄清楚您的使用情况。 首先我们要了解“ 芯片 ”,“蓝牙模块”和“蓝牙 开发板 ”它们之间有什么 区别 ? 本文以FSC-BT806A模块为例,说明 芯片 ,模块与 开发板 之间的 区别 和连接。 CSR8670 芯片 : CSR8670 芯片 的尺寸仅为6.5mm * 6.5mm * 1mm。在如此小的空间中,它集成了核心CPU,射频,功率放大器,滤波器和电源管理模块等,具有超高的集成度,高
ESP32 -WROOM-32 是一款通用型Wi-Fi+BT+BLE MCU 模组 ,功能强大,用途广泛,可以用于低功耗传感器网络和要求极高的任务,例如语音编码、音频流和MP3 解码等。此款 ESP32 -WROOM-32 模组 的核心是 ESP32 -D0WDQ6 芯片 *,具有可扩展、自适应的特点。两个CPU 核可以被单独控制。时钟频率的调节范围为80 MHz 到240 MHz。 ESP32 -WROOM-32 模组 集成了传统蓝牙、低功耗蓝牙和Wi-Fi,具有广泛的用途:Wi-Fi 支持极大范围的通信连接,也支持通过路由器直接连接互联网;而蓝牙可以让用户连接手机或者广播BLE Beacon 以便于信号检测。 ESP32 -WROOM-32 产品规格: 此文件夹中所包含的 ESP-WROOM-32 模组 的参考设计为 V1.0 版本,供采购乐鑫官⽅方的量量产 模组 的用户参考。另有 ESP-WROOM-32 参考设计 V1.1 版本,供自己设计 模组 的⽤用户参考。 请使用以下工具打开原理理图和 PCB 文件 SCH: Cadence/OrCAD Capture V16.6 PCB: Mentor Graphics/Pads VⅩ.2 附件资料截图:
在这篇文章中,我们将学习如何使用 ESP32 -CAM 开发板 来构建数码相机。按下重置按钮后, 开发板 将拍摄一张图像,并将其存储到microSD卡中,然后返回深度睡眠状态。我们使用EEPROM来存储并获取图像编号。 ESP32 -CAM板已包含本草图所需的相机模块,复位开关和microSD卡插槽。除此之外,您还需要一个microSD卡,一个5V电源以及一个USB到串行转换器来上传草图。 相同:都是基于功能划分的单位。比如说完成网络功能的组件、模块、完成统计功能的组件、模块; 这二者没有上下级的包含关系,模块可以由多个组件构建,独立的组件也通常由多个模块实现。不同: 组件,偏向发行的概念(outside): 1、强调的是“跨项目的可重用性”这层意思。比如“XXX采集卡通用远程监控组件”,表示这个东东是完成远程监控功能,并且是为...
物联网 模组 芯片 都是当下大家都很熟知的高科技产品,我们使用的电子设备几乎都装上了 芯片 ,这时候就有很多朋友蒙圈了, 物联网 模组 芯片 到底有什么 区别 呢?要清楚这个问题,需要我们首先了解 芯片 物联网 模组 是什么东西,用在什么地方,就能清晰的知道 物联网 模组 芯片 区别 表现在那些方面,以下是详细内容,供大家参考。 芯片 概述 芯片 ,别称微电路、微 芯片 、 集成电路。就是指含有集成电路的硅单晶,体积不大,像一块小小的四方形的饼干大小,经常是电子计算机或别的电子产品的一部分。 芯片 也是有它与众不同的地区,理论上,要是是应用超微粒生
在学校里学了这些知识,并没有时间思考这些之间概念之间的 区别 ,一直注重渴望技术的提升,却忘了这些基础才是根本。蹭着在家的这一段时间,准备好好梳理一下之间的关系,这是一个宏大的框架,写下这些,也是因为在求职的时候对于这些涉及到了,加深一下自己的印象吧。不说了,直接入主题吧。 在嵌入式领域里,ARM本意是微处理器行业的一家知名企业,英国ARM公司是全球领先的半导体知识产权提供商。全球超过95%的...
这是一个技术问题,我可以为您提供帮助。要在 Arduino IDE 中添加 esp32 wroom-32 开发板 ,您需要按照以下步骤进行操作: 1. 打开 Arduino IDE,选择“文件”菜单下的“首选项”选项。 2. 在“首选项”对话框中,找到“附加 开发板 管理器网址”一栏,点击右侧的图标进入编辑模式。 3. 在弹出的编辑对话框中,复制并粘贴以下网址:https://dl.espressif.com/dl/package_ esp32 _index.json 然后点击“确定”。 4. 关闭“首选项”对话框,重新打开“工具”菜单下的“ 开发板 管理器”。 5. 在搜索框中输入“ ESP32 ”,找到“ esp32 by Espressif Systems”选项,并点击“安装”。 6. 安装完成后,在“工具”菜单下选择“ 开发板 ”选项,找到“ ESP32 Dev Module”并选择。 7. 现在您可以开始使用 Arduino IDE 开发 ESP32 应用了!