使用 USB 主机 CDC 类将 4G 调制解调器集成到 STM 控制器
Posted
技术标签:
【中文标题】使用 USB 主机 CDC 类将 4G 调制解调器集成到 STM 控制器【英文标题】:Integrating a 4G modem to STM controller using USB Host CDC class 【发布时间】:2021-12-21 08:09:55 【问题描述】:我有一个具有 USB 主机和设备功能的 STM 控制器,我如何将带 USB 的 Quectel EC25 4G 调制解调器连接到 stm 微控制器。将 stm 配置为 USB Host CDC 类是否会将 4G 调制解调器检测为通信设备,并且我将能够发送 AT 命令或需要进行一些特定的修改。 我在这里迷路了,如何继续进行此集成,请帮助
【问题讨论】:
我对 EC25 模块不熟悉。但数据表中的快速峰值显示该模块还支持 UART 和 I2C。这些接口还不足以满足您的用例吗,或者您为什么要麻烦实现 USB 主机接口?您确定 USB 协议是 USB CDC 而不是某些专有协议吗? 它是 USB CDC。我在我的项目中以这种方式使用它。但这不是一件容易的事,需要大量的经验 我假设最终您想使用调制解调器进行网络通信 (TCP/IP)。在这种情况下 - 首先确保您与调制解调器有实际的通信 - 您可以通过 USB 发送和接收任何数据。这需要设置您描述的 USB 主机 CDC 类。然后您继续进行其他步骤 - AT 命令配置和与您选择的一些 TCP/IP 堆栈的集成 - 我在这里描述过:***.com/questions/42116869/… 【参考方案1】:您必须验证调制解调器如何枚举以及它公开了哪些接口。请记住,某些调制解调器可以进行配置,并且可以根据其设置公开不同的配置文件。
USB HOST Cdc 扫描所有接口,直到您在 usbd_conf.h 中设置的 USBH_MAX_NUM_INTERFACES。如果该配置文件有一个命令接口作为第一个 CDC 接口,它应该已经工作,如果没有,则必须修改 usbh_cdc.c 并强制在 USBH_CDC_InterfaceInit 函数中使用正确的接口。
首先检查USBH_MAX_NUM_INTERFACES是否足够高,第一个CDC接口是命令接口。如果这不能解决,请发布您的调制解调器的完整枚举。
【讨论】:
以上是关于使用 USB 主机 CDC 类将 4G 调制解调器集成到 STM 控制器的主要内容,如果未能解决你的问题,请参考以下文章
STM32F0 USB CDC_Init_FS() 和 CDC_Receive_FS() 使用 CubeMX
ESP32 usb to STM32 USB cdc 模式 - USB to USB