Hello All!
I’m using the Beaglebone Audio cape to record audio samples with my Beaglebone Black running the 3.8.13-bone28 kernel on Ubuntu 12.04. After disabling the HDMI ‘virtual cape’ disabled, upgrading to the bone28 kernel and cloning the BB-BONE-AUDI-01-00A0.dtbo firmware for my A1 version Audio cape I was able to get the cape initialized + working.
I’m now trying to figure out why there is a DC offset n the recorded audio for both channels of this board. Recording silence using arecord shows a clear and constant non-zero level on both the left and right channels. Similarly when inputting a small test tone signal I can clearly see in the recorded audio the signal offset from zero by the same amount that as in the silence recording.
I thought I was seeing things so I connected a digital multimeter to the inside of the AC coupling capacitors (C50 and C51 from the Audio Cape schematic) while recording and I read a constant 1.34V. When I stop the recording the voltage drops to around 100mV. So there is some kind of DC signal on the input to the DAC. I have two audio capes and both show this behavior so I’m guessing this is not a manufacturing flaw in my audio cape.
There is an easy workaround available by turning on the TLV320AIC3106’s built-in low-pass filter. By doing this I was able to eliminate the DC-level in the resulting audio files. I can see the level drop to zero exactly when I issue the I2C writes to turn on the low-pass filter. Unfortunately this is only a work-around because the driver for the TLV320AIC3106 resets the I2C registers every time the audio device is activated. This means I can’t just run this once on startup and forget about this issue. It’s also non-optimal because there are effectively two low-pass filters in the signal path - the AC coupling capacitor and the low-pass filter within the codec which means that low-frequency components in the audio signal will be attenuated twice.
Has anyone noticed this issue? Is there a known solution out there I am not aware of?
Thanks in advance for any help or ideas.
Thanks!
Tim