I am wondering whether someone has information about the IRC48M synchronisation accuracy to the USB (in devices with crystal-less USB support)?
The reason for asking is that I have done some tests concerning synchronising clocks derived from the IRC48M when USB is in operation and am interested in particular in USB Audio synchronisation.
For these tests I used an audio class streaming to either DAC output, PWM output (simplified DAC) and I2S based audio processr output. In each case the audio side clock is derived from the IRC48M (eg. PIT clock tme base to trigger conversions or audio processor time base).
If the IRC48M recovery is disabled so that it is not synchronised to the USB there is a quite high drift between the host USB clock (SOFs) - for example 1ms of drift every 2.5s.
With the recovery enabled the drift reduces to about 1ms in 1..2 minutes (slower than USB host clock). Typically it is however about 100us per second in a certain direction (slower). This does however fluctuate and it can be quite stable for a short period before drifting again. It can also drift in the other direction suddently for a short period, although this occurs quite rarely.
The hope was that on average the IRC48M (and this audio domain clock time base) would be synchronised to the USB host in order to achieve SYNC mode operation in audio class applications but this doesn't seem to be the case since the drift is still unacceptaby high.
Is this typical behavior and expected, or could something be incorrect in the measurements or the IRC48M synchronisation?