Replies: 2 comments 1 reply
-
Yes. Are you testing with uac2_speaker_fb example ? The fifo size needs to be at least 4 times the EP size. tinyusb/src/class/audio/audio_device.h Line 469 in 2571889 The adaptive capacity is limited to +- 1 sample so if your clock drift is too high it will still under/overrun. You can read more details in:
|
Beta Was this translation helpful? Give feedback.
-
Hi! Thanks for the feedback My current setup is USB HS, 48kHz, 2ch, 16bit so according to my calculations I should get 24B per microframe and this seems to be the case, sometimes I receive 20B, but never more than 24B which I would expect to happen. What's surely a good hint is that adaptive capacity is limited to +- 1sample, my difference is quite high but anyway I would expect HOST to send more data(even if at the end I run into underrun) |
Beta Was this translation helpful? Give feedback.
-
Hello,
I'm facing an issue where my audio-clock is slightly higher than the USB one so I would expect the feedback endpoint to care of it so I don't run into underrun situation after some time.
Currently I want to use FIFO feedback and if I'm understanding the principle behind it correctly I should remove data from FIFO(using tud_audio_read) with a rate of my main audio clock - so if I remove from FIFO faster than expected then HOST should send more data, if I remove slightly slower than expected, HOST should send less. Is my understanding correct?
What I've noticed is that I cannot force HOST to send more data and I always end up in underrun - for test purpose I read all the audio data from the fifo after tud_task() - so fifo should be constantly empty, which in theory should lead to more data sent by the host, but that's never happening.
What am I missing here?
Beta Was this translation helpful? Give feedback.
All reactions