We are having problems with background hiss and a squealing sound when
playing sound through a KITSGTL5000EVBE connected to an i.mx6 MCU. After
the actual sound plays, the hiss becomes more evident and a squealing
sound is heard that changes frequency until the SGTL5000 is powered down
by Alsa. The i.MX6, which is housed on a MSC Q7 module, is running Linux
3.0.35 built from Yocto Dora with the MSC BSP layer. Other than changes
to direct the I2c control traffic to the correct muxed output, there are
no changes to sgtl5000.c or imx-sgtl5000.c.
To eliminate the possibility of the hiss and squeal being present on the
I2S data line, the i.MX6 I2S Data out line was disconnected and the
SGTL5000 I2S Data In was shorted to ground. This did not reduce the hiss
or squeal.
We use aplay to duplicate this issue, which occurs every time we play
any sound. For example: aplay Side_Left.wav
Has anyone experienced undesired sound artifacts when using the SGTL5000,
especially in the KITSGTL500EVBE? If so, what steps did you take to
resolve the issue?
已解决! 转到解答。
Replying to myself - the problem is resolved
We obtained a Wandboard and verified that the SGTL5000 functioned properly. We then compared the I2C setup sequence to what we were doing and discovered that the analog ground voltage was incorrectly set in register 0x0028. When the register value was changed to reflect the appropriate 900mV value (Vdda/2), the hiss and squeal went away. We still have a small pop when the sound stops playing, despite applying the SMALL_POP patch, but it may be related to the .wav test that we are using.:
Thanks to all for their help and suggestions.
Could you try this patch I did for fixing the definition of the sgtl5000 'small_pop' bit?
https://git.kernel.org/cgit/linux/kernel/git/broonie/sound.git/commit/?h=fix/sgtl5000
Hi Fabio,
Thanks for the reply. I made the change to the two files specified in the patch and recompiled the kernel. I then copied it to the target and rebooted.
There was no audible change to the hiss and squeal that occur after the sound stops playing.
I am going to try bringing up a Nitrogen6X or a Wandaboard and see how they work. Maybe that will give me a clue?
Dale
Replying to myself - the problem is resolved
We obtained a Wandboard and verified that the SGTL5000 functioned properly. We then compared the I2C setup sequence to what we were doing and discovered that the analog ground voltage was incorrectly set in register 0x0028. When the register value was changed to reflect the appropriate 900mV value (Vdda/2), the hiss and squeal went away. We still have a small pop when the sound stops playing, despite applying the SMALL_POP patch, but it may be related to the .wav test that we are using.:
Thanks to all for their help and suggestions.
There are two files that reproduce the problem. They also have a "pop" at the end when played on a PC.
http://www.mediacollege.com/audio/tone/files/440Hz_44100Hz_16bit_05sec.wav
http://www.mediacollege.com/audio/tone/files/1kHz_44100Hz_16bit_05sec.wav
When I look at the audio output from the SGTL5000, I see the output is held significantly above ground at the end of the sound playing. This may be the issue.
Thanks,