UAC2: Can the Internal clock source be controlled by device?
Posted: Wed Feb 03, 2016 10:52 pm
I've been attempting to modify the current release of the USB Audio reference code so that there is one sample rate clock source - that can be controlled by the device ( and perhaps not by the host).
In the XMOS reference project, the first clock source is "internal", is hard-coded to always report "valid" and its sample frequency is only controlled by the host. If there are S/PDIF or ADAT receivers, a second (and third) clock source is exposed to the host and if the host selects (user action) one of the other clock sources then the sample frequency is determined by the S/PDIF or ADAT source. The device synchronizes to that input FS and reports changes of FS and validity to the host by issuing an interrupt.
I made these changes:
With one clock source, the descriptors report that it can be controlled by the device. When the device changes its sampling frequency it reports this to the host via interrupt.
Results: device's sample rate changes are acknowledged by mac OSX - but not the Thesycon driver.
I'm trying to determine whether the Thesycon driver precludes device control of the first clock source. I haven't found documentation indicating so. But, in the development of a product a few years ago, I seem to recall encountering such a limitation. I didn't document it for myself at that time and I can't remember.
Can you offer info from experience or documentation that I haven't found? thanks
In the XMOS reference project, the first clock source is "internal", is hard-coded to always report "valid" and its sample frequency is only controlled by the host. If there are S/PDIF or ADAT receivers, a second (and third) clock source is exposed to the host and if the host selects (user action) one of the other clock sources then the sample frequency is determined by the S/PDIF or ADAT source. The device synchronizes to that input FS and reports changes of FS and validity to the host by issuing an interrupt.
I made these changes:
With one clock source, the descriptors report that it can be controlled by the device. When the device changes its sampling frequency it reports this to the host via interrupt.
Results: device's sample rate changes are acknowledged by mac OSX - but not the Thesycon driver.
I'm trying to determine whether the Thesycon driver precludes device control of the first clock source. I haven't found documentation indicating so. But, in the development of a product a few years ago, I seem to recall encountering such a limitation. I didn't document it for myself at that time and I can't remember.
Can you offer info from experience or documentation that I haven't found? thanks