Skip to main content
Visitor II
April 5, 2022
Question

How to make the default STM32Cube USB device library run as microphone?

  • April 5, 2022
  • 0 replies
  • 962 views

Hello everyone,

I want to make an USB microphone using the STM32CubeIDE. After I configured the USB connection with STM32CubeMX, I wanted to modify the USB device library to make it work in the other direction (from device to host). Therefore I modified the descriptors and the functions USBD_AUDIO_Init and USBD_AUDIO_DataIn.

When I plug the MCU into my PC, it is correctly recognized as USB microphone, so the descriptors are alright I guess. But it is not possible to record the generated audio samples from the MCU with e.g. Audacity.

So the basic problem is the isochronous data transfer. Then I recorded the USB connection with Wireshark and I figured out that the MCU answers the requests from the host but there are no audio data in the response. I tried to debug the code and I also figured out that the USBD_AUDIO_DataIn function is not called, so the endpoint number seems to be always 0.

So basically I have two questions:

Why is the endpoint number always 0 and the USBD_AUDIO_DataIn are not called?

What is necessary to let the USB device library work in the other direction (as microphone)?

Thank you for helping.

    This topic has been closed for replies.