Switching I2S inputs

Currently i use relays to choose between the i2s output of an spdif receiver and a 2707 and also to bypass an ASRC chip. Works fine and i can't really notice any deterioration compared to a direct connection.

Obviously, there is a potential for problems - increased reflections and RF emissions.

What alternatives are there? 3-state buffers? What logic family? Would they increase jitter?


2007-11-25 11:52 pm
Well, my two cents: if you don't notice a difference, then don't worry about it.

Having proper termination on transmission lines is probably the biggest factor in EMI. To do things "right" you need to know the impedance. If you want serious overkill, get a RF switch.

You can do a tristate bus, like you said, or a mux. As for logic families, here's a jitter discussion.


2007-03-24 7:54 am
I'll give my opinion, but I don't have any specific experience switching I2S signals.

I2S is just standard logic, there's nothing special about it, so you can use standard logic elements to switch it. Depending on how many inputs you need, choose appropriate multiplexers to do the switching. For example, a pair of 74153 could switch between 4 I2S signals, or 3 74151 could switch between 8 signals. Depending on your input you might need a 74148 to encode the binary address for you.

I'm not sure about how jitter would be affected, but I suspect it wouldn't be a problem. 74 series logic seems to be used for clock division and inversion in many projects around here without ill effect, so I don't see why it'd be a problem here. The specsheet for I2S includes several example circuits composed of discrete logic too, I think you're okay. You'll add a few ns of latency, but it should be quite constant and won't affect signal timing.

Any modern logic series should be fast and strong enough to keep up with I2S. Go with the fastest variant you can find ;). HC or HCT seems appropriate.