Hello -
We are working to synchronize a DAC3120 to a received audio stream to avoid duplicated or dropped samples. We can externally generate a clean MCLK of just about any frequency, but it is still asynchronous to the audio samples.
We're only using one channel of the I2S bus, so ideally, we could put the DAC3120 in slave mode with an externally generated WCLK and BCLK, (as shown in slaa469 figure 3) and just skip or add BCLK cycles as needed in the unused I2S channel to rate match the incoming audio samples. However, when we tried this, the DAC's ASI bus accumulates phase error and eventually skips or duplicates a sample... If we could make this work, it would be preferred.
If we place the DAC3120 in master mode, generating the WCLK and BCLK as output, we would need to be able to push/pull MCLK to be able to synchronize to the audio samples. We've tried as slow as an 800KHz MCLK, pushing/pulling it by +/- 1%, but the jitter seems to be too much for the DAC3120 to absorb. I've seen a max 100ps cycle-to-cycle MCLK jitter guideline mentioned in posts for other DAC's, does that guideline apply to the DAC3120?
Alternately, we could add a VCO or VCXO to the circuit and push/pull mclk by ~100ppm. Does TI have a recommended solution for a VCO or VCXO-based MCLK for the DAC3120?
Thanks!