[alsa-devel] Noise in tlv320aic3104-based audio system

Benoît Thébaudeau benoit.thebaudeau.dev at gmail.com
Thu Oct 29 22:21:33 CET 2015


Dear Rick Mann,

On Thu, Oct 29, 2015 at 8:59 AM, Rick Mann <rmann at latencyzero.com> wrote:
> I have a custom cape on a Beaglebone Black that uses a tlv320aic3104, connected to a tpa3140d2 audio power amp. I currently manually control the /shudown pins on the two ICs, and just turn them on before doing anything else.
>
> The system works. But I notice that when I open the output device for writing (via libao), I immediately hear hiss, even before I send any samples to the device. After I close the libao audio device, a few seconds later Linux sends some i2c commands to the tlv320 and it's once again silent.
>
> The perceived amplitude of this hiss does not seem to be affected by "amixer set PCM <0 - 127>" calls.
>
> Does anyone have any idea where this noise might be coming from? Is it just thermal or other noise in the routing of audio within the tlv320? Is there some configuration or routing I might be able to change to avoid it? Did I screw up somewhere in my circuit design or layout that only manifests when linux configures the chip for operation?
>
> Any ideas are appreciated. Thanks.

It could be many things, but here are a few ideas:
 - Make sure that you have followed carefully the data sheets (CODEC +
amp) regarding the hardware schematic and layout. IIRC, the TLV has a
thermal pad that should be grounded.
 - Make sure that the audio power supplies are clean enough. You can
derive them from more general-purpose power supplies if filtering is
added. The PCB layout must define a clear audio area, ideally with a
plane for the audio power supply on one of the layers. Even better,
you can use dedicated low-noise power supplies.
 - Make sure that all unused CODEC pins are configured as not connected in ALSA.
 - Make sure that all unused audio paths are disabled. You can use
`alsactl store` to dump and check everything.
 - If possible, you can also listen to the TLV outputs directly
without the amp in order to know if it's caused by the amp or before
it in the audio chain.

Best regards,
Benoît


More information about the Alsa-devel mailing list