cancel
Showing results for 
Search instead for 
Did you mean: 

STM32f7 USB Host controlling 4G Modem

Danish1
Lead II
Posted on December 18, 2017 at 15:55

I'm trying to link my stm32f7 to a Telit LE910 modem over USB. I can already do this over a UART but I want to increase the data rate.

My hope is to use the stm32 USB Host CDC drivers.

I can enumerate the device and I see:

No shield USBH library started. Starting MSC Demo Starting MSC Demo USB Device Attached PID: 1201h VID: 1bc7h Address (&sharp1) assigned. Manufacturer : Android Product : Android Serial Number : 0123456789ABCDEF Enumeration done.

This device has only 1 configuration. Default configuration set. No registered class for this device which wants ff.

In order to link a Linux system to this modem, you're supposed to add the Telit Vendor-ID, Product-ID (i.e. 1bc7:1201) combination into /sys/bus/usb-serial/drivers and then tell ppp to use that USB serial interface.

To my naive way of thinking, this tells me that Linux should be able to talk to the modem using a standard protocol (my guess is CDC) and start talking AT commands to it.

The device class of the modem is 0xff which means vendor-specifc. And yet Linux only needs to be told to use its usb-serial driver. So the question then is how might I associate the modem's VID:PID pair with the CDC interface? I don't see a way without e.g. editing usbh_core.c yet I'd have thought it's a relatively common task.

USBH_StatusTypeDef  USBH_Process(USBH_HandleTypeDef *phost)

  case HOST_CHECK_CLASS:

The modem reveals 7 interfaces. So after that I'd need to pick out the right interface and endpoint. But none of them are USB CDC. All have Class 0xFF, subclasses:protocols are 0xFF:0xFF, 0x42:0x01, 0xFF:0xFF, 0x00:0x00

, 0x00:0x00

, 0x00:0x00

, 0x00:0x00

So I'd probably also need to hack USBH_FindInterface as well.

Has anyone been down this path who is willing to share information?

Thanks in advance,

Danish

#cdc #usb-host #usb-cube-host-cdc #modem
22 REPLIES 22
MPati.3
Associate

@Danish​ Did you find a solution or made any progress in interfacing the Quectel EC25 to STM over USB?

EC25 has 5 Interfaces all have interface class as Vendor specific 0xFF.

I have same task, but have no idea on how to move forward with the USB for configuring and sending AT commands.

No change from 2 years ago. I don't know the Quectel EC25 so I don't even know if it has the same interface (built on top of USB protocols).

I don't know if mark_duobo made any progress looking at the linux drivers and how they might be ported to stm32.

I am using PPPoS on a UART cranked up as high as I found to be reliable (921600 baud).

Although my pcb has the USB interface wired as well, I don't use it. And I don't see that changing any time soon.

Regards,

Danish

Hi MPati.3 and Danish

Wondering if you got anywhere with this? I am working in a proyect where I need to interface the Quectel RM500 and a STM32F4 via USB but I get to the error "No registered class for this device." bc ir has a vendor specific class.

Kind regards, Nicolas.