cancel
Showing results for 
Search instead for 
Did you mean: 

USB RNDIS stucks on STM32H735IGT6

TKlem.1
Associate II

We have a problem converting our running USB VCP application (RTOS) to a working RNDIS version.

  • We replaced the regular variants of usbd_cdc.* and usbd_cdc_if.* by their RNDIS variants.
  • The USB OTG HS clock is enabled.
  • We adapted the initialization:

 

    if (USBD_RegisterClass(&hUsbDeviceHS, &USBD_CDC_RNDIS) != USBD_OK) {
        while (1) {
        }
    }
    hUsbDeviceHS.pClassData = USBD_malloc(sizeof(USBD_CDC_RNDIS_HandleTypeDef));
    if (USBD_CDC_RNDIS_RegisterInterface(&hUsbDeviceHS, &USBD_CDC_RNDIS_fops) != USBD_OK)     
    {
        while (1) {
        }
    }
​

 

  • We adapted the device descriptor (bDeviceClass=0xef instead of 0x02 and bDeviceProtocol=0x01 instead of 0x00)

The USB transfer is working for 1-2 seconds, but at the end the code stucks with an ISR queue overflow error.

Did anyone ever hear about such a problem? Or what do we miss in our initialization?

1 REPLY 1
FBL
ST Employee

Hi @TKlem.1 

We have a ready to use example using USBX. Otherwise, check the example provided for F7 used as CDC RNDIS server which may need some porting to fit H735 disco board.

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.