cancel
Showing results for 
Search instead for 
Did you mean: 

Nucleo-H753ZI USB Audio firmware examples

skson
Associate II

Hello,

I wonder that examples could apply Nucleo-H753ZI board... There are some examples about H743 or another one but no example for Nucleo-H753ZI board. 

 

I understand 48k-2channel-16bit can be implemented easily,

But I wonder that Nucleo-H753ZI can make 44.1kHz sampling or, 24bit input or, 4 ~ 6 channel input.

I can't solve just 48kHz-24bit-2Channel input's buffer underrun problem,

44.1kHz-16bit-2Channel  buffer underrun, 

and recognizing USB3300 ULPI to Nucleo-H753ZI.

Is it can be done by this board?

Or, Is there any spec making limits?  

edit:

related thread <Nucleo - H753ZI> + <USB3300 ULPI> connecting to P... - STMicroelectronics Community 

5 REPLIES 5
FBL
ST Employee

Hi @skson 

The examples provided for the Nucleo-H743 board can serve as a starting point. Please note that careful attention must be given to the pinout differences between the two boards when adapting these examples.

Regarding your questions on audio capabilities: implementing 44.1 kHz sampling, 24-bit input, or multi-channel (4 to 6 channels) audio is indeed feasible on the Nucleo-H753ZI. However, achieving this requires precise and correct clock configuration to ensure accurate audio sampling rates and data handling.

For your USB3300 ULPI interface recognition concerns, I recommend reviewing the community article, which provides useful guidance on verifying compatibility of USB ULPI transceivers:
How to check compatibility on USB ULPI transceiver... - STMicroelectronics Community

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.


Anna18_
Associate II

There aren’t USB Audio examples made specifically for the Nucleo-H753ZI, but you can adapt the STM32H7 examples (like those for the H743) since the architecture is the same.

48 kHz / 16-bit stereo works reliably.

44.1 kHz or 24-bit / multi-channel is possible, but needs careful clock setup and larger buffers to avoid underruns.

The USB3300 ULPI PHY is supported, but you must configure ULPI pins/clocking correctly in CubeMX.

The board itself doesn’t impose hard limits—it’s more about USB + SAI + DMA configuration and bandwidth. Check the CubeH7 package and X-CUBE-USB-AUDIO middleware for the closest starting point.

skson
Associate II

Well, I checked the solution, but it seems not working 24bit or multi-channel player...

 

To solve this problem, I have checked STM32 SDK for many weeks, but what I found was, too many things need to be changed and still I am not knowing all of that.

My question is not staying only it is possible. What I need is, all of factors  about USB audio input format selection, so that can be changed.

---------------

For example, I Implemented already 48kHz-2Channel-16bit input streaming.

But when I changes 44.1kHz, there are so many factors to fix and still couldn't fixed all and not knowing what needs to fix more. I have changed SAI clock and PLL, changed descriptors, changed USB-input buffer size, changed to periodic switch buffers, changed to buffering timings, ...but it is still not working.

The PC is recognizing STM board as a sound card having various input formats like below, but...

skson_0-1757982443661.png

still sound is not matching speed, tone and having some noise except 16bit-48kHz-2Channel. 

 

Same things are happening 48kHz-2Channel-24 bit input streaming and 48kHz-4Channel-16 bit streaming. I have planned {44.1kHz, 48kHz} x {2Ch, 4Ch, 6Ch} x {16bit, 24bit} but each basic step has so many issues I have not expected. 

 

I want to know Issues about : what I have to fix from the STM SDK if I want to change input format : sample rate, channel counts, and bit depth. I know that needs middle-ware changes, because I have been fixed middle-ware for several weeks.

 

Here attached files are my fixed files including middle-ware changed.

main.c/h, usbd_audio.c/h, usbd_audio_if.c/h, usbd_conf.c/h.

 

During your answer is comming, I will check USB3300 ULPI connection check once more...

 

Thank you.

 

+PS.
I am now changing the goal to do not implement 44.1kHz sample rate case.

And, your URL: 

How to check compatibility on USB ULPI transceiver... - STMicroelectronics Community

shows "Invalid Parameters Specified".

 

Thank you for your comment,

but I know that I have to fix clock and audio/SAI buffer and already did it.
The problem is, buffer sync and middle-ware buffers.

From Son.

Hello, dear,

Still I have not received any comment.

Is it too hard to answer?

If you need more details of my project, then I would summarize this project codes.

 

- summarize of changes : 

1. Descriptor :: 1 descriptor(48k-16bit-2ch) -> 3 descriptors.(48k-24bit-2ch, 44.1k-16bit-2ch, 48k-16bit-2ch)

2. Audio Buffer :: 2 SAI buffers ( 48k-32bit-2ch, 44.1k-32bit-2ch ) and 3 Audio buffers( follows 3 descriptor )

3. USB Buffer :: original buffer -> original buffer x 12 size

4. USB Buffer -> Audio Buffer  :: if 24bit case, +- 6U. else +- 4U. all buffer handling of usbd_audio.c follows 3 descriptor type channel size. On receiving, SAI Clock will be updated when sample rate is changed.  

5. Streaming : in streaming, selected one of 3 input format will be changed 32bit-2ch.

 

Could you peak the point which could be problem or missed?