• TI Thinks Resolved

SRC4192: I2S inputs with multiple sample rates to be converted into a fixed output sample rate with master clock

Prodigy 10 points

Replies: 1

Views: 43

Part Number: SRC4192


I need to convert a 3 wire I2S input with possible sample rates of 44.1kS/s or 48/96/192 kS/s into a 4 wire I2S at a fixed sample rate (e.g. 48 ks/s) with added master clock (e.g. 24.576 MHz from a local oscillator). According to what I understand from the data sheet, SRC4192 should be able to do it with input port set as slave and output port set as master. I was just wondering whether having 44.1kS/s or 48/96/192 kS/s at the input could create any trouble (e.g. with internal buffering), since the said sample rates have no integer ratio... Would it be necessary to provide 2 different local oscillators depending on whether the input rate is 44.1kS/s or 48/96/192 kS/s (e.g. 22.5792 MHz or 24.576 MHz) and then switch between them ? In that case, how can the oscillator selection be automatically decided ? Or is the sample rate conversion anyhow correctly performed internally by just using a single local oscillator frequency ?

A second question is related to the input I2S data number of bits transmitted within a single LRCLK frame. In my system, in each LRCLK frame I have 32 data bits where the last 8 bits are 0. In other words, the 32 bit data word per channel frame is 0 padded in the last LSBs, so that in the end the real data bits are 24. I guess the SRC4192 can still handle this because I assume that as soon as the input serial buffer is full with 24 bit, more edges coming at BCKL should not produce any further bit shift in the input register. Or am I wrong ?

Many thanks.



  • Simone,

    1. yes, This is a very common use case for the SRC4192. The rates do not need to be integer multiples, you can imagine that some of the most commonly done conversions are from 44.1 to 48k and vice-versa. Only 1 reference clock needed, The reference clock should be 24.576 as you are using it to derive the clocks for the I2S master output (which is 48k)

    2. With I2S, everything is Left justified, the maximum bit resolution is 24bits, it will only take the first 24 bits. if the situation were that you had 16 data bits, with 16 pad bits = 0, then that would be fine too. Were the data right justified, you would need to set the format specifically for each bit resolution.

    best regards,
    -Steve Wilson