2016-05-31 03:22 AM
Hello,
we are working on a project where we want to use the STM32F7 Disco as a USB Soundcard for a Linux-based PC. Therefore we need a USB Audio Class 2 Device. Did anyone ever tried something with UAC2? Can you provide us some example codes. That would be great. We already tested the Audio Standalone example from the Cube Package. We tried to change the code, so that we can use USB High Speed instead of Full Speed, but it doesnt work. The 'readme' also says that the example code does not support USB High Speed. Why exactly? What do we need to change? Best regards #hs #uac2 #audio-class-2 #cart-horse #chicken-egg2016-05-31 07:42 AM
Hi peter.hans.004,
USB Audio class 2.0 is not supported yet by our product. And USB Audio class 1 supports only low and full speed as mentionned in p43 of :Note:The Audio Class 1.0 is based on USB Specification 1.0 and thus supports only Low and Full speed modes and does not allow High Speed transfers. Please refer to ''USB Device Class Definition for Audio Devices V1.0 Mar 18, 98'' for more details.
-Hannibal-
2016-05-31 11:57 AM
Hello,
thank you for your reply. Do you mean that it isn't supported by the Hardware or by the Software? We already tested a USB High Speed Project so that we can see that the USB High Speed Controller matches the speed we need. We reached up to 63Mbit/s. So the software and the hardware can handle this speed. That shouldn't be the bottleneck. In our current project we need a few Audio Channels with each 24bit and 192kHz in TDM Mode. Therefore we need 55,3Mbit/s transfer rate which means we need UAC2. According to the datasheet it is possible to map the SAI_B Block Output to the GPIOs. We want to connect them to our own Codec so it's not important if the codec can't handle that. In short we want to use the Discovery Board as an USB<->i2s Bridge. Why is UAC2 not possible? Best regards2016-05-31 04:55 PM
Most likely they simply haven't expended the engineering resources to build and validate an example that advances your project goals yet, or characterizes the operational envelope it delivers. The performance may or may not reach your performance expectations.
2016-06-01 07:36 AM
Hi there,
in the Audio Standalone Example Code from the Cube Package you define ''USE_USB_FS'' in the preprocessor. In the ''usbd_conf.c'' in line 313 you use ''#ifdef USE_USB_FS''. In line 338 there is also the option ''#ifdef USE_USB_HS''. So you already prepared the programm for a USB High Speed transfer rate. Our Linux PC also recognizes a USB High Speed Soundcard if we define ''USE_USB_HS''. But when we try to play some music the soundquality is really really bad. Why doesn't it work? Is it a hardware problem, or do we just need to add some code? Best regards