Dear Rick Mann,
On Thu, Oct 29, 2015 at 8:59 AM, Rick Mann rmann@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