This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

SRC4193: I2S input is zero, but output is not

Part Number: SRC4193

Tool/software:

Hello everyone.

In my setup, the SRC4193 gets a 44.1kHz I2S input with 16 bits on a 32-bit word as a slave. The output is 96kHz and 24 bits on a 32 bit word, also as a slave. The problem I have is that with an input of all zeros I get either 0, 256 or 4294967040 on the output. This means that except for the zero value, either the word is all ones and the 8th bit is zero, or the whole word is zeros and the 8th bit is one. I can almost be sure that it is not a hardware problem. All lines are terminated accordingly and I have already tested it with 3 different chips on the same PCB which always give the same result.

Here is the data line (yellow is the input and green is the output):

Here is what my microcontroller is receiving from the SRC4193:

  • Hello Severin,

    I need to think about this more . The first few things that came to mind is:

    1. Can you confirm the clock is not changing all along, specially at the input.
    2. Is any dithering exist  in the signal path that can change the code ( although a bit strange that the dither effects bit 8 or all except bit 8)
    3. Can you please try with different sampling clk at the input side such as 48K , as well as changing the output side clocking?
    4. Similar,  if you change the 16bit on a 32 bits to 24bit for input what happens? Do the same for the output as well and observe the behavior
    5. This IC supports I2S, Left-Justified, Right-Justified, Can you verify the issue still remains if you change the format?

    We need to collect as much as data point  we can to be able to  understand the root cause .

    Regards,

    Arash

  • Hello,

    in the meantime i figured it out: My microcontroller is reading an uint32_t. The SRC4193 is sending 0, -1 and 1 on the output when there is no input because of the upsampling and also it is sending 24 Bit I2S. So for a 1 the 8th bit of 32 bit is one or for -1 all 32 bits are one except the 8th bit is zero. So as the microcontroller is not reading 24 bits but 32 bits it is receivig 256 for a 1 and 4294967040 for a -1.

    I hope i could somehow explain the problem and maby help others.
    All the best