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.




Best regards,
FBL
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?