Teensy Audio Shield PCB layout and SGTL library oversampling?

Status
Not open for further replies.

aidyw

Active member
Hi,
I have been working on a small project using the SGTL5000 on the audio shield, in fact I have used the same board before with other projects and faced the same issues. It is one of noise.

I realise that the SGTL5000 does not have world beating SNR figures on its ADC inputs but I have tried to squeeze the best out of it and continue to do so.

In order to try and reduce coupling from the digital side of the IC into the ADC, I have already attempted to create a split ground system. I did not find a simple way to achieve this with the layout of the Audio shield PCB. In fact what I tried was to very carefully drill a hole through the PCB in order to expose the big GND pad on the underside of the chip. Having done this I then star grounded analog and digital from this point. This does offer a small improvement, but it is not particularly successful. There is still a significant coupling between digital and analog. I noticed that the SGTL5000 32 QFN package actually has an AGND pin which is independent of the digital grounds but I do not know if this pin is actually tied to the GND pad on the PCB. I have a memory of pulling off an SGTL5000 from a audio shield and if I remember correctly it was tied on the PCB.

What am aiming at is to lift the AGND pin and totally isolate the analog section from digital, but the pin is microscopic. Lifting this pin might in fact be impossible by hand without damaging the IC. I simply want to know am I correct in assuming (remembering) this pin being tied to the GND pad underneath the IC. I can't see this from the pictures on your website as the boards are populated. If I had a clear image of the PCB traces, I might be able to drill a tiny hole into the pcb and isolate AGND without trying to lift the pin on the IC.

I have in the past also implemented some basic anti-alias filtering before the ADC, but did not go crazy with the filter order. Does anyone have any experience with placing a higher order AA filter before the codec, and if this offered enough advantage to justify the effort building the filter.


Another point which is not related to PCB layout but which in the past has given significant improvement is regarding the SGTL5000 library. When I first used the Audio shield, I was developing inside MBED not Arduino. Because of this fact, I had to write my own library to control the codec. What I did in this case was to actually sample at 96KHz not 44.1KHz. This gave me the opportunity to do averaging from the codec. before pushing the lower speed stream into the DSP. This was very effective and indeed gave something like the theoretical expected 3dB improvement in SNR, without significantly impacting the DSP performance, which I still ran at a lower 48KHz. Theory aside, doing this had a noticeable audible effect on the noise floor. Having moved to Arduino I am now back to the higher noise levels.
Is this oversampling possible with the SGTL5000 library.

Any info appreciated.
 
Last edited:
Status
Not open for further replies.
Back
Top