2
\$\begingroup\$

I'm building a simple analog mute circuit and I need advice on the simplest way to achieve my goal.

I have a GPIO pin that goes high when audio is playing and low when it's not. When audio is not playing, I need to connect AGND to the L & R channels of the audio circuit.

Obviously, I could do this with a transistor if the GPIO pin were reversed, but it's not. Is there an Active-Low component that I can use to achieve this goal? Preferably something in a small form factor.

EDIT: The audio circuit is driven by a PCM5102A DAC. It's a 2.1v RMS single-ended line driver that is ground centered. I do not believe there is DC Bias.

\$\endgroup\$
  • 1
    \$\begingroup\$ You could use a DPDT relay to do this. You might need to add a MOSFET to drive the relay's coil depending on the ability of the GPIO pin. \$\endgroup\$ – evildemonic Mar 5 at 19:26
  • \$\begingroup\$ @evildemonic - What about an IC like ti.com/lit/ds/symlink/tmux154e.pdf ? The only problem is I don't see anything specific about using this with audio signals. \$\endgroup\$ – t3ddftw Mar 5 at 23:48
  • 1
    \$\begingroup\$ That chip won't work without additional work. Since your signal is ground-centered you would need to create a virtual ground to use this chip. There are other solid state relays (SSR) that might work, because they can go negative, but all will add significant resistance to your signal (which may or may not be a problem)...especially the normally closed side. \$\endgroup\$ – evildemonic Mar 6 at 15:41
  • \$\begingroup\$ @evildemonic - Thanks! I actually found the TS5A22364 (ti.com/lit/ds/symlink/ts5a22364.pdf) which is designed to allow negative voltage signals, such as audio. It seems to be the perfect fit. \$\endgroup\$ – t3ddftw Mar 6 at 18:10
  • \$\begingroup\$ That looks like a good solution! \$\endgroup\$ – evildemonic Mar 6 at 18:41
7
\$\begingroup\$

The PCM5102A datasheet suggests that this can be done on the chip itself.

enter image description here

XSMT, pin 17, input, Soft mute control: Soft mute (Low) / soft un-mute (High).


From the datasheet:

11.2 Recommended Powerdown Sequence

Under certain conditions, the PCM510xA devices can exhibit some pop on power down. Pops are caused by a device not having enough time to detect power loss and start the muting process.

The PCM510xA devices have two auto-mute functions to mute the device upon power loss (intentional or unintentional).

XSMT = 0

When the XSMT pin is pulled low, the incoming PCM data is attenuated to 0, closely followed by a hard analog mute. This process takes 150 sample times (ts ) + 0.2 ms. Because this mute time is mainly dominated by the sampling frequency, systems sampling at 192 kHz will mute much faster than a 48-kHz system.

Clock Error Detect

When clock error is detected on the incoming data clock, the PCM510xA devices switch to an internal oscillator, and continue to the drive the output, while attenuating the data from the last known value. Once this process is complete, the PCM510xA outputs are hard muted to ground.

I don't think you'll have any noise.

\$\endgroup\$
  • \$\begingroup\$ Thank you! I will test the XSMT pin, but I don't believe that it will help. Essentially, I'm hearing noise when the DAC goes to sleep (it does so after 1 second without data on the I2S line). I assume the XSMT functionality also goes to sleep with the rest of the DAC, and the datasheet doesn't really stipulate weather or not the analog mute circuit ties those channels to the analog ground. \$\endgroup\$ – t3ddftw Mar 5 at 19:37
  • 1
    \$\begingroup\$ See the update. \$\endgroup\$ – Transistor Mar 5 at 22:13
  • \$\begingroup\$ Thanks, @Transistor! I just tried driving XSMT with the aforementioned GPIO pin and I still experienced the noise. I'll try hard-wiring XSMT to GND to ensure that GPIO pin isn't keeping XSMT pulled up. \$\endgroup\$ – t3ddftw Mar 5 at 22:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.