Overclocking SGTL5000

Status
Not open for further replies.

WMXZ

Well-known member
Some of us are oversampling the SGTL in the audiocard.
Yesterday, I did some test to see how the performance varies for different sampling frequencies.
The test program and the result are published here on my github

The results in a nutshell:
oversampling can work to at least 240 kHz
at 360 kHz the performance is degraded.
for sampling frequencies 96 kHz and higher, the relative transition band is increased with respect to the standard frequencies 32, 44.1, 48 kHz
As known, not all sampling frequencies can be reproduced exactly
(I2S needs reasonable multiplier and dividers for generating MCLK)

Hope this helps someone

Note: that the code changes not only the I2S clocks but also sets the SGTL5000 to the different internal sampling frequencies. It is not clear if this is relevant when SGTL is used in slave mode
 
Hi,

Do you have an idea what causes these spurious effects in the transfer function ?
Screenshot from 2018-06-17 07-34-01.png

regards
Cor
 
Wow thank you so much! It's really nice that you took the time to check! For me it's great to know that using a sample rate of 192 kHz doesn't change the SNR significantly.

Only minor thing that I have to note: Almost none of the axis in the plots are labeled, which makes them difficult to read for people not knowing exactly what they are looking at... (my university professor would not be happy :D)

Thanks again for doing this work! :)
 
Only minor thing that I have to note: Almost none of the axis in the plots are labeled, which makes them difficult to read for people not knowing exactly what they are looking at... (my university professor would not be happy :D)

The figures would also not pass my review!

But, to be honest, if someone understands a spectrogram he would easily deduce that the vertical scale is frequency in kHz, horizontal axis is time in seconds (time interval between sweeps 3s) and the colorbar gives dB. Also, for the noise time series plots the horizontal axis makes only sense if the units are samples and not seconds.

Now, not everyone may know this, so I may upgrade the plots and consequently, thank you for reminding me on these basics.
 
Haha no worries. Yes that would be nice :)

I looked at your code for changing the sample rate and it seems far more elaborate, than what I've been using. Your code is nicely documented and you seem to have a deeper understanding of the chip. Maybe it would be worthwhile to turn it into a single header library, with only one function changeSampleRate(). I am sure it would be useful for people not familiar with the details of the SGTL5000. SGTL5000Utils.h maybe? :)
 
Status
Not open for further replies.
Back
Top