之前介绍过祖国版的 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
参考:
在研究如何用esp32将普通键盘转为无线键盘,博主的帖子给了我很大帮助在此感谢。
我用手头上的几个设备测试是都能在3.3v状态下工作的,也就不一定要需要修原电路板上的电路改为5v供电了,然后接线要牢,遇到好几个错误都是接线松动造成的。
博主给我很大的帮助,遇到个坑,国产的usb host mini的vbus和vcc是连在一起的,而max3421又是3.3v供电,所以vcc得接3.3,然后他们连在一起肯定不行了,需要把usb母座附近,有个2.2k的丝印的地方vbus和vcc的连接需要割开
欢迎订阅《无线电》杂志
想按着你说的试试有线键盘转蓝牙。TB上搜了一圈迷你USB Host Shield,大部分都是下面这样的。
https://item.taobao.com/item.htm?spm=a230r.1.14.17.62a2147bYDWbAb&id=561203591754&ns=1&abbucket=12#detail
说明里都写着,兼容以下硬件,
Uno 328
Diecimila/Duemilanove 328
Mega 2560(推荐)
Mega 1280
没写支持DFRobot 的 FireBeelte。买这样的就可以吗?
DFRobot 的 FireBeetle 用的是 ESP32 核心可以用这款。我为 FireBeetle 做的 USB Host Shield 可以在 https://mc.dfrobot.com.cn/thread-309553-1-1.html 这里看到。
ps: 现在 MAX3421e 芯片涨价太厉害了,年初 17, 现在要50左右。