支持原生USB 的ESP32 :ESP32 S2

当我们谈论 ESP32 支持USB 时,谈论的并不是最常见的ESP32而是乐鑫信息科技(上海)股份有限公司(ESPRESSIF SYSTEMS (SHANGHAI) CO., LTD.)新出品的一个型号:ESP32 S2。具体的比对可以从下图看到。主要的变化是变成单核(对 Arduino玩家几乎没有影响),去掉了蓝牙功能,另外就是增加了USB OTG 的功能。这意味着可以用 S2 方便的实现USB Device或者 Host 功能(目前还没有看到 Arduino 版本的 USB Host支持):

图片来自 【参考1】
图片来自 【参考1】

为了进行实验,需要入手一个开发板,在【参考2】可以目前的模块有如下四种:

ESP32-S2-WROOM

ESP32-S2-WROOM-I

ESP32-S2-WROVER

ESP32-S2-WROVER-I

其中 WROOM  和  WROVER 的差别在于 PRAM 大小的差别,有 -I 和没有的在于天线是否存在于模组之上。最终选择的是 ESP32-S2-Saola-1开发板,直接在taobao 上的 乐鑫科技 Espressif Online 买了一块 ESP32-S2-Saola-1R (这个应该算是官方正版了)。相比之下,这个板子价格要比普通的贵上很多,达到48元/块。

接下来就是软件的问题了,ESP32 S2 并不能用普通的 Arduino 支持的 ESP32 环境进行编译,更准确的说是不能用他来完成 USB Device的支持。具体的支持方法可以在【参考4】看到。这里简单说一下我实验成功的方法。

1. 如果你当前Arduino 安装过 ESP32 的支持,请在 Board manager 中卸载之;
2.安装 Git,然后创建一个目录用于存放编译工具;
3.进入这个目录使用 Git Bash Here打开窗口输入下面的命令
4.git clone https://github.com/espressif/arduino-esp32.git -b esp32s2
(有可能会很慢,从我的经验上来看,用手机热点会快很多)
5.上述结束之后运行 tools 下面的get.exe

6.      安装 USBTiny , 在 https://github.com/chegewara/EspTinyUSB 其中硬件方面,按照如下设定【参考5】

7.安装 USBTiny , 在 https://github.com/chegewara/EspTinyUSB

硬件方面,按照如下连接【参考5】

参考:

1.     https://blog.csdn.net/toopoo/article/details/104299011

2.     https://www.espressif.com/zh-hans/node/4458

3.     https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-22443450244.11.741d27e6IeGkuO&id=612711016956

4.     https://github.com/espressif/arduino-esp32/blob/611ba8ea8acfd504174e2eec1e198a64e67cd748/docs/arduino-ide/windows.md

5.     http://bbs.eeworld.com.cn/thread-1131171-1-1.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注