ESP32 上使用 USB Host Mini

之前介绍过祖国版的 USB Host Mini 【参考1】,这里介绍一些如何在 ESP32 上使用USB Host 功能。试验的板子是 DFRobot 的 FireBeelte:

来自【参考2】

USB  Host Mini 上有24个Pin, 但是实际用到的只有9个,按照下图将它和 FireBeelte 接起来即可:

USB Host Library 直接兼容 ES32 ,. 建议先运行 例子中的Board_QC 来验证板子是否工作正常。

下面是取得 USB 描述符的例子运行结果:

=========================================================

20201027 补充在 ESP32-WROOM-32 上的实验

连接方式:

库中代码修改:

1.USB_Host_Shield_Library_2.0\avrpins.h

// Pinout for ESP32 dev module

MAKE_PIN(P0, 0);
MAKE_PIN(P1, 1); // TX0
MAKE_PIN(P10, 10); // TX1
MAKE_PIN(P3, 3); // RX0
MAKE_PIN(P21, 21); // SDA
MAKE_PIN(P22, 22); // SCL
MAKE_PIN(P19, 19); // MISO
MAKE_PIN(P23, 23); // MOSI
MAKE_PIN(P18, 18); // SCK
//LabZ_Start
MAKE_PIN(P13, 13); // SS
MAKE_PIN(P26, 26); // INT
//LabZ_End

2.USB_Host_Shield_Library_2.0\UsbCore.h

#elif defined(ESP8266)
typedef MAX3421e<P15, P5> MAX3421E; // ESP8266 boards
#elif defined(ESP32)
//LABZ_Debug typedef MAX3421e<P5, P17> MAX3421E; // ESP32 boards
typedef MAX3421e<P13, P26> MAX3421E; // ESP32 boards  //LABZ_Debug
#else
typedef MAX3421e<P10, P9> MAX3421E; // Official Arduinos (UNO, Duemilanove, Mega, 2560, Leonardo, Due etc.), Intel Edison, Intel Galileo 2 or Teensy 2.0 and 3.x
#endif

3.USB_Host_Shield_Library_2.0\usbhost.h

#elif defined(ESP8266)
typedef SPi< P14, P13, P12, P15 > spi;
#elif defined(ESP32)
//LABZ_Debug typedef SPi< P18, P23, P19, P5 > spi;
typedef SPi< P18, P23, P19, P13 > spi; //LABZ_Debug 
#else
#error "No SPI entry in usbhost.h"
#endif

参考:

  1. https://www.lab-z.com/cuhm/
  2. http://wiki.dfrobot.com.cn/index.php?title=%E6%96%87%E4%BB%B6:DFR0478%E5%BC%95%E8%84%9A%E5%9B%BE01.png

《ESP32 上使用 USB Host Mini》有5个想法

  1. 在研究如何用esp32将普通键盘转为无线键盘,博主的帖子给了我很大帮助在此感谢。
    我用手头上的几个设备测试是都能在3.3v状态下工作的,也就不一定要需要修原电路板上的电路改为5v供电了,然后接线要牢,遇到好几个错误都是接线松动造成的。

  2. 博主给我很大的帮助,遇到个坑,国产的usb host mini的vbus和vcc是连在一起的,而max3421又是3.3v供电,所以vcc得接3.3,然后他们连在一起肯定不行了,需要把usb母座附近,有个2.2k的丝印的地方vbus和vcc的连接需要割开

发表回复

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