Skip to main content
Visitor II
September 8, 2025
Question

Nucleo-H753ZI USB Audio firmware examples

  • September 8, 2025
  • 2 replies
  • 445 views

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 

    This topic has been closed for replies.

    2 replies

    Technical Moderator
    September 11, 2025

    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

    sksonAuthor
    Visitor II
    September 16, 2025

    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".

     

    sksonAuthor
    Visitor II
    October 2, 2025

    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?

     

     

     

    Visitor II
    September 11, 2025

    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.

    sksonAuthor
    Visitor II
    September 16, 2025

    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.